Autor Beitrag
Neidhard von Reuental
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: Mo 20.02.06 10:35 
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.
ausblenden 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:
ausblenden 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:
ausblenden 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
Einloggen, um Attachments anzusehen!
Neidhard von Reuental Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: Fr 03.03.06 10:08 
Update: 3.3.2006
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Neidhard von Reuental Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: Sa 04.03.06 09:00 
Du hast Post! :)