Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi einen String in eine neue/leere Datei schreiben (https://www.delphipraxis.net/4799-einen-string-eine-neue-leere-datei-schreiben.html)

Rapthor 12. Mai 2003 13:01


einen String in eine neue/leere Datei schreiben
 
Wie kann ich einen String in eine neue Datei schreiben lassen?
Und wie kann ich den String wieder aus der Datei herauslesen?

Haegar 12. Mai 2003 13:29

wo nimmste denn den string her? vielleicht aus memo oder listbox oder so?

gruss haegar

Rapthor 12. Mai 2003 13:33

Aus einer TComboBox (hab sie UserListe genannt) nehm ich diesen String und bewerkstelligen will ich, dass der aktuell ausgewählte String in diese Datei geschrieben wird.
Das aktuell ausgewählte müsste ja dann UserListe.Text sein oder?

nailor 12. Mai 2003 13:44

Schau dir mal in der Hilfe/Library TextFile Reset Rewrite Readln Writeln und eventuell Streams an. Bei manchen Kompos gibts sowas wie SaveToFile LoadFromFile.

flow 12. Mai 2003 13:52

Ja genau.

Du kannst eine Stringlist anlegen:

Delphi-Quellcode:
procedure WriteToFile;
var slComboItems : TStringlist;
begin
 slComboItems.Create;
 lsComboItems.Assigen(UserList.Items);
 lsComboItems.SaveToFile('C:\FileName.txt' {der Dateiname});
 slComboItems.Free;
end;
Das lesen funktioniert umgekehrt:

Delphi-Quellcode:
procedure ReadFromFile;
var slComboItems : TStringlist;
begin
 slComboItems.Create;
 lsComboItems.LoadFromFile('C:\FileName.txt' {der Dateiname});
 UserList.Assign(lsComboItems);
 slComboItems.Free;
end;
Das ist die schnelle Variante, funktioniert auch noch auf mit anderen Varianten.

Hab jetzt kein Delphi angeworfen, ist frei gecodet, also Fehler sind vorbehalten :wink: !

FLOW

mjenke 12. Mai 2003 13:59

Zum Beispiel folgendermassen:

Delphi-Quellcode:
procedure StringInDatei(zeile: string);
var
  Datei: TextFile;
begin
  AssignFile(Datei,'c:\temp.txt');
  ReWrite(Datei);
  WriteLn(Datei,zeile);
  CloseFile(Datei);
end;
zum schreiben eines Strings in die Datei, und zum Lesen:

Delphi-Quellcode:
function StringAusDatei: string;
var
  Datei: TextFile;
  zeile: string;
begin
  AssignFile(Datei,'c:\temp.txt');
  Reset(Datei);
  ReadLn(Datei,zeile);
  CloseFile(Datei);
  result := zeile;
end;
Dabei ist aber folgendes zu beachten. Ich gehe jetzt der Einfachheit halber davon aus, dass Du immer in die Datei temp.txt auf Laufwerk C schreibst. Natürlich kannst Du den Dateinamen auch in einer Variablen übergeben oder was auch immer. Ausserdem übernimmt die Funktion zum Schreiben in die Datei den String und nicht die ComboBox. Auslesen musst Du die also vorher selbst, z. B. über:

Delphi-Quellcode:
if ComboBox.ItemIndex <> -1 then
  StringInDatei(ComboBox.Text);
Die Funktion würde also NICHT aufgerufen, wenn nichts selektiert ist (ItemIndex ist -1, wenn man in der ComboBox nichts auswählt), und wenn etwas selektiert ist, wird der gewählte Text in die Datei geschrieben. Durch das ReWrite wird die Datei übrigens jedesmal ÜBERschrieben. Es wird nichts angehängt!!!

Der Aufruf der Funktion StringAusDatei liefert Dir einfach die erste Zeile der Datei zurück. Das sollte in diesem Fall ja der vorher hineingelegte String sein...

Delphi-Quellcode:
AktUser := StringAusDatei;
:D
Matthias

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]

Daniel B 12. Mai 2003 16:02

Hallo,

Klick 1
Klick 2

Grüsse, Daniel :hi:

Luckie 12. Mai 2003 18:28

Warum einfach, wenne s umständlich geht:
Delphi-Quellcode:
Combobox1.Items.SaveToFile();
Delphi-Quellcode:
Combobox1.Items.LoadFromFile();

mjenke 13. Mai 2003 12:02

@Luckie

Wenn ich es richtig verstanden habe, geht es nicht darum, nur die kompletten Listeninhalte in eine Datei zu speichern, sondern speziell den ausgewählten Eintrag zu speichern, bzw. auszulesen.

Daher ein wenig mehr Aufwand.

:)
Matthias

Rapthor 14. Mai 2003 07:16

Super danke! Funktioniert alles schon :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 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