def __read_file(self, strInfo, strFilePath, listStore): locations = fileUtils.read_file(strInfo, strFilePath) # add rows with text if locations: for strLoc in locations.keys(): listStore.append([strLoc , locations[strLoc][0], locations[strLoc][1], locations[strLoc][2]]) return listStore
def __read_file(self, strInfo, strFilePath, listStore): locations = fileUtils.read_file(strInfo, strFilePath) # add rows with text if locations: for strLoc in locations.keys(): listStore.append([ strLoc, locations[strLoc][0], locations[strLoc][1], locations[strLoc][2] ]) return listStore
def read_markers(self): self.positions = fileUtils.read_file('marker', self.markerPath)
def read(self, file_name): # 変数の初期化 shiai_list = [] tonpu_nanpu_kbn = 9 taku_name1 = "" taku_name2 = "" start_dt = datetime.datetime(1900, 1, 1, 0, 0, 0) mochiten = 0 player_1_name = "" player_1_rate = 0 player_2_name = "" player_2_rate = 0 player_3_name = "" player_3_rate = 0 player_4_name = "" player_4_rate = 0 kyoku_list = [] kyoku_kbn = 0 honba_num = 0 richibo_num = 0 tokuten_map = {} fusu = 0 han = "" tsumo_ron_kbn = 9 ryukyoku_flag = False kyusyukyuhai_flag = False yaku_list = [] dorasu = 0 player_1_kaze = "" player_1_haipai = "" player_2_kaze = "" player_2_haipai = "" player_3_kaze = "" player_3_haipai = "" player_4_kaze = "" player_4_haipai = "" omotedora = "" uradora = "" haifu_list = [] result_1st_player_name = "" result_1st_player_score = 0 result_2nd_player_name = "" result_2nd_player_score = 0 result_3rd_player_name = "" result_3rd_player_score = 0 result_4th_player_name = "" result_4th_player_score = 0 kyoku_start_flag = False # ファイル読み込み lines = fu.read_file(file_name) # 行区分 line_kbn = 0 # 行でループ for line in lines: words = line.split() if len(words) == 0: continue # 試合の開始行の場合、局リストをクリアして行区分をリセット if words[0] == "=====": line_kbn = 0 kyoku_list.clear() # 局の開始行の場合、行区分をセット elif words[0][0] == "東" or words[0][0] == "南" or words[0][0] == "西" or words[0][0] == "北": line_kbn = 2 # 2局目以降の場合、前局のモデルを生成 if kyoku_start_flag: kyoku = KyokuModel(kyoku_kbn, honba_num, richibo_num, tokuten_map, fusu, han, tsumo_ron_kbn, ryukyoku_flag, kyusyukyuhai_flag, yaku_list, dorasu, player_1_kaze, player_1_haipai, player_2_kaze, player_2_haipai, player_3_kaze, player_3_haipai, player_4_kaze, player_4_haipai, omotedora, uradora, haifu_list[:]) kyoku_list.append(kyoku) kyoku_start_flag = True haifu_list.clear() # 牌譜行の場合、行区分をセット elif words[0] == "*": line_kbn = 10 # 試合結果行の場合、行区分をセット elif words[0] == "----": line_kbn = 11 if kyoku_start_flag: kyoku = KyokuModel(kyoku_kbn, honba_num, richibo_num, tokuten_map, fusu, han, tsumo_ron_kbn, ryukyoku_flag, kyusyukyuhai_flag, yaku_list, dorasu, player_1_kaze, player_1_haipai, player_2_kaze, player_2_haipai, player_3_kaze, player_3_haipai, player_4_kaze, player_4_haipai, omotedora, uradora, haifu_list) kyoku_list.append(kyoku) kyoku_start_flag = False # 行区分で処理を分岐 # ヘッダ行 if line_kbn == 0: tonpu_nanpu_kbn, taku_name1, taku_name2, start_dt = self.parse_header(words) # 持ち点・プレイヤー行 elif line_kbn == 1: mochiten, player_1_name, player_1_rate, player_2_name, player_2_rate, player_3_name, player_3_rate, player_4_name, player_4_rate = self.parse_players( words) # 局の開始行 elif line_kbn == 2: kyoku_kbn, honba_num, richibo_num, tokuten_map = self.parse_kyoku_header(words) # 局の結果行 elif line_kbn == 3: fusu, han, tsumo_ron_kbn, ryukyoku_flag, kyusyukyuhai_flag, yaku_list, dorasu = self.parse_kyoku_result(words) # プレイヤー1の配牌行 elif line_kbn == 4: player_1_kaze, player_1_haipai = self.parse_haipai(words) # プレイヤー2の配牌行 elif line_kbn == 5: player_2_kaze, player_2_haipai = self.parse_haipai(words) # プレイヤー3の配牌行 elif line_kbn == 6: player_3_kaze, player_3_haipai = self.parse_haipai(words) # プレイヤー4の配牌行 elif line_kbn == 7: player_4_kaze, player_4_haipai = self.parse_haipai(words) # ドラ行 elif line_kbn == 8: omotedora, uradora = self.parse_dora(words) # 牌譜行 elif line_kbn == 10: haifu_list.extend(self.parse_haifu(words)) # 試合結果(1位)行 elif line_kbn == 12: result_1st_player_name, result_1st_player_score = self.parse_result(words) # 試合結果(2位)行 elif line_kbn == 13: result_2nd_player_name, result_2nd_player_score = self.parse_result(words) # 試合結果(3位)行 elif line_kbn == 14: result_3rd_player_name, result_3rd_player_score = self.parse_result(words) # 試合結果(4位)行 elif line_kbn == 15: result_4th_player_name, result_4th_player_score = self.parse_result(words) # 試合終了行 elif line_kbn == 16: end_dt = self.parse_end(words) # 試合モデルを生成 shiai = ShiaiModel(tonpu_nanpu_kbn, taku_name1, taku_name2, start_dt, mochiten, player_1_name, player_1_rate, player_2_name, player_2_rate, player_3_name, player_3_rate, player_4_name, player_4_rate, kyoku_list, result_1st_player_name, result_1st_player_score, result_2nd_player_name, result_2nd_player_score, result_3rd_player_name, result_3rd_player_score, result_4th_player_name, result_4th_player_score, end_dt) shiai_list.append(shiai) line_kbn += 1 return shiai_list