AGB  ·  Datenschutz  ·  Impressum  







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

BlockRead endet mit E/A-Error 998

Ein Thema von glunzl · begonnen am 4. Apr 2004 · letzter Beitrag vom 4. Apr 2004
Antwort Antwort
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#1

BlockRead endet mit E/A-Error 998

  Alt 4. Apr 2004, 02:05
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:
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) ;
Beim Blockread kommt es zu einem E/A-Error 998, den ich in der OH nirgens finde. Was mache ich falsch?

Gruss
Michael
Michael
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: BlockRead endet mit E/A-Error 998

  Alt 4. Apr 2004, 02:37
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:
BlockRead(ProtFile, ProtFileData[color=red][0][/color], FileSize(ProtFile)) ;
So sollte es gehen.

BTW: 998 = ERROR_NOACCESS = Ungültiger Speicherzugriff.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#3

Re: BlockRead endet mit E/A-Error 998

  Alt 4. Apr 2004, 03:00
Moin Christian!

Schon ganz schön spät ... Danke!

Wo hast Du denn den Fehlercode nachgelesen?

Michael
Michael
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: BlockRead endet mit E/A-Error 998

  Alt 4. Apr 2004, 12:12
Moin Michael,

den Fehlercode hab' ich im PSDK nachgeschlagen unter Error Codes [Win32].
Im MSDN kann man das auch online tun.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 00:16 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