Einzelnen Beitrag anzeigen

Salazriel

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

Re: Wie speichere ich einen String am besten?

  Alt 24. Feb 2010, 15:41
Erstmal vielen Dank für die große Resonanz.

@haentschman
Den String erstelle ich mit
Delphi-Quellcode:
Memo1.clear;
Datei:='';
For Zeile:=0 to 8 do
  For Spalte:=0 to 8 do
    Datei:=Datei+StringGrid1.cells[Spalte,Zeile]; // in OnCreate wurde jedes Feld mit ' ' belegt
Memo1.Lines.Add(Datei);
und verarbeiten mit
Delphi-Quellcode:
For i:=1 to 81 do
  begin
  Spalte:=(i-1) mod 9;
  Zeile:=(i-1) div 9; // i-1 da Zellen/Spalten von 0..8
  StringGrid1.Cells[Spalte,Zeile]:=Datei[i];
  end;
Ich verstehe jetzt nicht was daran so schwer sein soll? Oder habe ich einen Denkfehler, der das Problem unzulässig vereinfacht?


@p80286

Das ist ja das Problem mit dem Anpassen des Filters.
Delphi-Quellcode:
procedure TForm1.Speichern(Sender: TObject);
var Sudoku:TStringList;
begin
Sudoku:=TStringList.create;
SaveDialog1.Filter:='*.sud|*.Sud';
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:='*.sud|*.SUD';
if OpenDialog1.execute
then
  Sudoku.LoadFromFile(OpenDialog1.FileName);
  Memo1.Lines.add(Sudoku[0]);
  end;
Sudoku.Free;
end;
Im OpenDialog kann ich dann nur *.sud als Filter auswählen. Dennoch zeigt er keinerlei Anstalten mir dann die gespeicherte(n) Dateie(n) anzuzeigen. Und über den Explorer mit Rechtsklick>Eigenschaften zeigt er mir als Format nur "Datei" an.
Ich möchte aber, dass er mir im OpenDialog sämtliche *.sud-Dateien anzeigt. Aber irgendwie ignoriert er den Filter beim Speichern.
So funktioniert es auf alle Fälle nicht.
Und wenn ich als Filter *.txt eingebe, speichert er das auch im "Datei"-Format. Im Explorer zeigt er es mir aber nicht als WordPad-Datei oder so an. Sowohl .txt als auch .sud kann man mit Rechtsklick>Öffnen>Programm aus Liste auswählen>Wordpad(oder Editor) öffnen.

@Die Muhkuh
Aber wenn er "ausversehen" mal darin rumspielt, verändert er damit die gespeicherten Sudokus. Sind die Sudokus verändert, ist das nicht mehr umkehrbar und der Nutzer müsste sie löschen. Das möchte ich ihm nicht antun
  Mit Zitat antworten Zitat