![]() |
Hilfestellung Speichern/Laden von Werten in anderen Datein
Guten morgen erstmal,
zu begin wollt ich gerne sagen, dass ich neu im forum bin, falls dieser thread nicht in den bereich passt, mich bitte korrigieren. nun zu meinem Problem:
mein wunsch wäre es, wenn jmd. mir dazu einen kommentierten quelltext geben/schreiben könnte mit dem erforderlichen/benötigten befehlen und diesen auch komplett kommentiert, was wofür da ist. Grund: Zu dieser Thematik habe ich bestimmt mehrere stunden gesucht und nichts für mich verständliches gefunden, aber ich habe auch hier die SuFu benutzt, kam jedoch zu keinem ergebnis.:oops: nunja bei mir liegt das problem ja darin, wenn ich mir etwas neues zu delphi beibringe, es parallel auch direkt test und es vor augen haben muss, wie die logik dahinter ist, dann verstehe ich es auch ^^ und gerade vor dieser thematik schwirrt mir der kopf, da ich soviele anscheinliche wege gefunden haben, wo das testen einfach scheiterte bzw. das verständnis dann fehlte :( mfg.Rarator ps. Hiermit möchte ich schonmal den Helfern im Voraus danken, dass diese sich die Mühe bereitet haben mir zu helfen. |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
Für eine Textdatei, wäre ja eine Klasse gut, welche Textdaten verwaltet ...
und das wäre z.B. eine ![]() ![]() ![]() (TStrings ist nur der Vorfahr der TStringList ... zum besseren Auffinden in der OH :angle2:) Verwendet wird die StringListe, wie ![]() aber im Notfall gibt es tausende Beiträge ( ![]() Ach ja, Moin und Willkommen :hi: |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
wenn du die Hilfe meinst, die man normalerweise über Delphi abrufen kann funktioniert bei mir nicht...
villt hätte ich sagen sollen, dass ich Delphi6 nutze. und durch die SuFu habe ich wie bereits gesagt, nichts brauchbares gefunden, da wären mir Direktlinks zu den Threads, wo die thematik komplett behandelt wird mit kommentierten beiliegenden Quellcode lieber. Zitat:
Zitat:
|
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
Zitat:
![]() |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
So, damit kannst Du mal anfangen rumzuspielen .....
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl:TStringList; begin if Opendialog.Execute then try sl:=TStringList.Create; sl.LoadFromFile(Opendialog.FileName); if sl.Count > 0 then Edit1.Text := sl[0]; finally sl.Free; end; end; procedure TForm1.Button2Click(Sender: TObject); var sl:TStringList; begin if SaveDialog.Execute then try sl:=TStringList.Create; sl.Add(Edit1.Text); sl.SaveToFile(Savedialog.FileName); finally sl.Free; end; end; |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
Sollte die Liste nicht besser vor dem Try erzeugt werden?
|
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
PS: Schau mal auf die Portalseite und such dort rechts nach einem Linkder so ähnlich wie eine Referenz für Delphi klingt.
Das ist unter anderem die OH (Online-Hilfe) als Online-Version, mit freundlicher Unterstützung unseres Admins. |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
@DeddyH
ja, sorry ... Schnellschuss |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
Zitat:
Klar ist Bummis Code verbesserbar, da SL irgendwelchen Müll enthalten könnte. Ein sl:= nil vor dem sl create wäre meiner Meinung nach besser. |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
Zitat:
Wenn man die Variable vor dem Try auf Nil setzt, bzw. sie automatisch gesetzt wurde, was bei einer loklen Variable aber nicht der Fall ist, dann kann man das Create auch innerhalb des Try-Blocks machen. Wenn man unbedingt auf das Begin-End verzichten will, welches nötig wäre, wenn .Create vor dem Try liegen würde, dann wäre Folgendes eine (oftmals verfluchte) Möglichkeit. (wegen dem böse With)
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin if SaveDialog.Execute then with TStringList.Create do try Add(Edit1.Text); SaveToFile(SaveDialog.FileName); finally Free; end; end; |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
Zitat:
In diesem Konstrukt wird der gesamte
Delphi-Quellcode:
Block nur dann ausgeführt, wenn
try .. finally .. end
Delphi-Quellcode:
keine Exception wirft.
TMyFoo.Create
Delphi-Quellcode:
Hier sieht das aber ganz anders aus. Wenn
MyFoo := TMyFoo.Create;
try // irgendwas mit MyFoo machen finally MyFoo.Free; end;
Delphi-Quellcode:
eine Exception wirft, dann wird der
TMyFoo.Create
Delphi-Quellcode:
Teil ausgeführt.
finally
Delphi-Quellcode:
Wir haben also 2 völlig unterschiedliche Verhaltensweisen. In dem gezeigten Beispiel mag das zwar völlig wumpe sein, aber man sollte sich dessen bewusst sein.
try
MyFoo := TMyFoo.Create; // irgendwas mit MyFoo machen finally MyFoo.Free; end; Zitat:
Delphi-Quellcode:
Denn das ist genau das was du vorschlägst:
procedure Foo;
var lFoo : Integer; begin lFoo := 0; // es könnte ja was ganz doofes da in lFoo stehen, also nur so zur Sicherheit lFoo := 100; ... end;
Delphi-Quellcode:
procedure Foo;
var lFoo : TFoo; begin lFoo := nil; // es könnte ja was ganz doofes da in lFoo stehen, also nur so zur Sicherheit lFoo := TFoo.Create; ... end; |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
Ja, ich hab mich nur kurz ausgedrückt. Eigentlich bin ich vollkommen deiner Meinung, ohne sl:= nil könnte free Daten zerstören. Free prüft soweit ich richtig bin, immer ob überhaupt eine Instanz des Objektes besteht, deshalb das sl:= nil vor dem create.
Ich selbst gehe fast immer so vor
Delphi-Quellcode:
warum? In der Regel ist es so, dass mehrere Objekte erzeugt werden müssen, eine komplexe Verschachtelung von Try und Finally für jedes einzelne Objekt macht den Code dann extrem unübersichtlich. Deshalb erzeuge ich Objekte meist innerhalb des Try Blockes.
foo := nil;
try foo := TFoo.create; //mach was finally foo.free; end; Bsp.:
Delphi-Quellcode:
foo := nil;
bar:= nil; try foo := TFoo.create; bar:=TBar.create; //mach was mit Foo und Bar finally bar.free foo.free; end; |
AW: Hilfestellung Speichern/Laden von Werten in anderen Datein
@ alle
Vielen Dank für eure reiche Hilfe, meine Fragen bzgl Thema sind beantwortet und thread kann geclosed werden :D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 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