Entwickler-Ecke
Dateizugriff - Strings speichern
theoneandonly - Mi 07.06.06 22:27
Titel: Strings speichern
Hallo, ich bins wieder ;)
Ich hab (wieder mal) ein (für andere ist es wahrscheinlich keins) Problem.
Ich habe einen String, den ich speichern und laden möchte.
Dazu 2 Fragen:
1. Wie speichere ich einen String, egal in welches Format, Hauptsache ich kann ihn wieder auslesen, ohne über einen Speicherdialog zu gehen (Dateiname name.***)?
2. Wie speichere ich in das Verzeichnis des Programms, wenn ich den Pfad nicht kenne?
Danke schonmal!
mkinzler - Mi 07.06.06 22:29
Zitat: |
1. Wie speichere ich einen String, egal in welches Format, Hauptsache ich kann ihn wieder auslesen, ohne über einen Speicherdialog zu gehen (Dateiname name.***)? |
IniFile, TRegistry, TextFile
Zitat: |
2. Wie speichere ich in das Verzeichnis des Programms, wenn ich den Pfad nicht kenne? |
ExtractFilePath( Application.ExeName) liefret dir das Verzeichnis, in dem die Anwendung liegt.
theoneandonly - Mi 07.06.06 23:07
So, ich hab dabei jetzt folgendes Problem:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TProgram.FormClose(Sender: TObject; var Action: TCloseAction); begin sl:= TStringList.Create; try sl [1]:=inttostr(aufgaben); sl [2]:=inttostr(richtig); sl [3]:=inttostr(falsch); sl [4]:=inttostr(ngk); sl [5]:=inttostr(zeit); sl.SaveToFile(ExtractFilePath(Application.ExeName)+'\'+name+'.dat'); finally sl.Free; end; end; |
Dann krieg ich ne Fehlermeldung 'ListBox Index out of bounds' oder so.
Andreas L. - Mi 07.06.06 23:16
Hi,
erstmal
theoneandonly hat folgendes geschrieben: |
Delphi-Quelltext 1:
| sl.SaveToFile(ExtractFilePath(Application.ExeName)+'\'+name+'.dat'); |
|
Die Frage ist was du dir bei den folgenden Code gedacht hast:
Delphi-Quelltext
1: 2: 3: 4: 5:
| sl [1]:=inttostr(aufgaben); sl [2]:=inttostr(richtig); sl [3]:=inttostr(falsch); sl [4]:=inttostr(ngk); sl [5]:=inttostr(zeit); |
Sind das in den Klammern Integer-Variablen? Was soll das sl [2]? Mir ist so ein Syntax nicht bekannt und es wird auch wahrscheinlich so nicht gehen. sl.add('blubb'); ist wohl das was du suchst.
Ciao
theoneandonly - Mi 07.06.06 23:21
Hab ich auch gemerkt, habs nochmal geändert, jetzt siehts so aus und funktioniert soweit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TBruchrechentrainer.FormClose(Sender: TObject; var Action: TCloseAction); begin sl:= TStringList.Create; try sl.Add(inttostr(aufgaben)); sl.Add(inttostr(richtig)); sl.Add(inttostr(falsch)); sl.Add(inttostr(ngk)); sl.Add(inttostr(zeit)); sl.SaveToFile(ExtractFilePath(Application.ExeName)+'\'+user+'.txt'); finally sl.Free; end; end; |
Die erzeugte Datei hat z.B. diesen Inhalt:
8
1
6
1
6790
Wie les ich den wieder aus und weis den Variablen wieder ihre Werte zu?
Lannes - Mi 07.06.06 23:58
Hallo,
na, eben andersrum :wink:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| sl:= TStringList.Create; try sl.LoadFromFile(ExtractFilePath(Application.ExeName)+'\'+name+'.dat'); aufgaben := StrToInt(sL[0]); richtig := StrToInt(sL[1]); finally sl.Free; end; |
theoneandonly - Do 08.06.06 00:12
ja, danke, jetzt funzt alles.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!