Hallo,
da es ohne VCL.net nicht möglich ist mit INI-Dateien zu arbeiten, habe ich in den letzten beiden Tagen eine Klasse programmiert die diese Funktion kapselt. Gearbeitet wird wie mit der orginalen TINIFile- und TMemINIFile-Klasse, also z.b.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); var INI:TINIFile; begin INI:=TINIFile.Create('test.ini'); TextBox3.Text:=INI.ReadString('config','username',''); INI.Free; end; |
Die beiden Klassen haben nun den Umfang der Orginal-Klassen erreicht.
TINIFile:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| Create(Filename:string); ReadString( const section:string ; const key:string ; const default:string ):string; ReadInteger( const section:string ; const key:string ; const default:int64 ):int64; ReadFloat( const section:string ; const key:string ; const default:double ):double; ReadBool( const section:string ; const key:string ; const default:boolean ):boolean; ReadDate( const section:string ; const key:string ; const default:DateTime ):DateTime; ReadTime( const section:string ; const key:string ; const default:DateTime ):DateTime; ReadDateTime( const section:string ; const key:string ; const default:DateTime ):DateTime; ReadSections( SC:StringCollection ); ReadSection( const section: string; SC:StringCollection); ReadSectionValues( const section:string; SC:StringCollection); WriteString( const section:string ; const key:string ; const value:string ); WriteInteger( const section:string ; const key:string ; const value:int64 ); WriteFloat( const section:string ; const key:string ; const value:double ); WriteBool( const section:string ; const key:string ; const value:boolean ); WriteDate( const section:string ; const key:string ; const value:DateTime ); WriteTime( const section:string ; const key:string ; const value:DateTime ); WriteDateTime( const section:string ; const key:string ; const value:DateTime ); DeleteKey( const section:string ; const key:string ); EraseSection( const section:string ); UpdateFile(); SectionExists( const section:string): boolean; ValueExists( const section: string; const key: string): boolean; |
TMemINIFile:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| Create(Filename:string); Clear; GetStrings( SC:StringCollection ); SetStrings( const SC:StringCollection ); ReadString( const section:string ; const key:string ; const default:string ):string; ReadInteger( const section:string ; const key:string ; const default:int64 ):int64; ReadFloat( const section:string ; const key:string ; const default:double ):double; ReadBool( const section:string ; const key:string ; const default:boolean ):boolean; ReadDate( const section:string ; const key:string ; const default:DateTime ):DateTime; ReadTime( const section:string ; const key:string ; const default:DateTime ):DateTime; ReadDateTime( const section:string ; const key:string ; const default:DateTime ):DateTime; ReadSections( SC:StringCollection ); ReadSection( const section: string; SC:StringCollection); ReadSectionValues( const section:string; SC:StringCollection); WriteString( const section:string ; const key:string ; const value:string ); WriteInteger( const section:string ; const key:string ; const value:int64 ); WriteFloat( const section:string ; const key:string ; const value:double ); WriteBool( const section:string ; const key:string ; const value:boolean ); WriteDate( const section:string ; const key:string ; const value:DateTime ); WriteTime( const section:string ; const key:string ; const value:DateTime ); WriteDateTime( const section:string ; const key:string ; const value:DateTime ); DeleteKey( const section:string ; const key:string ); EraseSection( const section:string ); Rename(const filename:string; reload:boolean); UpdateFile(); SectionExists( const section:string): boolean; ValueExists( const section: string; const key: string): boolean; |
Cu Neid
PS.: Im Anhang befindet sich die Compilierte Unit (MPSINIFiles.dcuil) und eine Beispielanwendung (mit Source).
Um mit den Klassen arbeiten zu können muß die Unit in die Uses-Klauses eingetragen werden.
Moderiert von
Christian S.: Topic aus .NET verschoben am Mo 20.02.2006 um 10:20