Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 3 textfelder inhalte kombiniert speichern und laden (https://www.delphipraxis.net/60872-3-textfelder-inhalte-kombiniert-speichern-und-laden.html)

smc 13. Jan 2006 12:23


3 textfelder inhalte kombiniert speichern und laden
 
Hallo DP!

ich habe derzeit 3 Textfelder die ich einzeln anhand diesem beispiel in eine .ini speichere.

Nun zu meinem Problem, die werte welche in meine 3 Textfelder gehören eigentl. zusammen müssen aber durch getrennte textfelder bearbeitbar sein.

Nach dem Speicher sieht es in etwa so in meiner ini aus:

[beispielRubrik]
textfeld1=wert1
textfeld2=wert2
textfeld3=wert3

Ich will es nun so hinbekommen das die werte beim speichern kombiniert werden damit es in etwa so aussieht:

[beispielRubrik]
textfeld=wert1, wert2, wert3

das laden von diesem wert sollte unteranderem nach dem speichern auch noch funktionieren!

Hat dazu jemand ein beispiel oder eine sonstige Hilfestellung für mich parat? Ich wäre sehr dankbar!


gruß
smc

ibp 13. Jan 2006 12:52

Re: 3 textfelder inhalte kombiniert speichern und laden
 
Herzlich willkomen bei DP

den ersten Tipp gibts gratis...

du könntest das so machen:
Delphi-Quellcode:
atext:tstringlist;
..
// zum schreiben in ini
atext.Delimiter:=',';
atext.add(edit1.text);
atext.add(edit2.text);
atext.add(edit3.text);

ini.WriteString('Section_Name', 'Key_Name', atext.DelimitedText);

// zum lesen aus ini
atext.DelimitedText := ini.ReadString('Section_Name', 'Key_Name', '');
..

smc 13. Jan 2006 14:02

Re: 3 textfelder inhalte kombiniert speichern und laden
 
wow, vielen dank für die schnelle antwort :) ich schau mal ob ich heute abend zeit habe und werde es dann ausprobieren

melde mich dann nocheinmal wegen dem aktuellen stand :)

3_of_8 13. Jan 2006 14:07

Re: 3 textfelder inhalte kombiniert speichern und laden
 
AFAIK hat aber TStringList.delimitedtext immer einen Bug, der bewirkt, dass ein ' ' immer als Delimiter behandelt wird. Beim Schreiben ist das egal, aber beim Lesen, wenn das 'Text1, Text2, Text3' wieder getrennt wird, könnte es ein Problem werden, wenn einer der drei Werte ein ' ' enthält.

smc 13. Jan 2006 14:16

Re: 3 textfelder inhalte kombiniert speichern und laden
 
kann man das auch irgendwie elegant umgehen?
wenn nicht würde ich zur not eben die leerzeichen in dem textfeld unterbinden, muss dazu dann aber erst nochmal recherchieren :)

p.s. danke für den tip, hätte sicher länger nach dem fehler gesucht wenn ich ihn entdeckt hätte.

ibp 13. Jan 2006 14:18

Re: 3 textfelder inhalte kombiniert speichern und laden
 
Zitat:

Zitat von 3_of_8
AFAIK hat aber TStringList.delimitedtext immer einen Bug, der bewirkt, dass ein ' ' immer als Delimiter behandelt wird. Beim Schreiben ist das egal, aber beim Lesen, wenn das 'Text1, Text2, Text3' wieder getrennt wird, könnte es ein Problem werden, wenn einer der drei Werte ein ' ' enthält.

ist das gesichert, ist mir bis jetzt noch nicht aufgefallen, werde es mal testen!

tomsel 13. Jan 2006 14:39

Re: 3 textfelder inhalte kombiniert speichern und laden
 
Gibt's das alte TStringlist.Commatext nicht mehr? Dort gab es keine Probleme mit Spaces und es erfüllt in diesem Fall den gleichen Zweck wie DelimitedText.

smc 14. Jan 2006 13:46

Re: 3 textfelder inhalte kombiniert speichern und laden
 
so habe es eben ausprobiert, das speichern klappt ganz gut, vielen dank.

Habe nun noch eine frage zu dem laden, wie bekomme ich denn die drei werte wert1,wert2,wert3, wieder separat in meine 3 textfelder?

3_of_8 14. Jan 2006 13:56

Re: 3 textfelder inhalte kombiniert speichern und laden
 
Also du machst:

strlst.commatext:=ini.readstring('bla','blubb','') ;

und dann:

edit1.text:=strlst[0];
edit2.text:=strlst[1];
edit3.text:=strlst[2];

Alternativ:

for I:=0 to 2 do
(findcomponent('edit'+inttostr(I+1)) as TEdit).Text:=strlst[I];

smc 14. Jan 2006 14:48

Re: 3 textfelder inhalte kombiniert speichern und laden
 
funktioniert perfekt, vielen dank an alle die mir geholfen haben, ihr seid echt spitze!


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