On 15/03/2011 04:25, Peter Williams wrote: > > Hi All, > I use this procedure to save an inifile using the standard IniFiles unit. The > problem I have is that when an .ini file already exists I cannot overwrite > it. I need the TextFiles equivalent of Rewrite() for Inifiles. > This line: ConfigIni := TIniFile.Create(ChangeFileExt(Application.ExeName, > '.ini'));... when the ini file exists fails with an error message of 'unable > to create appname.ini'. This is because it cannot create an ini file which > already exists. > How then do I rewrite the .ini file? > Uses IniFiles; > procedure TMain_Form.SaveIniFile;var ConfigIni: TIniFile; x, y: > integer;begin ConfigIni := > TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')); // e.g. > fred.exe becomes fred.ini try for x := 1 to max_pats do begin > if patterns_list[x].Count > 0 then begin > ConfigIni.WriteString('Pattern' + inttostr(x), 'Name', > Patterns_list[x].Strings[0]); for y := 1 to patterns_list[x].Count > - 1 do ConfigIni.WriteString('Pattern' + inttostr(x), 'Line' + > inttostr(y), Patterns_list[x].Strings[y]); end; end; > ConfigIni.WriteInteger('General', 'Auto Generation Delay', > Timer1.Interval); if current_color_scheme = krgy then > ConfigIni.WriteString('General', 'Current Color Scheme', 'krgy') else > ConfigIni.WriteString('General', 'Current Color Scheme', 'kmcw'); > ConfigIni.WriteBool('General', 'Sound Wanted', Sound_wanted); > ConfigIni.UpdateFile; finally ConfigIni.Free; > end;end;{---------------------------------------------------------} > Best Regards,Peter / pew > >
{$ define rewrite } ? If by 'rewrite' you mean 'to clear it and then write it again', then I'd just plain DeleteFile, then create it again. if by 'rewrite' you mean 'to load its contents and_then clear them and_then write new content' then I'd use the TMemIniFile that can load contents from TString[s][list]. L. -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus