Delphi-PRAXiS
Seite 2 von 3     12 3      

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: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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr.
Seite 2 von 3     12 3      

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