AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Erster Versuch - Problem mit Speichern und auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Erster Versuch - Problem mit Speichern und auslesen

Ein Thema von trypanosom · begonnen am 19. Okt 2006 · letzter Beitrag vom 19. Okt 2006
Antwort Antwort
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
Maja Jessica

Registriert seit: 16. Apr 2005
Ort: Dortmund
95 Beiträge
 
Delphi 4 Standard
 
#2

Re: Erster Versuch - Problem mit Speichern und auslesen

  Alt 19. Okt 2006, 17:17
Hi,

zuerst fällt auf:
Delphi-Quellcode:
CloseFile(datei);
  for i:=0 to 8 do write(datei, buffer[i]); //Buffer in Datei schreiben
  end;
schreiben nach schliessen!?

MJ
  Mit Zitat antworten Zitat
trypanosom

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

Re: Erster Versuch - Problem mit Speichern und auslesen

  Alt 19. Okt 2006, 17:21
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...
  Mit Zitat antworten Zitat
Maja Jessica

Registriert seit: 16. Apr 2005
Ort: Dortmund
95 Beiträge
 
Delphi 4 Standard
 
#4

Re: Erster Versuch - Problem mit Speichern und auslesen

  Alt 19. Okt 2006, 17:24
.. und i+1 = 10 bei einem array[0..8]

Delphi-Quellcode:
...
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;
Der Compiler mosert nicht?

MJ
  Mit Zitat antworten Zitat
trypanosom

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

Re: Erster Versuch - Problem mit Speichern und auslesen

  Alt 19. Okt 2006, 17:34
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.
  Mit Zitat antworten Zitat
trypanosom

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

Re: Erster Versuch - Problem mit Speichern und auslesen

  Alt 19. Okt 2006, 18:18
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...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz