• <cite id="uwv89"></cite>
      1. 亚洲综合小综合中文字幕,国产久爱免费精品视频,精品国产品香蕉在线,国产午夜精品在人线播放,精品一二三四区在线观看,国产成人无码免费看视频软件 ,色欲久久人妻内射,午夜在线观看成人av
        zmrs163
        級別: 家園?
        精華主題: 0
        發(fā)帖數(shù)量: 419 個
        工控威望: 570 點
        下載積分: 1586 分
        在線時間: 345(小時)
        注冊時間: 2017-06-12
        最后登錄: 2025-08-28
        查看zmrs163的 主題 / 回貼
        樓主  發(fā)表于: 37天前
        隨著一些機型轉換,我們的程序也需要進行轉換,一些轉換可以通過軟件自動完成,一些轉換需要人工進行更改。這個帖子主要討論的是地址變化時的轉換方式。
        目前來說,三菱的梯形圖可以導出成CSV文件,所有的軟元件在這個CSV文件中都可以看到。如果我們直接操作這個CSV文件對程序進行轉換,顯然可以更加方便得轉程序,因為我們可以借助一些腳本提升操作效率,一些情況下,地址存在重疊的情況,比如X0改成X10,但是原來的X10要改成X20,這種情況用軟件批量替換要分兩次走,一個不注意要進行大量返工,以下是我自己寫的python腳本的代碼,自己隨意寫的,有能力有需要的同志可以自己制作類似的,含有FB的我目前還沒測試,不過應該問題不大,畢竟只是實參需要替換一下。
        import csv

        path = r""    #導出程序CSV文件的地址
        path2 = r""  #生成一個文件,包含了所有的軟元件地址,需要手動在其中第二列填寫變更后的地址
        path3 = r""  #生成的新文件的地址
        before_list = []  #原程序所有的地址列表
        address_dict = dict()  #存儲映射關系的字典


        # 讀取所有的地址
        r = 1
        with open(path, mode='r',encoding='utf-16-le') as file:
            for line in file:
                line_splited = line.split('\t')
                if r >= 4:
                    add = line_splited[3].strip('"')
                    if add != '' and add not in before_list:
                        before_list.append(add)
                r += 1


        # 生成CSV,存儲所有的地址,需要手動在其中第二列填寫變更后的地址
        s = input("是否生成TRANS,Y/N")
        if s=="Y":
            with open(path2, mode='w',encoding='utf-16-le',newline="") as file:
                csv_writer = csv.writer(file)
                before_list.sort()
                for add in before_list:
                    csv_writer.writerow([add])


        # 自行填寫TRANS后再讀取,wps保存編碼為ANSI,默認好像就是這個編碼
        s = input("任意鍵繼續(xù)讀取TRANS")
        with open(path2, mode='r') as file:
            csv_reader = csv.reader(file)
            for row in csv_reader:
                if row[1] != "":
                    address_dict[row[0]] = row[1]
        for k,v in address_dict.items():
            print(k,v)

        # 重新生成程序文件
        index = 1
        with open(path, mode='r',encoding='utf-16-le') as file:
            new_file = open(path3,mode='w',encoding='utf-16-le')
            for line in file:
                if index >= 4:
                    r = [s.strip("\"") for s in line.split('\t')]
                    old_address = r[3]  #替換主要由這三行進行
                    new_address = address_dict.get(r[3],r[3])
                    new_file.write(line.replace(old_address,new_address))
                else:
                    new_file.write(line)
                index += 1

        new_file.close()

        主站蜘蛛池模板: 国产在线精品欧美日韩电影 | 精品天堂色吊丝一区二区| 青青草原国产精品啪啪视频| 欧美午夜成人片在线观看| 女人与公狍交酡女免费| 夜夜影院未满十八勿进| 欧美 日韩 国产 成人 在线观看| 蜜臀av一区二区三区日韩| 久久精品国产亚洲αv忘忧草 | 成人一区二区三区在线午夜| 夜色福利站WWW国产在线视频| 一区二区三区四区精品黄| 亚洲欧美牲交| 午夜精品一区二区三区成人| 午夜精品一区二区三区成人| 亚洲AV色香蕉一区二区蜜桃小说| 亚洲sm另类一区二区三区| 亚洲AV永久无码精品秋霞电影影院 | 国产精品区一区第一页| 日本一区二区三区东京热| 亚洲国产日韩一区三区| 国产午夜福利免费入口| 国产AV福利第一精品| 久久精品国产清自在天天线| 国产精品久久久尹人香蕉| 日韩精品一二区在线观看| 精品久久精品久久精品久久| 重口SM一区二区三区视频| 人妻少妇精品视频专区| 亚洲高清WWW色好看美女| 久久99精品久久久大学生| 婷婷色香五月综合缴缴情香蕉| 中文字幕亚洲人妻一区| 人妻中文字幕亚洲精品| 日韩精品国产中文字幕| 中文字幕有码日韩精品| 中文字幕av无码不卡| 国产丰满乱子伦无码专区| 人妻少妇精品视频三区二区| 国内精品久久人妻无码不卡| 人妻精品动漫h无码|