![]() |
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. |
Re: Inhalt eines TEdit in eine Datei kopieren.
Zeig doch mal, wie Du es versucht hast.
|
Re: Inhalt eines TEdit in eine Datei kopieren.
Zitat:
|
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; |
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; |
Re: Inhalt eines TEdit in eine Datei kopieren.
Zitat:
|
Re: Inhalt eines TEdit in eine Datei kopieren.
Delphi-Quellcode:
Damit kann ich das file wieder öffnen, wie kriege ich die Daten darin zurück in mein Editier feld?
copyedit1.LoadFromFile('test.txt');
|
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 |
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; |
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 |
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; |
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. ;) |
Re: Inhalt eines TEdit in eine Datei kopieren.
Zitat:
|
Re: Inhalt eines TEdit in eine Datei kopieren.
Zitat:
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. |
Re: Inhalt eines TEdit in eine Datei kopieren.
Zitat:
|
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. |
Re: Inhalt eines TEdit in eine Datei kopieren.
Zitat:
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. ![]() |
Re: Inhalt eines TEdit in eine Datei kopieren.
Delphi-Quellcode:
Dazu muss "IniFiles" mit in der Uses-Klausel stehen.
//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; Natürlich voher var IniFile: TIniFile angeben ;) |
Re: Inhalt eines TEdit in eine Datei kopieren.
Bin gerade am umsetzten der Inifiles, das Tutorial hab ich gelesen, ist sehr aufschlussreich.
Danke. :dp: |
Re: Inhalt eines TEdit in eine Datei kopieren.
Ok, also hab was zusammengebracht, aber das Programm speicherts net in der ini datei.
Delphi-Quellcode:
Im selbenverzeichnis, wo das Proramm und alle anderen files die dazu gehören liegen, habe ich auch die login.ini erstellt.
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; Die sieht so aus:
Delphi-Quellcode:
Es gibt auch keine Fehlermeldung, deshalb glaube ich, dass irgendwas mit der ini net stimmt.
[Host]
Login= [User] Login= [Pass] Passwort= [Database] Datenbank= 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; |
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. |
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