diff --git a/file_object.py b/file_object.py index 4004dd3..dd5cca6 100644 --- a/file_object.py +++ b/file_object.py @@ -158,7 +158,61 @@ class TaFileObject: # 将S文件中的塔高同步到TA文件中。 def sync_tower_height_from_S(self): - + enter_string = input( + "Will synchronize height in S to Ta. Enter S2T to proceed.\n" + ) + if enter_string.lower() != "s2t": + print("Not confirmed.") + return + # 先取得所有S的呼高 + s_tower_height_dic = {} + s_as_single = SFileAsSingle(self._SFile) + for s_entry in s_as_single.content(): + if s_entry[0] == "首端转角号" or s_entry[0] == "塔号": + continue + tower_number = s_entry[0] + tower_height = s_entry[7] + s_tower_height_dic[tower_number] = tower_height + ta_content = self._read(self._file_path) + new_ta_content = list(ta_content) + for index, ta_entry in enumerate(ta_content): + ta_tower_number = ta_entry[0] + if ta_tower_number in s_tower_height_dic: + if ( + abs( + float(new_ta_content[index][9]) + - float(s_tower_height_dic[ta_tower_number]) + ) + > 1e-5 # 新旧呼高不一致 + ): + print( + "Tower {tower_number} height({old_height} -> {new_height}) in S has been synchronized to TA.\n".format( + tower_number=ta_tower_number, + old_height=ta_content[index][9], + new_height=s_tower_height_dic[ta_tower_number], + ) + ) + new_tower_height = s_tower_height_dic[ta_tower_number] + new_ta_content[index][9] = new_tower_height # 将S文件中的塔高赋值到TA文件中 + # 修改TA中WNSZ_51这样的塔名 + old_tower_name_height = ta_entry[8] + tower_name = old_tower_name_height.split("_")[0] + new_tower_name_height = "{tower_name}_{new_height}".format( + tower_name=tower_name, new_height=new_tower_height + ) + new_ta_content[index][8] = new_tower_name_height + # 备份TA文件 + ta_file_dir = get_directory(self._file_path) + ta_file_name = get_file_name_with_extention(self._file_path)[0] + backup_time = file_backup_time() + backup_file_path = "{ta_file_dir}/{ta_file_name}{backup_time}.TA".format( + ta_file_dir=ta_file_dir, ta_file_name=ta_file_name, backup_time=backup_time + ) + shutil.copy(self._file_path, backup_file_path) + with open(self._file_path, "w") as ta_file: + for ta_c in new_ta_content: + ta_file.write("{ta_c}\n".format(ta_c=",".join(ta_c))) + print("Synchronization form S to TA is finished.") pass def start(self): diff --git a/main.py b/main.py index ae87449..6a29e5f 100644 --- a/main.py +++ b/main.py @@ -10,6 +10,7 @@ if __name__ == "__main__": r"d:\工程\灵州-青山\排位\72-169\S072.DAT", ] ta_object = TaFileObject(r"d:\工程\灵州-青山\排位\道亨\最终排位\最终排位.TA", SFile) + # ta_object.sync_tower_height_from_S() ta_object.start() # generate_ta_from_csv.generate_ta(r"d:\工程\灵州-青山\排位\道亨\最终排位\最终排位.TA",SFile,r'd:\工程\灵州-青山\排位\道亨\成果表.csv') print("Finished.")