Einlesen von Turbo Pascal Dateien

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
zaller
Beiträge: 2
Registriert: So 20. Sep 2009, 20:21

Einlesen von Turbo Pascal Dateien

Beitrag von zaller »

Hallo,
nachdem ich mit Turbo Pascal an die Hauptspeichergrenze gestoßen bin, habe ich nun versucht mein 16 Jahres alte Turbo Pascal 7.0 Programm unter Freepascal zu kompilieren, was mir nach einigen Umstellungen auch gelungen ist. Es startet auch, allerdings habe ich ein gravierendes Probleme:

Beim einlesen von Dateien, die mit Turbo Pascal 7.0 geschrieben wurden (Record mit Arrays von String[x] usw.) zeigt er andere Daten an als in Turob Pascal. Hat damit schon jemand Erfahrungen gemacht und kann mir einen Tipp geben. (Siehe auch Anhang oben aus FreePascal unten Turbo Pascal)

Hier die Struktur, die ich versuche einzulesen:

Code: Alles auswählen

gi_max=50;
 
Mand_Arbeitszeit_typ = RECORD 
      saldo:STRING[8];
      Datum:ARRAY[1..gi_max] OF STRING[10]; (*Datum*)
      Mitarbeiter:ARRAY[1..gi_max] OF STRING[3]; 
      Taetigkeit:ARRAY[1..gi_max] OF STRING[3];
      Gebiet:ARRAY[1..gi_max] OF STRING[3];
      VZ:ARRAY[1..gi_max] OF STRING[4];
      Zeit:ARRAY[1..gi_max] OF STRING[6];
      Multiplikator:ARRAY[1..gi_max] OF STRING[4];(*Zuschlagsatz*)
      Stundensatz:ARRAY[1..gi_max] OF STRING[6];(*Stundensatz des Mitarbeiters*)
      kosten:ARRAY[1..gi_max] OF STRING[8];(*Gesamtkosten, die entstanden sind*)
      c_keine_auswertung:ARRAY[1..gi_max]OF CHAR; 
     END;
Einlesen mit folgenden Schnipsel

Code: Alles auswählen

ASSIGN(ldat_aze_mand,ls_datei);
  RESET(ldat_aze_mand);
  READ(ldat_aze_mand,pRec_AzeMand);
 
  CLOSE(ldat_aze_mand);


Vielen Dank schon im Voraus.

Schönen Abend
Roland
Dateianhänge
Dateieinlesen_Vergleich.JPG
Zuletzt geändert von zaller am Di 22. Sep 2009, 22:31, insgesamt 2-mal geändert.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Einlesen von Turbo Pascal Dateien

Beitrag von Scotty »

prec_aze_gesamt.c_keine_... Auch mit dieser Anweisung bricht das Programm während der Laufzeit ab.
Das kann ich dem Compiler nachvollziehen... :mrgreen:
Im Ernst: Wenn die Größen der einfachen Typen (-> sizeof) übereinstimmen, dann könnte es an der Blockgröße liegen, mit der Records abgelegt werden (-> packed).

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Einlesen von Turbo Pascal Dateien

Beitrag von theo »

zaller hat geschrieben: 2. Außerdem habe ein Problem bei der Zuweisung von CHAR-Werten (c_keine_auswertung)
prec_aze_gesamt.c_keine_auswertung[li_i]:=' ';
Auch mit dieser Anweisung bricht das Programm während der Laufzeit ab.
Kann ich nicht bestätigen.

zaller
Beiträge: 2
Registriert: So 20. Sep 2009, 20:21

Re: Einlesen von Turbo Pascal Dateien

Beitrag von zaller »

Hallo,

ich weiß, dass der Code ziemlich grausam ist, war leider vor 16 Jahre nicht viel schlauer. Seit dem läuft das Programm relativ problemlos.

Das mit der Zuweisung zu dem CHAR-Feld war ein Programmierfehler von mir. Ich wundere mich nur weshalb Turbo Pascal hier bisher nie gemeckert hat, ist wohl deutlich fehlertoleranter als FreePascal.

Das Problem mit dem Dateizugriff habe ich allerdings weiterhin. Hat das schon einmal jemand versucht solche ähnliche Dateien einzulesen in FreePascal.

Auch über einen Hinweis: das geht so nicht wäre ich schon dankbar.

Viele Grüße und Danke
Roland

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Einlesen von Turbo Pascal Dateien

Beitrag von theo »

zaller hat geschrieben:Auch über einen Hinweis: das geht so nicht wäre ich schon dankbar.
Du müsstest halt wissen, wie's damals genau geschrieben wurde.
Hast du's denn nun mit "packed" getestet?
http://www.delphibasics.co.uk/RTL.asp?Name=Packed" onclick="window.open(this.href);return false;

Antworten