Einzelnen Beitrag anzeigen

Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#1

Stringgrid speichern,/laden Problem

  Alt 12. Jul 2006, 16:56
Delphi-Quellcode:
procedure speichern1.SpeichernClick(Sender: TObject);
VAR Dateiname:string;
begin
if SaveDialog1.Execute then
  begin
    Dateiname := SaveDialog1.FileName;
    SaveGrid(Stringgrid1,Dateiname);
  end;
end;

procedure SaveGrid(StringGrid1: TStringGrid; fileName: string);
var
  iRow: integer;
  sl: TStringList;
begin
  sl := TStringList.Create;
  for iRow := 0 to StringGrid1.RowCount - 1 do
    sl.Add(StringGrid1.Rows[iRow].CommaText);
  sl.SaveToFile(fileName);
  sl.Free;
end;
//-----------------------------------------------
procedure laden1.LadenClick(Sender: TObject);
VAR Dateiname : String;
begin
if OpenDialog1.Execute then
  begin
    Dateiname := OpenDialog1.FileName;
    LoadFromFile(Stringgrid1, Dateiname);
  end;
end;

procedure LoadFromFile(StringGrid1: TStringGrid; txt: TFileName);
var
  sRows, sCols: TStrings;
  i: Integer;
begin
  sRows := TStringList.Create;
  sRows.LoadFromFile(txt);
  sCols := TStringList.Create;
  sCols.CommaText := sRows[0];
  StringGrid1.ColCount := sCols.Count;
  sCols.Free;
  StringGrid1.RowCount := sRows.Count;
  for i := 0 to Pred(sRows.Count) do
    StringGrid1.Rows[i].CommaText := sRows[i];
  sRows.Free;
end;
mithilfe dieser Proceduren Speichere ich ein Stringgrid ab.
Soweit funktioniert es auch, nur wenn ich nun es dann wieder lade, um es weiter zu bearbeiten kommt bei jeder Eingabe in eine Zelle
" " ist kein gültiger Integerwert"
Woran kann das liegen?
Ich Habe mir ein Notenverwaltungsprogramm mithilfe eines Stringgrids gebaut.
Dabei wird jede Zelle des Stringgrids auf einen Inhalt geprüft, und wenn etwas drinne steht, wird dieser Wert mit eingerechnet.
Meine Frage, kann es sein, das die Laden Procedure, irgendetwas in die Leeren Zellen einfügt, was delphi dann nicht will?

PS: was müsste ich machen, um ein zweitesn Stringgrid mit in der Datei zu speichern? oder das ich dieses über die selben dialoge anspreche?
also das ich 2 Stringgrids durch einen klick speichere?
habe das momentan durch die selbe Procedure nochmal gelöst, aber dass kann es ja nicht sein.

Mfg
Noobinator
  Mit Zitat antworten Zitat