【发布时间】:2021-10-15 17:50:58
【问题描述】:
我一直在开发一种工具来修改文本文件以更改游戏的图形设置。一些设置示例如下:
sg.ShadowQuality=0
ResolutionSizeX=1440
ResolutionSizeY=1080
bUseVSync=False
我希望能够找到 sg.ShadowQuality=(其余行,无论此文本后面是什么),并替换它。这样用户就可以将其设置为 10 然后 1 而无需检查 10 和 1 等。 基本上,我试图找出我需要使用什么来查找/替换文本文件中的字符串而不知道字符串的结尾。 我当前的代码如下所示:
FileInfo GameUserSettings = new FileInfo(@SD + GUSDirectory);
GameUserSettings.IsReadOnly = false;
string text = File.ReadAllText(SD + GUSDirectory);
text = text.Replace("sg.ShadowQuality=0", "sg.ShadowQuality=" + Shadows.Value.ToString());
File.WriteAllText(SD + GUSDirectory, text);
text = text.Replace("sg.ShadowQuality=1", "sg.ShadowQuality=" + Shadows.Value.ToString());
File.WriteAllText(SD + GUSDirectory, text);
SD + GUSDirectory 是文本文件的位置。 该文件必须有只读关闭才能编辑,否则游戏可以将设置恢复回来,因此需要这样做。(在任何更改后恢复为只读打开,它只是不包含在提供的此代码中)
【问题讨论】:
-
这看起来基本上是一个 INI 文件,所以你想考虑只使用一个库(例如IniParser)。