- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当 ini 文件包含只有一个键的部分时(例如
中的MySection1
[MySection1]
MyKey1=MyValue1
[MySection2]
...
) 对该键调用 DeleteKey
会留下一个空部分:
[MySection1]
[MySection2]
...
我希望该空白部分也能被删除。当然我可以这样称呼
if not ini.SectionExists('MySection1') then
ini.EraseSection('MySection1');
每次调用DeleteKey
(或者重写TExtIniFile.DeleteKey
)之后,但我希望有一种自动方法可以让Windows或VCL做到这一点。你知道吗?
更新:我使用的 TIniFile 后代仅添加了一些额外的 Read*/Write* 方法。
更新:我的测试例程:
procedure TForm1.Button1Click(Sender: TObject);
var
ini: TMyIniFile;
begin
ini := TMyIniFile.Create(cIniFileName);
try
ini.WriteString('MySection1', 'MyKey1', 'MyValue1');
ini.DeleteKey('MySection1', 'MyKey1');
finally
ini.Free;
end;
Show;
end;
procedure TForm1.Show;
begin
if FileExists(cIniFileName) then
Memo1.Lines.LoadFromFile(cIniFileName)
else
Memo1.Lines.Clear;
end;
TMyIniFile
可以是 TIniFile
的别名,也可以是 TMemIniFile
的后代,并带有调用 UpdateFile
的析构函数。
最佳答案
我不认为存在“自动方式让 Windows 或 VCL 做到这一点”。我相信原因是“API”不知道您不打算再使用该部分(即,如果 API 在您删除最后一个键后删除该部分,那么有人会提示这效率低下)稍后向该部分添加 key ,因此必须重新创建该部分)。另外,有人可能会说,空部分的存在也携带了信息,因此,如果自动删除,这些信息就会丢失。
关于delphi - .ini 文件 : DeleteKey leaves empty section,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7010617/
c# 窗体 我的 DataGridView 有: 选择模式 - 单元格选择 编辑模式 - EditOnKeyStroke 它适用于除 DeleteKey 之外的所有键(按下时 - 没有任何反应)。 我
我在表单上有一个 DataGridView。 我想通过按 delete 键从网格中删除行,但是 delete 键似乎已经死了,直到我进入 CellEditMode。 如果我输入 CellEditMod
当 ini 文件包含只有一个键的部分时(例如 中的 MySection1 [MySection1] MyKey1=MyValue1 [MySection2] ... ) 对该键调用 DeleteKey
我是一名优秀的程序员,十分优秀!