![]() |
problem mit Klassen-Instanzen
Einen schönen Sonntag,
ich habe folgenden Code
Delphi-Quellcode:
Die TdBaseClass hat ein
// Stats
tableStats := TdBaseClass.create; tableStats.Filepath := DataPath; if f_DruckTyp = 'Angebot' then begin tableStats.FileName := 'ANGSTAT.dbf'; tableStats.NtxFileName := 'ANGSTAT.ntx'; end; tableStats.open; // die Positionen tableAufPos := TdBaseClass.Create; tableAufPos.Filepath := DataPath; if f_DruckTyp = 'Angebot' then begin tableAufPos.FileName := 'ANGPOS.dbf'; tableAufPos.NtxFileName := 'ANGPOS.NTX' end; tableAufPos.open;
Delphi-Quellcode:
Wenn ich in tableStats die erste 1024 Byte lese, erhalte ich z.B. 18 Pages zu je 1024 genannt
Private
NtxBuf: array[1..1024] of Char; // usw. 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:
Das Smiley, welches wohl am Besten zu mir derzeit paßt ist dieses :wall: :wall: 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; Danke für evtl Hilfe Hanns |
Re: problem mit Klassen-Instanzen
Hi!
Erstmal: ich habe keine Ahnung von dBase, deswegen kann ich eventuell nicht all zu viel helfen. Zitat:
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?
Delphi-Quellcode:
Welchen Wert hat f_RecordLen? Gilt nach dem Aufruf von BlockRead (f_RecordLen = f_BytesReturned)?
BlockRead(f_theNtxFile, NtxBuf, f_RecordLen,f_bytesReturned);
Gruß, Sven |
Re: problem mit Klassen-Instanzen
Danke Sven für Deine Antwort.
hat sich erledigt: meine Dateien waren defekt. Mit anderen klappt es nun Hanns |
Re: problem mit Klassen-Instanzen
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 :gruebel:
Gruß, Sven |
Re: problem mit Klassen-Instanzen
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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 by Thomas Breitkreuz