typisierte Binärdatei kann nicht gelesen werden

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
RSO
Beiträge: 19
Registriert: Mi 9. Feb 2022, 22:43

typisierte Binärdatei kann nicht gelesen werden

Beitrag von RSO »

Ich habe vor sehr langer Zeit mit Delphi folgenden Record in einer typisierten Binären Datei
gespeichert.

Den Code habe ich mit Lazarus so nachgebaut. Leider bekomme ich keine Daten aus den vorhandenen Dateien, z.B. profil.rwx ausgelesen. Was mache ich falsch, gibt es eine Möglickeit die Daten aus den Dateien .rwx zu lesen?

Mit Delphi funktioniert das...
Mit Lazarus nicht....

Vielen Dank vorab....

Code: Alles auswählen

type
   re1 = record
    re_ca : array[0..np] of double;
    re_cw : array[0..np] of double;
    re_cm : array[0..np] of double;
    re_alfa : array[0..np] of double;
    revorg : integer;{Re-Zahl}
    azca, azcw, azalpha, azcm : integer; {Anzahl der Zeilen}
  end;

  type     {Später speichern mit -> DateiV : file of re2}
   re2 = record
    realle : array[1..ReAnz] of re1;{10 maximal}
    profilname : string[50];
    herkunft : string[50];
    alpha0_p, cmnull_p : double;
    anzReZahl66 : integer;{hier tatsächliche Re - Anzahl speichern}
  end;                      

var
  rewerte : re2;

mit Delphi habe ich das so gespeichert:

procedure TProfilDatei.speichern;
begin
 ….
    assignFile(DateiV, root1);
   rewrite(DateiV);
   close(DateiV);

    assignFile(DateiV, root1);
    {$i-}
    reset(DateiV);
    {$i+}
  if IOResult <> 0 then
  begin
   MessageDlg('Fehler bei Dateibehandlung! ',mtError,[mbok],0);
   exit;
  end;
   begin
    write(DateiV,rewerte); {rewerte global aus prof1}
    closeFile(DateiV);
   end;{if}
 end;{proz}

{Profil - Daten aus Record re2 b.z.w rewerte ***************************}
procedure TProfilDatei.laden;
begin
….....
 assignFile(DateiV, root1);             {Pfad verbinden}
 {$i-}
 reset(DateiV);                         {Datei öffnen}
 {$i+}
 if IOResult <> 0 then
  begin
   MessageDlg('Fehler bei Dateibehandlung! ',mtError,[mbok],0);
   exit;
  end;
  begin
   while not eof(DateiV) do               {bis Dateiende}
    read(DateiV,rewerte);                 {globaler Record aus prof1}
    closeFile(DateiV);                    {Datei schließen}
  end;{if}
 end;{proz}

procedure TProfilDatei.speichern;
begin
   {überschreibt alles}
   assignFile(DateiV, root1);
   rewrite(DateiV);
   close(DateiV);

    assignFile(DateiV, root1);
    {$i-}
    reset(DateiV);
    {$i+}
  if IOResult <> 0 then
  begin
   MessageDlg('Fehler bei Dateibehandlung! ',mtError,[mbok],0);
   exit;
  end;
   begin
    write(DateiV,rewerte); {rewerte global aus prof1}
    closeFile(DateiV);
   end;{if}
 end;{proz}
 
Zuletzt geändert von RSO am Mi 9. Mär 2022, 12:37, insgesamt 1-mal geändert.

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

Re: typisierte Binärdatei kann nicht gelesen werden

Beitrag von theo »

Probier mal mit

Code: Alles auswählen

{$mode delphi}
statt

Code: Alles auswählen

{$mode objfpc}
Und mach den Code in Code Tags im Forum-Editor (wie in meinem Beispiel), dann kann man ihn besser lesen.

RSO
Beiträge: 19
Registriert: Mi 9. Feb 2022, 22:43

Re: typisierte Binärdatei kann nicht gelesen werden

Beitrag von RSO »

{$mode Delphi}

habe ich so eingestellt

mache ich demnächst mit den Code Tag :wink:

Raimund

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

Re: typisierte Binärdatei kann nicht gelesen werden

Beitrag von theo »

RSO hat geschrieben:
Mi 9. Mär 2022, 10:21
{$mode Delphi}
habe ich so eingestellt
Geht's nun oder nicht?
RSO hat geschrieben:
Mi 9. Mär 2022, 10:21
mache ich demnächst mit den Code Tag :wink:
Kannst du auch nachträglich noch machen mit dem Posting oben.

RSO
Beiträge: 19
Registriert: Mi 9. Feb 2022, 22:43

Re: typisierte Binärdatei kann nicht gelesen werden

Beitrag von RSO »

Nein, ich probiere schon einige Zeit die Dateien zu lesen, aber es klappt nicht.
Warscheinlich muß ich die Codestücke mal aus dem Projekt herauslösen
und einige Varianten probieren, so wie hier von Warf beschrieben:
viewtopic.php?f=55&t=10483&p=92594&hili ... ien#p92594

Raimund

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: typisierte Binärdatei kann nicht gelesen werden

Beitrag von wp_xyz »

Wenn du die Code-Schnipsel des 1.Beitrags in eine kompilierbares Projekt übertragen hättest, das du hier im Forum hochladen kannst, dann könnte jeder Interessierte sich ohne Mühe und ohne Verständnisprobleme (z.B.: was genau ist der Fehler? wie ist DateiV deklariert?) mit dem Problem befassen, und du hättest in kurzer Zeit eine Lösung.
Zuletzt geändert von wp_xyz am Mi 9. Mär 2022, 12:47, insgesamt 1-mal geändert.

RSO
Beiträge: 19
Registriert: Mi 9. Feb 2022, 22:43

Re: typisierte Binärdatei kann nicht gelesen werden

Beitrag von RSO »

Ja, ok mache ich, dauert etwas.

Raimund

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: typisierte Binärdatei kann nicht gelesen werden

Beitrag von wp_xyz »

Ich habe mir aus deinem Code-Schnipseln ein kompilierbares Projekt zusammengeklickt und es so verändert, dass es funktioniert. Ich kann mir allerdings nicht vorstellen, dass dein Original-Code unter Delphi funktioniert hat.
Dateianhänge
untypisierte_datei.zip
(2.74 KiB) 36-mal heruntergeladen
Zuletzt geändert von wp_xyz am Mi 9. Mär 2022, 16:29, insgesamt 1-mal geändert.

RSO
Beiträge: 19
Registriert: Mi 9. Feb 2022, 22:43

Re: typisierte Binärdatei kann nicht gelesen werden

Beitrag von RSO »

Hallo wp_xyz,

vielen Dank für das Beispiel, hilft mir sehr weiter.
Ja und.... untypisiert, immer diese Hobbyprogrammierer :wink:

Ich baue es ein und werde berichten.

Raimund

Antworten