1
This commit is contained in:
		
							parent
							
								
									ccc6b317f5
								
							
						
					
					
						commit
						499f9e29bf
					
				
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										114
									
								
								Delphi10/开发档案/皮肤样式/skin.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								Delphi10/开发档案/皮肤样式/skin.py
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,114 @@
 | 
			
		|||
import os
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
# 设置日志记录
 | 
			
		||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
 | 
			
		||||
 | 
			
		||||
# 定义替换列表
 | 
			
		||||
replacements = [
 | 
			
		||||
    ('dxSkinsCore,', ''),
 | 
			
		||||
    ('dxSkinsDefaultPainters,', ''),
 | 
			
		||||
    ('dxSkinWXI,', ''),
 | 
			
		||||
    ('dxSkinBasic,', ''),
 | 
			
		||||
    ('dxSkinBlack,', ''),
 | 
			
		||||
    ('dxSkinBlue,', ''),
 | 
			
		||||
    ('dxSkinBlueprint,', ''),
 | 
			
		||||
    ('dxSkinCaramel,', ''),
 | 
			
		||||
    ('dxSkinCoffee,', ''),
 | 
			
		||||
    ('dxSkinDarkroom,', ''),
 | 
			
		||||
    ('dxSkinDarkSide,', ''),
 | 
			
		||||
    ('dxSkinDevExpressDarkStyle,', ''),
 | 
			
		||||
    ('dxSkinDevExpressStyle,', ''),
 | 
			
		||||
    ('dxSkinFoggy,', ''),
 | 
			
		||||
    ('dxSkinGlassOceans,', ''),
 | 
			
		||||
    ('dxSkinHighContrast,', ''),
 | 
			
		||||
    ('dxSkiniMaginary,', ''),
 | 
			
		||||
    ('dxSkinLilian,', ''),
 | 
			
		||||
    ('dxSkinLiquidSky,', ''),
 | 
			
		||||
    ('dxSkinLondonLiquidSky,', ''),
 | 
			
		||||
    ('dxSkinMcSkin,', ''),
 | 
			
		||||
    ('dxSkinMetropolis,', ''),
 | 
			
		||||
    ('dxSkinMetropolisDark,', ''),
 | 
			
		||||
    ('dxSkinMoneyTwins,', ''),
 | 
			
		||||
    ('dxSkinOffice2007Black,', ''),
 | 
			
		||||
    ('dxSkinOffice2007Blue,', ''),
 | 
			
		||||
    ('dxSkinOffice2007Green,', ''),
 | 
			
		||||
    ('dxSkinOffice2007Pink,', ''),
 | 
			
		||||
    ('dxSkinOffice2007Silver,', ''),
 | 
			
		||||
    ('dxSkinOffice2010Black,', ''),
 | 
			
		||||
    ('dxSkinOffice2010Blue,', ''),
 | 
			
		||||
    ('dxSkinOffice2010Silver,', ''),
 | 
			
		||||
    ('dxSkinOffice2013DarkGray,', ''),
 | 
			
		||||
    ('dxSkinOffice2013LightGray,', ''),
 | 
			
		||||
    ('dxSkinOffice2013White,', ''),
 | 
			
		||||
    ('dxSkinOffice2016Colorful,', ''),
 | 
			
		||||
    ('dxSkinOffice2016Dark,', ''),
 | 
			
		||||
    ('dxSkinOffice2019Black,', ''),
 | 
			
		||||
    ('dxSkinOffice2019Colorful,', ''),
 | 
			
		||||
    ('dxSkinOffice2019DarkGray,', ''),
 | 
			
		||||
    ('dxSkinOffice2019White,', ''),
 | 
			
		||||
    ('dxSkinPumpkin,', ''),
 | 
			
		||||
    ('dxSkinSeven,', ''),
 | 
			
		||||
    ('dxSkinSevenClassic,', ''),
 | 
			
		||||
    ('dxSkinSharp,', ''),
 | 
			
		||||
    ('dxSkinSharpPlus,', ''),
 | 
			
		||||
    ('dxSkinSilver,', ''),
 | 
			
		||||
    ('dxSkinSpringtime,', ''),
 | 
			
		||||
    ('dxSkinStardust,', ''),
 | 
			
		||||
    ('dxSkinSummer2008,', ''),
 | 
			
		||||
    ('dxSkinTheAsphaltWorld,', ''),
 | 
			
		||||
    ('dxSkinTheBezier,', ''),
 | 
			
		||||
    ('dxSkinValentine,', ''),
 | 
			
		||||
    ('dxSkinVisualStudio2013Blue,', ''),
 | 
			
		||||
    ('dxSkinVisualStudio2013Dark,', ''),
 | 
			
		||||
    ('dxSkinVisualStudio2013Light,', ''),
 | 
			
		||||
    ('dxSkinVS2010,', ''),
 | 
			
		||||
    ('dxSkinWhiteprint,', ''),
 | 
			
		||||
    ('dxSkinXmas2008Blue,', ''),
 | 
			
		||||
    ('dxSkinXmas2008Blue;', ';')
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def replace_in_file(file_path, replacements, encodings=['utf-8', 'gbk']):
 | 
			
		||||
    temp_file_path = file_path + '.tmp'
 | 
			
		||||
    try:
 | 
			
		||||
        # 尝试使用提供的编码列表打开文件
 | 
			
		||||
        for encoding in encodings:
 | 
			
		||||
            try:
 | 
			
		||||
                with open(file_path, 'r', encoding=encoding) as infile, \
 | 
			
		||||
                        open(temp_file_path, 'w', encoding=encoding) as outfile:
 | 
			
		||||
                    # 读取整个文件内容到一个字符串中
 | 
			
		||||
                    file_content = infile.read()
 | 
			
		||||
                    # 对文件内容进行所有替换操作
 | 
			
		||||
                    for old, new in replacements:
 | 
			
		||||
                        file_content = file_content.replace(old, new)
 | 
			
		||||
                    # 将替换后的内容写回临时文件
 | 
			
		||||
                    outfile.write(file_content)
 | 
			
		||||
                    # 使用os.replace原子性地替换原文件
 | 
			
		||||
                os.replace(temp_file_path, file_path)
 | 
			
		||||
                logging.info(f"Successfully processed file: {file_path} using encoding {encoding}")
 | 
			
		||||
                break  # 成功处理后跳出循环
 | 
			
		||||
            except UnicodeDecodeError:
 | 
			
		||||
                # 如果当前编码失败,则尝试下一个编码
 | 
			
		||||
                logging.warning(f"Failed to decode file {file_path} using encoding {encoding}")
 | 
			
		||||
        else:
 | 
			
		||||
            # 如果所有编码都失败,则记录错误并删除临时文件(如果存在)
 | 
			
		||||
            logging.error(f"Failed to process file {file_path} with all provided encodings")
 | 
			
		||||
            if os.path.exists(temp_file_path):
 | 
			
		||||
                os.remove(temp_file_path)
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        logging.error(f"Error processing file {file_path}: {e}")
 | 
			
		||||
        if os.path.exists(temp_file_path):
 | 
			
		||||
            os.remove(temp_file_path)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def replace_in_folder(folder_path, replacements, encodings=['utf-8', 'gbk']):
 | 
			
		||||
    for root, dirs, files in os.walk(folder_path):
 | 
			
		||||
        for file_name in files:
 | 
			
		||||
            if file_name.endswith('.pas'):
 | 
			
		||||
                file_path = os.path.join(root, file_name)
 | 
			
		||||
                replace_in_file(file_path, replacements, encodings)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 执行替换操作
 | 
			
		||||
replace_in_folder(r'D:\Dp10Repo\项目代码\D10gmXinde', replacements)
 | 
			
		||||
							
								
								
									
										7
									
								
								Delphi10/开发档案/皮肤样式/操作说明.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Delphi10/开发档案/皮肤样式/操作说明.txt
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl
 | 
			
		||||
 | 
			
		||||
备份上述文件夹后替换整个文件夹
 | 
			
		||||
 | 
			
		||||
移除 所有.pas文件中的 dxskin 开开头的引用
 | 
			
		||||
 | 
			
		||||
可使用python脚本批量操作  操作前请备份好文件
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user