Delphi – 读取文件到StringList,然后删除并写回文件
发布时间:2020-12-15 09:43:23 所属栏目:大数据 来源:网络整理
导读:我目前正在开发一个程序来生成Delphi 2010中的文件哈希.作为其中的一部分,我可以选择创建用户预设,例如预定义的哈希算法选择,用户可以创建/保存/删除.我有创建和加载代码正常工作.它使用ComboBox并从文件“fhpre.ini”加载,在此文件中是用户预设,格式为: –
我目前正在开发一个程序来生成Delphi 2010中的文件哈希.作为其中的一部分,我可以选择创建用户预设,例如预定义的哈希算法选择,用户可以创建/保存/删除.我有创建和加载代码正常工作.它使用ComboBox并从文件“fhpre.ini”加载,在此文件中是用户预设,格式为: –
PresetName 在应用程序加载时,它会将此文件中的数据加载到ComboBox和一个数组中,其中ComboBox的ItemIndex与数组中0和1的相应正确字符串相匹配. 现在我需要实现一项功能,让用户从列表中删除预设.到目前为止,我的代码如下, procedure TForm1.Panel23Click(Sender : TObject); var fil : textfile; contents : TStringList; x,i : integer; filline : ansistring; filestream : TFileStream; begin //Start Procedure //Load data into StringList contents := TStringList.Create; fileStream := TFileStream.Create((GetAppData+'RFAfhpre.ini'),fmShareDenyNone); Contents.LoadFromStream(fileStream); fileStream.Destroy(); //Search for relevant Preset i := 0; if ComboBox4.Text <> Contents[i] then begin Repeat i := i + 1; Until ComboBox4.Text = Contents[i]; end; contents.Delete(i); //Delete Relevant Preset Name contents.Delete(i); //Delete Preset Digit String //Write StringList back to file. AssignFile(fil,(GetAppData+'RFAfhpre.ini')); ReWrite(fil); for i := 0 to Contents.Count -1 do WriteLn(Contents[i]); CloseFile(fil); Contents.Free; end; 但是,如果运行它,它到达WriteLn部分时会出现105错误.我知道代码不是很好,例如没有检查具有相同名称的预设,但是会出现这种情况,我希望首先使用基本代码然后调整并添加额外的检查等. 任何帮助,将不胜感激. 解决方法
我希望你知道TStringList有LoadFromFile和SaveToFile方法吗?
如果由于某种原因你不能使用这些方法,为什么要使用流来读取而WriteLn用于写入? 要使用WriteLn写入文件,必须将文件指定为第一个参数: WriteLn(fil,Contents[i]); 没有参数,它试图写入控制台(可能在Windows应用程序中不可用).错误105是“文件未打开输出”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |