Delphi-Speichern->Zeile zuviel

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Horschtele, 28. März 2008 .

Schlagworte:
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 28. März 2008
    Code:
     
    TYPE
     Datentype=record
     fun:string[20];
     a:string[20];
     b:string[20];
     c:string[20];
     d:string[20];
     end;
    
     VAR
     daten:file of datentype;
     datenzwischen: datentype;
     pfad:string;
    {$R *.dfm}
    
    [B]procedure Darstellen;[/B]
    var
    i:integer;
    begin
    with form1.stringgrid1 do
     begin
     rowcount:=2;
     for i:=1 to filesize(daten)-1 do
     begin
     seek(daten,i);
     read(daten,datenzwischen);
     cells[0,i]:=(datenzwischen.fun);
     cells[1,i]:=(datenzwischen.a);
     cells[2,i]:=(datenzwischen.b);
     cells[3,i]:=(datenzwischen.c);
     cells[4,i]:=(datenzwischen.d);
     rowcount:=rowcount+1;
     end;
     end;
    end;
    
    [B]procedure TForm1.Button7Click(Sender: TObject);//öffnen[/B]
    begin
    form1.button6.Visible:=true;
    if form1.OpenDialog1.execute then
     begin
     pfad:=form1.OpenDialog1.FileName;
     form1.Caption:=pfad;
     assignfile(daten,pfad);
     reset(daten);
     darstellen;
     closefile(daten);
     form1.StringGrid1.RowCount:=form1.StringGrid1.RowCount;
     end;
    end;
    
    [B]procedure TForm1.Button6Click(Sender: TObject);//speichern[/B]
    var
    j:integer;
    begin
    assignfile(daten,pfad);
    reset(daten);
    
    for j:=1 to form1.stringgrid1.rowcount-1 do
     begin
     datenzwischen.fun:=form1.StringGrid1.cells[0,j+1];
     datenzwischen.a:=form1.StringGrid1.cells[1,j+1];
     datenzwischen.b:=form1.StringGrid1.cells[2,j+1];
     datenzwischen.c:=form1.StringGrid1.cells[3,j+1];
     datenzwischen.d:=form1.StringGrid1.cells[4,j+1];
     seek(daten,j+1);
     write(daten,datenzwischen);
    
     end;
    
    closefile(daten);
    end;
    
    [B]procedure TForm1.Button5Click(Sender: TObject);//speichern in[/B]
    Var
    i:integer;
    begin
    if form1.savedialog1.Execute then
     begin
     Pfad:=form1.SaveDialog1.FileName;
     form1.Caption:=pfad;
     assignfile(daten,pfad);
     rewrite(daten);
     seek(daten,1);
     for i:=1 to form1.StringGrid1.RowCount-1 do
     begin
     with form1.StringGrid1 do
     begin
     datenzwischen.fun:=cells[0,i];
     datenzwischen.a:=cells[1,i];
     datenzwischen.b:=cells[2,i];
     datenzwischen.c:=cells[3,i];
     datenzwischen.d:=cells[4,i];
     write(daten,datenzwischen);
     end;
     end;
     closefile(daten);
     end;
    
    form1.button6.Visible:=true;
    end;

    Folgendes Problem: wenn ich die Öffnen-Prozedur ausführe, dann steht zwar in der Tabelle das was in der Datei gespeichert war, er hängt unten aber noch überflüssiger weise ne Leerzeile dran. Was tun? ?(
    Warscheinlich ist ein Fehler in der Speichern (in) Procedure, aber welcher? Es kommt (Vermutung) eine Leerzeile durch die Speichern-Proz und eine durch die SpeichernIn-Proz.

    Hoffe es kann mir jemand helfen, BW is klar...
     

  2. Anzeige
    Heute: Deals & Sale mit stark reduzierten Angeboten finden.
  3. #2 28. März 2008
    AW: Delphi-Speichern->Zeile zuviel

    wenn du eine einfache lösung haben willst ermittle doch mit length die länge der daten und lösch einfach das letzte ist zwar keine saubere lösung aber sollte eigentlich gehen.
     
  4. #3 28. März 2008
    AW: Delphi-Speichern->Zeile zuviel

    danke schön ich glaube so gehts, wenn aber noch wer ne andere Lösung kennt, bitte sagen...
     

  5. Videos zum Thema
Die Seite wird geladen...