![]() |
Erster Versuch - Problem mit Speichern und auslesen
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:
globale Sachen
type lagerdaten = record
lagerplatz: integer; lz: boolean; id:integer; name: string[30]; datum: string[10]; zeit: string[5]; inhalt: string[250]; end;
Delphi-Quellcode:
var datei: file of lagerdaten;
daten: array[1..9,1..7] of string; buffer: array[0..8] of lagerdaten;
Delphi-Quellcode:
Ich hab sicher absoluten Scheiß gemacht, also beim Lachen bitte nich auf den Monitor knallen
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; |
Re: Erster Versuch - Problem mit Speichern und auslesen
Hi,
zuerst fällt auf:
Delphi-Quellcode:
schreiben nach schliessen!?
CloseFile(datei);
for i:=0 to 8 do write(datei, buffer[i]); //Buffer in Datei schreiben end; MJ |
Re: Erster Versuch - Problem mit Speichern und auslesen
OK, das ist schon ein Produkt eines Versuches, ohne funktioniert es auch nicht. Ich hab das schließen reingenommen weil ich das in einem Testprogramm so ähnlich gefunden hatte...
|
Re: Erster Versuch - Problem mit Speichern und auslesen
.. und i+1 = 10 bei einem array[0..8]
Delphi-Quellcode:
Der Compiler mosert nicht? :gruebel:
...
buffer: array[0..8] of lagerdaten; ... with StringGrid1 do //Buffer in Tabelle schreiben for i:=1 to 9 do begin StringGrid1.Cells[6,i]:=buffer[(i+1)].inhalt; MJ |
Re: Erster Versuch - Problem mit Speichern und auslesen
Nö, der Compiler mosert nicht, aber auch daran lags nich, kommt immernoch nur Müll. Um den Müll mal zu erklären: Kopfzeile ist da, aber Spalte 1 und 3 in denen eigentlich was stehen sollte steht immer nur eine 0. Zudem: Wenn ich in die Bufferschleife was Eintrage, was dann eigentlich eine weitere gefüllte Spalte als Resultat haben sollte bleibt diese jedoch trotzdem leer.
|
Re: Erster Versuch - Problem mit Speichern und auslesen
ok, danke hat sich erledigt, das Programm fkt., hab nur die Datei nich gelöscht, so dass er keine neue erstellt hat sonder weiter auf die Fehlerhaft zugegriffen hat...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz