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