AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

problem mit Klassen-Instanzen

Ein Thema von HannsW · begonnen am 28. Feb 2010 · letzter Beitrag vom 2. Mär 2010
Antwort Antwort
HannsW

Registriert seit: 6. Jan 2010
26 Beiträge
 
#1

problem mit Klassen-Instanzen

  Alt 28. Feb 2010, 12:17
Einen schönen Sonntag,
ich habe folgenden Code
Delphi-Quellcode:
       // Stats
       tableStats := TdBaseClass.create;
       tableStats.Filepath := DataPath;
        if f_DruckTyp = 'Angebotthen begin
          tableStats.FileName := 'ANGSTAT.dbf';
          tableStats.NtxFileName := 'ANGSTAT.ntx';
       end;
       tableStats.open;



       // die Positionen
       tableAufPos := TdBaseClass.Create;
       tableAufPos.Filepath := DataPath;
       if f_DruckTyp = 'Angebotthen begin
          tableAufPos.FileName := 'ANGPOS.dbf';
          tableAufPos.NtxFileName := 'ANGPOS.NTX'
       end;
       tableAufPos.open;
Die TdBaseClass hat ein
Delphi-Quellcode:
 Private
          NtxBuf: array[1..1024] of Char;
          // usw.
Wenn ich in tableStats die erste 1024 Byte lese, erhalte ich z.B. 18 Pages zu je 1024 genannt
Schau ich mir die erste 1024 von tableAufpos im HEX-Editor an, so lese ich da 56 pages a 1024.
tableAufPos zeigt mir im Debugger ebenfalls 18 Seiten an

Die NTX-Files werden wie folgt geöffnet:
Delphi-Quellcode:

function TdBaseClass.ntxOpen : boolean;
var
  nTemp :Integer;
  nTag : integer;
  cTemp: String;

begin
     result := false;
     if ntxFileName = 'then begin
        exit;
     end;

     cTemp := f_Filepath + ntxFileName;
     AssignFile(f_theNtxFile, cTemp); { Datei ausgewählt }
     Reset(f_theNtxFile);
     ntxisOpen := true;
     ntxFileSize := FileSize(f_theNtxFile);
     // die erste Intger Lesen
     seek ( f_theNtxFile,0);
     BlockRead(f_theNtxFile, NtxBuf, f_RecordLen,f_bytesReturned);

     // notwendige Werte einlesen...
end;
Das Smiley, welches wohl am Besten zu mir derzeit paßt ist dieses
Danke für evtl Hilfe
Hanns
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#2

Re: problem mit Klassen-Instanzen

  Alt 28. Feb 2010, 18:50
Hi!

Erstmal: ich habe keine Ahnung von dBase, deswegen kann ich eventuell nicht all zu viel helfen.

Zitat von HannsW:
Wenn ich in tableStats die erste 1024 Byte lese, erhalte ich z.B. 18 Pages zu je 1024 genannt
Schau ich mir die erste 1024 von tableAufpos im HEX-Editor an, so lese ich da 56 pages a 1024.
tableAufPos zeigt mir im Debugger ebenfalls 18 Seiten an
Wie sind denn diese ersten 1024 Bytes einer NTX-Datei aufgebaut? Bzw. an welcher Stelle steht die Anzahl der Seiten?
Ist 18 der korrekte Seitenwert für tableStats oder sollte es auch hier 56 wie bei tableAufPos sein? Arbeitest du auf einem Big oder Little Endian System, sodass vielleicht die falsche Bytereihenfolge verwendet wird?

BlockRead(f_theNtxFile, NtxBuf, f_RecordLen,f_bytesReturned); Welchen Wert hat f_RecordLen? Gilt nach dem Aufruf von BlockRead (f_RecordLen = f_BytesReturned)?

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
HannsW

Registriert seit: 6. Jan 2010
26 Beiträge
 
#3

Re: problem mit Klassen-Instanzen

  Alt 1. Mär 2010, 19:20
Danke Sven für Deine Antwort.

hat sich erledigt: meine Dateien waren defekt. Mit anderen klappt es nun
Hanns
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#4

Re: problem mit Klassen-Instanzen

  Alt 2. Mär 2010, 14:23
Schön, dass sich das Problem so einfach lösen lassen konnte... aber da muss man auch erstmal drauf kommen, dass die Dateien kaputt sind

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
HannsW

Registriert seit: 6. Jan 2010
26 Beiträge
 
#5

Re: problem mit Klassen-Instanzen

  Alt 2. Mär 2010, 19:02
und trotzdem ist es merkwürdig, daß defekte Dateien bewirken können, daß der private buffer "ntxBuf" einer Instanz
von einer anderen angezeigt wird.
Egal, es läuft mit neuen Dateien
Hanns
  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 22:37 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