![]() |
BlockRead endet mit E/A-Error 998
Moinsens!
Ich bastel mir mal wieder ein Problem ... Ich möchte eine dBase Datei in ein Array Of Byte einlesen um das später zu verarbeiten. Das mache ich z.Z. so:
Delphi-Quellcode:
Beim Blockread kommt es zu einem E/A-Error 998, den ich in der OH nirgens finde. Was mache ich falsch?
procedure Tform1.Menu_Datei_OeffnenClick(Sender: TObject);
var ProtFile : File of Byte ; ProtFileData : Array of Byte ; i : integer ; // Zählvariable begin OpenDialog.Filter := 'dBase-Dateien (*.dbf)|*.dbf'; OpenDialog.InitialDir := 'c:\' ; if OpenDialog.Execute then begin AssignFile(ProtFile, OpenDialog.FileName) ; // Dateivariable den Namen der externen Datei zuweisen FileMode := 0 ; // ReadOnly {$i-} // E/A-Prüfung deaktiviert. Fehlerabfrage mit IOResult. Reset(ProtFile) ; // Datei öffnen {$i+} // E/A-Prüfung aktiviert. Fehlerabfrage mit IOResult if IOResult <> 0 then begin Application.MessageBox('Datei konnnte nicht geöffnet werden!', 'Visuanalyse', 48) ; exit ; end else begin SetLength(ProtFileData, FileSize(ProtFile)) ; // Arraygrösse = Dateigrösse BlockRead(ProtFile, ProtFileData, FileSize(ProtFile)) ; // Blockgrösse = Dateigrösse CloseFile(ProtFile) ; Gruss Michael |
Re: BlockRead endet mit E/A-Error 998
Moin Michael,
wenn Du ein Array als Buffer verwendest, musst Du den Index des ersten Elementes angeben, ab dem der Buffer gefüllt werden soll.
Code:
So sollte es gehen.
BlockRead(ProtFile, ProtFileData[color=red][0][/color], FileSize(ProtFile)) ;
BTW: 998 = ERROR_NOACCESS = Ungültiger Speicherzugriff. |
Re: BlockRead endet mit E/A-Error 998
Moin Christian!
Schon ganz schön spät ... :wall: Danke! Wo hast Du denn den Fehlercode nachgelesen? Michael |
Re: BlockRead endet mit E/A-Error 998
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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-2025 by Thomas Breitkreuz