Entwickler-Ecke

Dateizugriff - [TLMDIniCtrl] Ini-Datei wird erzeugt, aber nicht beschrieben


spacemanspiff - Mo 17.01.11 09:11
Titel: [TLMDIniCtrl] Ini-Datei wird erzeugt, aber nicht beschrieben
Hallo zusammen,

ich will in mein Programm eine Ini-Datei implementieren, die u.a. die zuletzt gewählte Sprache enthält, so dass das Programm immer mit der korrekten Sprache gestartet wird. Allerdings wird die Ini-Datei nicht beschrieben und ich habe keine Ahnung, warum. Erzeugt wird sie und einen Fehler schmeisst der Compiler auch nicht aus.
Die Komponente ist die TLMDIniCtrl, außerdem das TextFile F.

Hier mal mein Code, vielleicht ist da ein Fehler drin?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TMAIN.InitProgram(Sender: TObject);
begin
  OpenComPort;
  Ini.IniFile := ExtractFilePath( Application.ExeName ) + 'Qumat11.ini';
  with Ini do
  begin
    if not FileExists( Ini.IniFile ) then
    begin
      AssignFile( F, Ini.IniFile );
      Rewrite( F );
      CloseFile( F );
      WriteString( 'Language''ID''EN' );
      WriteString( 'Parameter''Techniker''Name' );
      WriteString( 'Parameter''Flaschen-Nr''Quma 0000' );
    end;
  end;
end;


Vielen Dank und beste Grüße,
Thomas


Klabautermann - Mo 17.01.11 09:23

Hallo,

ich kenne zwar die von dir verwendete Komponente nicht (und weiß auch niocht warum man hier nicht die von Delphi mitgelieferten Klassen verwendet) aber den von dir beschriebenen Sysmtomen hört es sich so an, als würde sie sich wie eine tMemIniFile-Klasse verhalten. Bei der muss man zum Schreiben der Datei nämlich einen seperaten Befehl absetzen.

Versuche einmal ob es soetwas wie:


Delphi-Quelltext
1:
Ini.UpdateFile;                    


bei deiner Komponente gibt.

Gruß
Klabautermann

PS: Wozu das AssignFile/Rewrite Zeug? Erstellt die Ini-Komponente nicht existierende Dateien nicht selbst?


Chatfix - Mo 17.01.11 09:37

Schau mal hier, ein Tutorial zum Thema IniFiles: http://www.delphi-library.de/viewtopic.php?t=182


spacemanspiff - Mo 17.01.11 10:08

Danke für Eure Antworten...

@Klabautermann
Also es gibt eine BeginUpdate- und EndUpdate-Methode, aber die hat nicht weiter geholfen. Ebensowenig wie die Save-Methode. Ich weiss selbst nicht warum, aber mein Chef möchte, dass ich möglichst Komponenten aus der LMD-Suite nehme. Grund: unbekannt. Ich versuche es aber mal mit der normalen TIniFile. Danke Dir.

@Chatfix
Danke für den Link, ich schaue mal drüber. Werde wohl die TLMDIniCtrl gegen die normale ersetzen.

Gruß,
Thomas