Einzelnen Beitrag anzeigen

trypanosom

Registriert seit: 19. Okt 2006
6 Beiträge
 
Delphi 7 Personal
 
#1

Erster Versuch - Problem mit Speichern und auslesen

  Alt 19. Okt 2006, 17:10
Hallo,

Ich bin Delphineuling und habe mich für ein Projekt an typisierte Dateien herangewagt, es ist jedoch nicht viel draus geworden. Es ging darum für 9 Lagerplätze (Es soll ein Programm zum externen ansteuern über USB werden) die Lagerbelegung zu speichern. Im ersten Schritt soll wenn nicht vorhanden eine Datei erstellt und mit Leereingaben gefüllt, gespeichert, anschließend ausgelsen und in eine StingGrid eingetragen werden, in der Tabelle steht aber nur Schrott, ich weiß aber nicht warum. Kann jemand mal den Quelltext durchschauen ob ihm was auffällt??

Delphi-Quellcode:
type lagerdaten = record
       lagerplatz: integer;
       lz: boolean;
       id:integer;
       name: string[30];
       datum: string[10];
       zeit: string[5];
       inhalt: string[250];
    end;
globale Sachen
Delphi-Quellcode:
var datei: file of lagerdaten;
    daten: array[1..9,1..7] of string;
    buffer: array[0..8] of lagerdaten;
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
  AssignFile(datei,'lager.log');
  if FileExists('lager.log') then ReSet(datei)
  else
  begin
  ReWrite(datei); //Neue Datei erzeugen
  For i:=0 to 8 do //Buffer füllen
  begin
  buffer[i].lagerplatz:=(i+1);
  buffer[i].lz:=false;
  buffer[i].id:=-1;
  buffer[i].name:='';
  buffer[i].datum:='';
  buffer[i].zeit:='';
  buffer[i].inhalt:='';
  end;
  CloseFile(datei);
  for i:=0 to 8 do write(datei, buffer[i]); //Buffer in Datei schreiben
  end;
  Seek(datei,0);
  for i:=0 to 8 do read(datei, buffer[i]); //Datei auslesen&in Buffer schreiben

  StringGrid1.ColCount:=7;
  StringGrid1.RowCount:=10;
  StringGrid1.Cells[0,0]:='Lagerplatz'; //Kopfzeile füllen
  StringGrid1.Cells[1,0]:='belegt';
  StringGrid1.Cells[2,0]:='Container';
  StringGrid1.Cells[3,0]:='Name';
  StringGrid1.Cells[4,0]:='Datum';
  StringGrid1.Cells[5,0]:='Uhrzeit';
  StringGrid1.Cells[6,0]:='Inhalt';

  with StringGrid1 do //Buffer in Tabelle schreiben
  for i:=1 to 9 do
  begin
  StringGrid1.Cells[0,i]:=inttostr(buffer[(i+1)].lagerplatz);
  StringGrid1.Cells[1,i]:='';
  StringGrid1.Cells[2,i]:=inttostr(buffer[(i+1)].id);
  StringGrid1.Cells[3,i]:=buffer[(i+1)].name;
  StringGrid1.Cells[4,i]:=buffer[(i+1)].datum;
  StringGrid1.Cells[5,i]:=buffer[(i+1)].zeit;
  StringGrid1.Cells[6,i]:=buffer[(i+1)].inhalt;
  end;
end;
Ich hab sicher absoluten Scheiß gemacht, also beim Lachen bitte nich auf den Monitor knallen
  Mit Zitat antworten Zitat