Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Inhalt eines TEdit in eine Datei kopieren. (https://www.delphipraxis.net/101686-inhalt-eines-tedit-eine-datei-kopieren.html)

Seppel 17. Okt 2007 12:35


Inhalt eines TEdit in eine Datei kopieren.
 
Wie kann ich den Inhalt eines Editierfeldes in eine Datei kopieren, z.B. in eine Textdatei.
Meine Test ergaben Zugriffsfehler, ich hoffe ihr könnt mir helfen.

DeddyH 17. Okt 2007 12:36

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Zeig doch mal, wie Du es versucht hast.

Bernhard Geyer 17. Okt 2007 12:36

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Zitat:

Zitat von Seppel
Meine Test ergaben Zugriffsfehler, ich hoffe ihr könnt mir helfen.

dann zeig doch einfach mal was du bisher gemacht hast damit wir dir sagen können was du falsch macht/wo du denkfehler hast.

Seppel 17. Okt 2007 12:38

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Ja, ich hab ein bisschen gesucht(im Forum).

Hier:
Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
var copyedit1: TStrings;
begin
copyedit1.LoadFromFile('c:\test.txt');
copyedit1.Add(Edit1.Text);
copyedit1.SaveToFile('c:\test.txt');
end;

Progman 17. Okt 2007 12:38

Re: Inhalt eines TEdit in eine Datei kopieren.
 
EditFelder haben keine Methode SaveToFile. Da hilft der Umweg über eine TStringList.
Delphi-Quellcode:
StringList:=TStringlist.Create;
StringList.Add(Edit1.Text);
StringList.SaveToFile('bla.txt')
StringList.Free;

Seppel 17. Okt 2007 12:40

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Zitat:

Zitat von Progman
EditFelder haben keine Methode SaveToFile. Da hilft der Umweg über eine TStringList.
Delphi-Quellcode:
StringList:=TStringlist.Create;
StringList.Add(Edit1.Text);
StringList.SaveToFile('bla.txt')
StringList.Free;

Danke es geht.

Seppel 17. Okt 2007 12:50

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Delphi-Quellcode:
copyedit1.LoadFromFile('test.txt');
Damit kann ich das file wieder öffnen, wie kriege ich die Daten darin zurück in mein Editier feld?

DeddyH 17. Okt 2007 12:53

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Delphi-Quellcode:
StringList.LoadFromFile(Dateiname);
if StringList.Count > 0 then
  Edit.Text := StringList[StringList.Count - 1];//letzte Zeile der Textdatei

Progman 17. Okt 2007 12:53

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Gleiche Methode, nur umgekehrt:
Delphi-Quellcode:
StringList:=TStringlist.Create;
StringList.LoadFromFile('bla.txt')
Edit1.Text:=StringList[0];
StringList.Free;

Klaus01 17. Okt 2007 12:56

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Ein EditFeld ist nicht dazu gedacht eine TextDatei darzustellen.
Dazu solltest Du ein TMemo nehmen - es sei denn Du willst immer nur eine Zeile
der Datei im EditFled haben.

Grüße
Klaus

Seppel 17. Okt 2007 12:59

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Ich hab bewusst die editfelder genommen, weil ich eine Datenbankverbindung habe und möchte, dass er die Verbindungsdaten einlesen und speichern kann.
Delphi-Quellcode:
Speichern:
copyedit1:=TStringlist.Create;
copyedit1.Add(edserver.Text);
copyedit1.Add(edLogin.Text);
copyedit1.Add(edPasswort.Text);
copyedit1.Add(edDB.Text);
copyedit1.SaveToFile('logindaten.ini');
copyedit1.Free;

Laden:
copyedit1:=TStringlist.Create;
copyedit1.LoadFromFile('logindaten.ini');
edServer.Text:=copyedit1[0];
edLogin.Text:=copyedit1[1];
edpasswort.Text:=copyedit1[2];
edDB.Text:=copyedit1[3];
copyedit1.Free;

Progman 17. Okt 2007 13:04

Re: Inhalt eines TEdit in eine Datei kopieren.
 
so wie dus hast, ist das ne einfache Möglichkeit.
Ich würde aber für so einen Zweck dann ein TIniFile vorziehen. ;)

DeddyH 17. Okt 2007 13:14

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Zitat:

Zitat von Progman
Ich würde aber für so einen Zweck dann ein TIniFile vorziehen.

Ich auch ;)

s-off 17. Okt 2007 13:17

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Zitat:

Zitat von Progman
EditFelder haben keine Methode SaveToFile. Da hilft der Umweg über eine TStringList.

Das weiß er wahrscheinlich selber, denn er hat gar nicht versucht, eine nicht vorhandene SaveToFile-Methode eines TEdit aufzurufen :!:
Prinzipiell war er schon auf dem richtigen Wege, nur hat er vergessen, sein TStrings-Objekt zu erzeugen.
Nichtsdestotrotz sollte man dennoch ein Objekt vom Typ TStringlist erzeugen.


Diese Anmerkung nur deshalb, damit er auch weiß, was er wirklich falsch gemacht bzw. vergessen hat.

Seppel 17. Okt 2007 13:20

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Zitat:

Zitat von Progman
so wie dus hast, ist das ne einfache Möglichkeit.
Ich würde aber für so einen Zweck dann ein TIniFile vorziehen. ;)

Und was ist das wenn ich fragen darf, also was sind die unterschiede.

DeddyH 17. Okt 2007 13:23

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Öffne doch mal eine *.ini im Editor. Normalerweise hat diese etwa folgenden Aufbau:
[Abschnitt1]
Bezeichner1=Wert1
Bezeichner2=Wert2

[Abschnitt2]
Bezeichner1=Wert1
Bezeichner2=Wert2

usw.

Mit der Klasse TIniFile kannst Du nun elegant und zielgerichtet z.B. den Wert von Bezeichner2 in Abschnitt1 auslesen.

s-off 17. Okt 2007 13:26

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Zitat:

Zitat von Seppel
Und was ist das wenn ich fragen darf, also was sind die unterschiede.

Naja, Ini-Files sind für genau soetwas gedacht.
Nehmen wir mal an, es ändert sich plötzlich innerhalb Deiner Textdatei die Position zweier Einträge.
Dann weist Du ungewollt einer Eigenschaft einen falschen Wert zu, da Du über den Index gehst.

Mit den Funktionen einer Ini-Datei greifst Du aber über die Namen zu (Name/Value), so dass es egal ist, wo das Ganze innerhalb der Datei steht.
Und Du kannst sogar noch Defaultwerte festlegen und das Ganze mittels Sektionen übersichtlich gestalten.

Schau Dir mal Tutorials dazu an, z.B. hier

Progman 17. Okt 2007 13:43

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Delphi-Quellcode:
//Lesen:
  IniFile:=TInifile.Create('bla.ini');
  Edit1.Text:=IniFile.ReadString('db','feldname', '');
  //...
  IniFile.Free;

//Schreiben:
  IniFile:=TInifile.Create('bla.ini');
  IniFile.WriteString('db','feldname', Edit1.Text);
  //...
  IniFile.Free;
Dazu muss "IniFiles" mit in der Uses-Klausel stehen.
Natürlich voher
var IniFile: TIniFile angeben ;)

Seppel 17. Okt 2007 13:52

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Bin gerade am umsetzten der Inifiles, das Tutorial hab ich gelesen, ist sehr aufschlussreich.
Danke. :dp:

Seppel 17. Okt 2007 14:05

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Ok, also hab was zusammengebracht, aber das Programm speicherts net in der ini datei.

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var IniFile: TIniFile;
begin
try
IniFile:=TInifile.Create('login.ini');
  IniFile.WriteString('Host','Host', edServer.Text);
  IniFile.WriteString('User','Login', edLogin.Text);
  IniFile.WriteString('Pass','Passwort', edPasswort.Text);
  IniFile.WriteString('Database','Datenbank', edDB.Text);

finally
  IniFile.Free;
  end;



end;
Im selbenverzeichnis, wo das Proramm und alle anderen files die dazu gehören liegen, habe ich auch die login.ini erstellt.
Die sieht so aus:
Delphi-Quellcode:
[Host]
Login=
[User]
Login=
[Pass]
Passwort=
[Database]
Datenbank=
Es gibt auch keine Fehlermeldung, deshalb glaube ich, dass irgendwas mit der ini net stimmt.

edit: und der Code zum Laden net vergessen^^:
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);

var IniFile: TIniFile;
begin
try
IniFile:=TInifile.Create('login.ini');
  edServer.Text:=IniFile.ReadString('Host','Host', '');
    edLogin.Text:=IniFile.ReadString('User','Login', '');
      edPasswort.Text:=IniFile.ReadString('Pass','Passwort', '');
        edDB.Text:=IniFile.ReadString('Database','Datenbank', '');

  finally
  IniFile.Free;
  end;

end;

Progman 17. Okt 2007 14:11

Re: Inhalt eines TEdit in eine Datei kopieren.
 
hm, müsste eigentlich funzen, schreib mal ins IniFile.Create mal mit den Verzeichnisnamen,
also ExtractFilePath(ParamStr(0))+'login.ini'.
Ich glaube, Inidateien werden von Haus aus ins Windows-Verzeichnis geschrieben.

Seppel 17. Okt 2007 14:18

Re: Inhalt eines TEdit in eine Datei kopieren.
 
Ok, danke es geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:41 Uhr.

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