Entwickler-Ecke

Freeware Projekte - INI-Dateien mit Delphi2005+ für WinForms (ohne VCL.net)


Neidhard von Reuental - Mo 20.02.06 10:35
Titel: INI-Dateien mit Delphi2005+ für WinForms (ohne VCL.net)
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: stringconst 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: stringconst 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 user profile iconChristian S.: Topic aus .NET verschoben am Mo 20.02.2006 um 10:20


Neidhard von Reuental - Fr 03.03.06 10:08

Update: 3.3.2006


Christian S. - Fr 03.03.06 12:43

Hallo!

Könntest Du die Unit evtl. in ein Package packen und somit eine .NET-DLL draus machen? Dann kann man das mit allen .NET-Sprachen nutzen! Würde das gerne ausprobieren, nutze aber nur noch C# für die .NET-Programmierung.

Grüße
Christian


Neidhard von Reuental - Sa 04.03.06 09:00

Du hast Post! :)