Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Abspeichern und laden von Ini (https://www.delphipraxis.net/107176-abspeichern-und-laden-von-ini.html)

ily.94 23. Jan 2008 18:47


Abspeichern und laden von Ini
 
Also HAllo erstmal

Ich will den Edit inhalt per Button in ini abspeichern und mit nem 2. wieder laden ich hab mir das tut von dsdt.info durchgelesen aber nicht wirklich kapiert wie ich das mit nem edit text mache weil das dort nicht erklärt wurde

KAnn mir jemand helfen

Matze 23. Jan 2008 18:49

Re: Abspeichern und laden von Ini
 
Hallo,

herzlich willkommen!

Mit etwas nachdenken ist es gar nict schwer. ;) Edit1.Text ist ein String, also musst du Delphi-Referenz durchsuchenWriteString nutzen.

Delphi-Quellcode:
// speichern
Ini := TIniFile.Create('c:\...\datei.ini');
try
  Ini.WriteString('Kategorie', 'Eigenschaft', Edit1.Text);
finally
  FreeAndNil(Ini);
end;
Wie man einen String lädt, solltest du selbst herausbekommen.

Grüße

DP-Maintenance 23. Jan 2008 20:10

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

ily.94 24. Jan 2008 13:29

Re: Abspeichern und laden von Ini
 
Danke ja wie er lädt weiß ich aber wie lädt er sofort beim programmstart geht das , das ich nich auf laden button drücken muss???


und muss ich kategori und eigenschaft machen????

Matze 24. Jan 2008 13:33

Re: Abspeichern und laden von Ini
 
Moin

Zitat:

Zitat von ily.94
Danke ja wie er lädt weiß ich aber wie lädt er sofort beim programmstart geht das , das ich nich auf laden button drücken muss???

Da kannst du natürlich auch das OnChangeOnCreate-Ereignis des Formulars nehmen (bsp. per Doppelklick im Formdesigner anlegen).

Zitat:

Zitat von ily.94
und muss ich kategori und eigenschaft machen????

Ich gehe davon aus, dass dies im Ini-Tutorial erwähnt wird. Natürlich kannst du die Namen frei wählen, sie müssen eben beim Speichern/Laden die selben sein, um die Daten zuordnen zu können.

Grüße

Edit: Ich habe mich im Ereignisnamen geirrt.

ily.94 24. Jan 2008 13:35

Re: Abspeichern und laden von Ini
 
aber muss das nicht bei jedem weiterem Speichern anders sein




OnChange?????? was macht es genau??




MFG ily.94

Matze 24. Jan 2008 13:37

Re: Abspeichern und laden von Ini
 
Ähm sorry, ich meine OnCreate. :oops:

Das ist ein Ereignis, was beim Erstellen des Formulars aufgerufen wird.

Pro Wert, den du speichern/laden möchtest, musst du andere "Kennungen" verwenden. Beispiel:

Delphi-Quellcode:
Ini.WriteString('Person1', 'Name', Edit1.Text);
Ini.WriteString('Person1', 'Strasse', Edit2.Text);
Ini.WriteString('Person1', 'Ort', Edit3.Text);

Ini.WriteString('Person2', 'Name', Edit4.Text);
Ini.WriteString('Person2', 'Strasse', Edit5.Text);
Ini.WriteString('Person2', 'Ort', Edit6.Text);

ily.94 24. Jan 2008 13:44

Re: Abspeichern und laden von Ini
 
ACHSOOOOO und wenn er sie lädt weiß er was wohin wegen straße ...... richtig und das mit oncreate das lädt aber nachher nich automatisch ????

Matze 24. Jan 2008 13:49

Re: Abspeichern und laden von Ini
 
Zitat:

Zitat von ily.94
und wenn er sie lädt weiß er was wohin wegen straße

Ja, der Aufbau einer Ini wäre ja (grob aus dem Kopf) so ungefähr:

Code:
[Person1]
Name=Hans
Strasse=Mozartstrasse
Ort=Stuttgart

[Person2]
Name=Julia
Strasse=Blumenstrasse
Ort=Berlin
Anhand der Kategorie (Person1, Person2) und der Eigenschafft (Name, Strasse, Ort), kann das eindeutig zugeordnet und ausgelesen werden.

Zitat:

Zitat von ily.94
und das mit oncreate das lädt aber nachher nich automatisch ????

Du kannst da reinschreiben was du möchtest. Das wird dann eben beim Programmstart ausgeführt.

Blackheart 24. Jan 2008 13:50

Re: Abspeichern und laden von Ini
 
Hier mal ein sehr gutes Ini Tutorial und wie es scheint könnte es auch nicht schaden sich mal nach einem guten Anfänger Tutorial umzuschauen.

http://www.kuknet.de/tutorial1.pdf

ily.94 24. Jan 2008 13:56

Re: Abspeichern und laden von Ini
 
So ein totaler anfänger bin ich ja nicht ^^ ich habs ein WENIG ^^ verlernt und das mit oncreate is cool hab ich noch nix von gehört danke an euch

lbccaleb 24. Jan 2008 14:20

Re: Abspeichern und laden von Ini
 
falls du intresse hast, irgendwann mal nonvcl anzufangen, dann findest du hier auch was dazu um mit ini dateien zu arbeiten:

luckie win32api tutorials

in diesem beitrag ist die arbeit mit inidateien unter dem punkt 4.5 arbeiten mit ini datien...

die passenden sourcecodes der bsp findest du auf der seite von luckie:

luckie

ily.94 24. Jan 2008 16:41

Re: Abspeichern und laden von Ini
 
OK also ich hab jetz so ein kleines ich betone kleines Adressbuch gemacht jetz möchte ich per Oncreate alle kontakte in Memo1 gezeigt werden kann mir jemand helfen(vllt. auch erklären warum es denn so ist(ich möchte es ja lernen))??





DANKE DANKE


MFG ily.94

Matze 24. Jan 2008 16:50

Re: Abspeichern und laden von Ini
 
Hallo,

baue deine Ini so auf, dass du mit einer Laufvariable auf die Eigenschaften zugreifen kannst:

Code:
[Adressen]

Name1=Hans
Tel1=123

Name2=Hugo
Tel2=987
Dann kannst du in einer Schleife darauf zugreifen:

Delphi-Quellcode:
for i := 1 to <Anzahl der Einträge> do
begin
  Memo1.Lines.Add(Ini.ReadString('Adressen', 'Name' + IntToStr(i), 'irgendein Standardwert');
  Memo1.Lines.Add(Ini.ReadString('Adressen', 'Tel' + IntToStr(i), 'irgendein Standardwert'); // Vorrausgesetzt, du hast die Nr. als String gespeichert
end;
Du kannst in ein Memo übrigens auch direkt eine (Text-)Datei laden:

Delphi-Quellcode:
Memo1.Lines.LoadFromFile('deine_textdatei.txt');
Edit: Ups, ich hatte "Lines" vergessen und habe es, um zukünftige Benutzer nicht zu frustrieren, ergänzt. [19:26 Uhr]

ily.94 24. Jan 2008 17:23

Re: Abspeichern und laden von Ini
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.LoadFromFile('Kontakte.ini');
end;



er sagt mir : Undefinierter Bezeichner: LoadfromFile

Blackheart 24. Jan 2008 17:32

Re: Abspeichern und laden von Ini
 
Zitat:

Zitat von Blackheart
Hier mal ein sehr gutes Ini Tutorial und wie es scheint könnte es auch nicht schaden sich mal nach einem guten Anfänger Tutorial umzuschauen.

http://www.kuknet.de/tutorial1.pdf


ily.94 24. Jan 2008 17:35

Re: Abspeichern und laden von Ini
 
DAS Tut habe ich schon^^


wer kann denn bei meinem prob helfen
Zitat:

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.LoadFromFile('Kontakte.ini');
end;



er sagt mir : Undefinierter Bezeichner: LoadfromFile

Blackheart 24. Jan 2008 17:37

Re: Abspeichern und laden von Ini
 
Lines, Anfertutorial :wink:

DeddyH 24. Jan 2008 17:39

Re: Abspeichern und laden von Ini
 
Tipp: die Code-Vervollständigung hilft da oft weiter (einfach nach der Eingabe des Punktes ein bisschen warten oder CTRL-Space drücken).

Matze 24. Jan 2008 18:25

Re: Abspeichern und laden von Ini
 
Heute bin ich einfach nicht bei der Sache. :mrgreen: Ich habe den Code oben korrigiert.

Eine Ini-Datei würde ich so aber nicht ins TMemo laden, da du sonst 1:1 den Ini-Inhalt siehst und somit auch die Dinge, die nicht angezeigt werden sollen.

ily.94 24. Jan 2008 18:30

Re: Abspeichern und laden von Ini
 
Wie empfiehlst du es mir denn ????? Wenn es geht bitte direkt einen code^^

DeddyH 24. Jan 2008 18:49

Re: Abspeichern und laden von Ini
 
Ohne Code :mrgreen: :
Wenn es wirklich um ein Adressbuch o.ä. geht, kannst Du es so machen:
1. Die Namen müssen eindeutig sein
2. Jeder Name = 1 Abschnitt in der Ini
3. Die zu belegenden Felder sind die "Idents", also die Datenfelder.

Die Namen kannst Du z.B. mit Ini.ReadSections in die Items einer ComboBox laden. Je Feld (Ident) gibt es 1 Edit auf Deinem Formular. Wenn sich der ItemIndex der ComboBox ändert (im OnChange der ComboBox) kannst Du mit Ini.ReadString die einzelnen Felder in die Edits laden. Bei Änderungen dann eben analog zu ReadString mit WriteString in die Ini zurückschreiben. Wenn Du mal die DP-Suche bemühst, solltest Du ein kleines Beispiel von mir (mit TMemIniFile) finden können. Solltest Du dann nicht weiterkommen, einfach nachhaken ;)

Neumann 25. Jan 2008 08:00

Re: Abspeichern und laden von Ini
 
Hallo,

ein Adressbuch in eine Ini-Datei speichern ist nicht besoders elegant.

Besser ist z.B. ein Clientdataset (auch Mybase genannt)

Gruß

ily.94 25. Jan 2008 13:59

Re: Abspeichern und laden von Ini
 
@DeddyH Danke ich werds heute mal so probieren und fragen wenn was nicht klar ist

@Neumann was ist dennn der unterschied zwischen ini und Mybase

ily.94 25. Jan 2008 19:16

Re: Abspeichern und laden von Ini
 
Kann mir jetzt vllt. jemand sagen wie ich via if prüfe ob ein Memo feld leer ist also
Zitat:

if Memo1 = '' then ............
geht nicht Memo ist ja kein String^^

pilic 25. Jan 2008 19:27

Re: Abspeichern und laden von Ini
 
1. Nur eine Frage pro Thread
2. Den Thread gibt es 100% schon einmal
3. TMemo.Lines ist vom Typ TStrings also kannst du mit einem Index in eckigen Klammern auf einzelne Zeilen des Memos zugreifen.

Blackheart 25. Jan 2008 19:29

Re: Abspeichern und laden von Ini
 
Zitat:

Zitat von ily.94
Kann mir jetzt vllt. jemand sagen wie ich via if prüfe ob ein Memo feld leer ist also
Zitat:

if Memo1 = '' then ............
geht nicht Memo ist ja kein String^^

Ja hier
hier
hier
hier

ily.94 25. Jan 2008 20:02

Re: Abspeichern und laden von Ini
 
gelesen^^

Matze 26. Jan 2008 07:41

Re: Abspeichern und laden von Ini
 
Ich schließe hier, da diese Frage überhaupt nichts mit dem Ausgangsthema zu tun hat.
Sei bitte so gut und bemühe zukünftig die Suchfunktion: Text eines Memos überprüfen.

G E S C H L O S S E N


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