AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie speichere ich einen String am besten?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie speichere ich einen String am besten?

Ein Thema von Salazriel · begonnen am 23. Feb 2010 · letzter Beitrag vom 26. Feb 2010
 
Salazriel

Registriert seit: 13. Feb 2010
33 Beiträge
 
#1

Wie speichere ich einen String am besten?

  Alt 23. Feb 2010, 19:45
Ich möchte dem Nutzer in meinem Sudoku-Programm die Möglichkeit geben, Sudokus zu speichern, z.B. damit man es nicht an einem Stück machen muss. Selbstverständlich soll es auch möglich sein, ein Sudoku zu laden.
Der Ansatz ist dabei der, dass das Sudoku in einem String gespeichert wird, die String[1] ist die Zahl links oben, String[10] die Zahl darunter.
Nach dem ich verschiedene Möglichkeiten abgewogen hat (sprich: entweder Ini oder Savedialog, aber ich will, dass der Nutzer so komfortabel wie möglich speichern und laden kann) möchte ich TSaveDialog und TLoadDialog benutzen. Auf Knopfdruck (nur Entwicklungsphase, packe ich später bei der Save-Prozedur rein) wird das Sudoku zeichenweise in eine Zeile eines TMemos gepackt, mögliche Zeichen sind halt '1'..'9' und ' '. In der Save-Prozedur soll diese Zeile gespeichert werden, in der Load-Prozedur soll aus der Datei der String ans TMemo geaddet werden. Dazu speichere ich eine TStringList als .txt-Datei.
Die TMemo dient dabei nur als visuelle Überprüfung, später reduziere ich das ganze auf TStringList.
Try und finally kommen später noch.


Delphi-Quellcode:
procedure TForm1.Speichern(Sender: TObject);
var Sudoku:TStringList;
begin
Sudoku:=TStringList.create;
SaveDialog1.Filter:='*.txt|*.TXT';
if SaveDialog1.execute
then
  begin
  Sudoku[0]:=Memo1.lines[0];
  Sudoku.SaveToFile(SaveDialog1.FileName);
  end;
Sudoku.Free;
end;



procedure TForm1.Sudokuladen1Click(Sender: TObject);
var Sudoku:TStringList;
begin
Sudoku:=TStringList.create;
OpenDialog1.Filter:='*.txt|*.TXT';
if OpenDialog1.execute
then
  Sudoku.LoadFromFile(OpenDialog1.FileName);
  Memo1.Lines.add(Sudoku[0]);
  end;
Sudoku.Free;
end;

Wenn ich aber versuche, ein Sudoku zu speichern, gibt er eine Fehlermeldung "Out of bound " aus.
Was mache ich falsch?

PS: Diese .txt-Datei ist ja sehr manipulationsanfällig (würde dem Nutzer nichts bringen, aber...), kann man das auch in einem Format schreiben, auf das der Nutzer nicht per Explorer öffnen kann?

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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