AGB  ·  Datenschutz  ·  Impressum  







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

E/A-Fehler 998 bei BlockRead :(

Ein Thema von MCQ · begonnen am 9. Dez 2005 · letzter Beitrag vom 9. Dez 2005
Antwort Antwort
MCQ

Registriert seit: 14. Jan 2004
Ort: Dessau
80 Beiträge
 
#1

E/A-Fehler 998 bei BlockRead :(

  Alt 9. Dez 2005, 18:57
Delphi-Quellcode:
function AddToArchive(archive_filename:String;InstallPath:String;FileName:String):boolean;
var fpos_start:cardinal;
    CRC:DWORD;
    buf:array[0..10000] of DWORD;
    OneChar:Char;
    fArchiv,fSource:file;
    gelesen:integer;
    i:integer;
    fName:String;
begin
// Fügt eine Datei dem Archiv hinzu
 CRC:=0;
 OneChar:=#0;
 gelesen:=0;
 AssignFile(fArchiv,archive_filename);
 AssignFile(fSource,FileName);
 reset(fArchiv);
 reset(fSource);
 fpos_start:=filesize(fArchiv);
 seek(fArchiv,fpos_start);
 FName:=InstallPath+ExtractFileName(FileName);
 BlockWrite(fArchiv,CRC,SizeOf(CRC));
 BlockWrite(fArchiv,FName,length(FName));
 BlockWrite(fArchiv,OneChar,SizeOf(OneChar));
 While Not eof(fSource) do
  begin
   BlockRead(fSource,Buf,10000,gelesen);
   BlockWrite(fArchiv,Buf,gelesen);
   For i := 0 to gelesen do
    begin
     CRC:=CRC xor Buf[i];
    end;
  end;
 CloseFile(fSource);
 CloseFile(fArchiv);
end;
Mit dieser Prozedure hab ich angefangen zu versuchen eine Datei in ein eigenes Archiv hinzuzufügen, allerdings stüzt das Programm in der BlockRead-Zeile mit einem E/A-Fehler 998 ab.
Ich konnte leider bisher nichts finden, deshalb hoffe ich hier eine antwort auf die Frage zu finden. Was bedeutet dieser e/A-Fehler 998 und wie kann ich ihn vermeiden?
  Mit Zitat antworten Zitat
MCQ

Registriert seit: 14. Jan 2004
Ort: Dessau
80 Beiträge
 
#2

Re: E/A-Fehler 998 bei BlockRead :(

  Alt 9. Dez 2005, 19:07
Hab hier im forum nochmal mit anderen Suchbegriffen gessucht und habe den hinweis gefunden in der blockeadzeile das buf zu buf[0] zu ändern. Das hat an meine Prblem allerdings nichts geändert
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#3

Re: E/A-Fehler 998 bei BlockRead :(

  Alt 9. Dez 2005, 19:12
Hi,

was der Fehler 998 bedeutet, weiß ich auch nicht aus dem Hut. Allerdings fällt mir auf, dass bei Reset(fSource) die Blockgröße nicht angegeben wird. Der Standardwert für den optionalen Parameter RecSize ist 128 (lt. Delphi-Hilfe). Du ließt also, bei entsprechender Dateigröße, 1280000 Bytes in ein Array mit 10001 Bytes Speicherplatz. Vieleicht ist der Fehler mit Reset(fSource, 1) bereits zu beheben?

Gruß
tomsel
  Mit Zitat antworten Zitat
MCQ

Registriert seit: 14. Jan 2004
Ort: Dessau
80 Beiträge
 
#4

Re: E/A-Fehler 998 bei BlockRead :(

  Alt 9. Dez 2005, 19:15
jetzt klappt ... thx4hlp
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: E/A-Fehler 998 bei BlockRead :(

  Alt 9. Dez 2005, 19:19
Da die Fehlernummern der von Windows WinAPI entsprechen, lässt sich mit ShowMessage(SysErrorMessage(998)); leicht rausfinden, das es sich um den Fehler "Unzulässiger Zugriff auf einen Speicherbereich" handelt. Daher ist die vorher gut dargelegte Fehlerursache recht wahrscheinlich.

/EDIT: Der rote Kasten wird schmerzlich vermisst...
  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 08:56 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