Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ini Dateien bearbeiten (https://www.delphipraxis.net/22556-ini-dateien-bearbeiten.html)

thomasvonmuenster1 19. Mai 2004 09:55


ini Dateien bearbeiten
 
Er schreibt nur den letzten Eintrag.Wie kann man ihn sagen das er in eine neue Zeile springt und die Eingaben vom Memo.Text anfügt?
Delphi-Quellcode:
Ini := TIniFile.Create('c:\test\bauer.ini');
 Ini.WriteString('Pfad', 'Datei', Memo1.Text);
 Ini.Free;

nailor 19. Mai 2004 09:59

Re: ini Dateien bearbeiten
 
möchtest du den kompletten inhalt eines momos in eine datei speichern?

thomasvonmuenster1 19. Mai 2004 10:01

Re: ini Dateien bearbeiten
 
Ich will meine INI die mehere Pfade eintragen über Memo.text
Delphi-Quellcode:
[Pfad]
Datei=Datei=c:\test\test3.pdf

nailor 19. Mai 2004 10:04

Re: ini Dateien bearbeiten
 
dann geh mit einer schleife memo1.lines durch

thomasvonmuenster1 19. Mai 2004 10:08

Re: ini Dateien bearbeiten
 
So macht er es nicht.
Delphi-Quellcode:
 if Memo1.Lines.Values['Datei'] = '' then
  Ini := TIniFile.Create('c:\test\bauer.ini');
  Ini.WriteString('Pfad', 'Datei', Memo1.Text);
  Ini.WriteString('Pfad', 'Datei', Memo1.Lines.Values['Datei']);
  Ini.Free;

nailor 19. Mai 2004 10:10

Re: ini Dateien bearbeiten
 
a) schreibst du immer in den gleichen eintrag
b) musst du eine for/while schleife nehmen
c) muss ich jetzt off, aber wer anders hilft bestimmt

thomasvonmuenster1 19. Mai 2004 10:18

Re: ini Dateien bearbeiten
 
a)ja immer an die gleiche Position
b) bei while u. for stürtz er ab
c)Danke

thomasvonmuenster1 19. Mai 2004 11:14

Re: ini Dateien bearbeiten
 
So macht er nur einen Eintrag.
Was muß man ändern um:
[Pfad]
Datei=test1
Datei=test2
Datei=test3
zu bekommen?
Delphi-Quellcode:
procedure TMainForm.Button3Click(Sender: TObject);
var
  ini : TIniFile;
begin
  ini := TIniFile.Create(ChangeFileExt(paramstr(0),'.ini'));
  try
    if Memo1.Lines.Values['Datei'] = '' then
      Ini.WriteString('Pfad', 'Datei', Memo1.Text)
    else
      Ini.WriteString('Pfad', 'Datei', Memo1.Lines.Values['Datei']);
  finally
    ini.Free;
  end;
end;

SirThornberry 19. Mai 2004 11:24

Re: ini Dateien bearbeiten
 
Code:
Datei=test1 
Datei=test2 
Datei=test3
du überschreibst doch damit jedesmal "Datei"
In einer Inidatei ist es nicht möglich mehrere einträge mit dem selben Namen zu haben wenn sie auch zur gleichen Kategorie gehören..

Sollte wohl eher so aussehen
Delphi-Quellcode:
[...]
for Count := 0 to Memo1.Lines.Count - 1 do
begin
  Ini.WriteString('Pfad', 'Datei' + inttostr(Count+1), Memo1.Lines.Strings[Count]);
end;
[...]
[Edit1]
oder ist Memo1.lines.text eine gesammte datei?
dann musst du die Zeilenumbrüsche mit einem zeichen ersetzen das nicht in dem Text vorkommt und beim aulesen ersetzt du dann wieder zurück
Delphi-Quellcode:
  Ini.WriteString('Pfad', 'Datei', StringReplace(Memo1.Lines.Text, #13#10, 'µ', [rfreplaceall]);
[/Edit1]

[Edit2]
Ich denke jedoch du solltest dir mal gedanken machen ob das konzept wirklich soo toll ist eine datei in eine inidatei zu schreiben. Beispielsweise werden führende Leerzeichen bei einem value entfernt. Gibt noch einige andere zeichen die nicht so recht in die ini-datei passen bzw falsch/nicht geschrieben oder gelesen werden. Vielleicht solltest du das ganze lieber in eine Zipdatei packen. Ich selbst verwende für sowas TFilepack (virtuelles Dateisystem in einer Datei) und kann dann darin dateien anlegen...
[/Edit2]

nailor 19. Mai 2004 12:21

Re: ini Dateien bearbeiten
 
SirThornberry code ist das, was ich in worten sagte ;)

also entweder so machen, oder aber den inhaklt des memos mit savetofile / loadfromfile verarbeiten


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz