AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein untypisierte dateien - warum eine zugriffsverletzung(simpel)
Thema durchsuchen
Ansicht
Themen-Optionen

untypisierte dateien - warum eine zugriffsverletzung(simpel)

Ein Thema von KoRn117 · begonnen am 9. Apr 2004 · letzter Beitrag vom 16. Apr 2004
Antwort Antwort
KoRn117

Registriert seit: 24. Sep 2003
Ort: Hessen
50 Beiträge
 
Delphi 7 Enterprise
 
#1

untypisierte dateien - warum eine zugriffsverletzung(simpel)

  Alt 9. Apr 2004, 16:18
hi,

das was ich gerade mal ausprobieren wollte ist eine untypisierte datei zu lesen...

Das problem:
^^^^^^^^^^^^

ich kann sie lesen und auch wieder schließen, aber ich bekomme trotzdem eine speicherverletzungsfehlerkladeradatsch...

könnt ihr mal bitte gucken, woran es liegen könnte?

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var datei : file;
    Buf: array[0..4] of Char;
    countt :integer;
    tmp : string;
    i : integer;
begin

assignFile(datei,'asd.wav');
reset(datei);

BlockRead(datei,buf,sizeof(buf),countt);

tmp:='';
for i:=0 to 3 do
  begin
  tmp:=tmp+buf[i];
  end;

showmessage(inttostr(countt));
showmessage(tmp);

closefile(datei);

end;
vielen dank

ach und ich hab delphi in der schrittweisen compelierung gestartet und er hat erst nach dem letzten oder beim letzten end gemeckert
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: untypisierte dateien - warum eine zugriffsverletzung(sim

  Alt 9. Apr 2004, 16:26
Hi KoRn117,

versuch es so:

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var datei : file;
    Buf: array[0..3] of Char; <- 3 und nicht 4
    countt :integer;
    tmp : string;
    i : integer;
begin

assignFile(datei,'asd.wav');
reset(datei);

BlockRead(datei,buf,sizeof(buf),countt);

tmp:='';
for i:=0 to 3 do
  begin
  tmp:=tmp+buf[i];
  end;

showmessage(inttostr(countt));
showmessage(tmp);

closefile(datei);

end;
  Mit Zitat antworten Zitat
KoRn117

Registriert seit: 24. Sep 2003
Ort: Hessen
50 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: untypisierte dateien - warum eine zugriffsverletzung(sim

  Alt 9. Apr 2004, 16:32
ist mir auch gerade aufgefallen

aber die fehlermeldung kommt trotzdem immer noch


...
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#4

Re: untypisierte dateien - warum eine zugriffsverletzung(sim

  Alt 9. Apr 2004, 16:32
Hilfe:
Wird AmtTransferred nicht angegeben, tritt ein E/A-Fehler auf, wenn die Anzahl der gelesenen Datenblöcke nicht mit Count identisch ist. Wenn die Compiler-Direktive $I+ aktiv ist, lösen Fehler eine EInOutError-Exception aus. und was sagt uns das (kein Plan *g*)

Edit:
procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]);
Power is nothing without TControl
  Mit Zitat antworten Zitat
KoRn117

Registriert seit: 24. Sep 2003
Ort: Hessen
50 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: untypisierte dateien - warum eine zugriffsverletzung(sim

  Alt 9. Apr 2004, 16:41
ach schon gut...es lag an was anderen...

ich musste bei dem befehl "reset" noch einen weiteren parameter übergeben, der delphi sagt, dass er nur ein byte lesen soll

ciao

trotzdem danke hboy & altermann

  Mit Zitat antworten Zitat
KoRn117

Registriert seit: 24. Sep 2003
Ort: Hessen
50 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: untypisierte dateien - warum eine zugriffsverletzung(sim

  Alt 9. Apr 2004, 16:44
ich interpretiere das so (@hboy):

count ist das was mitzählt wenn er ausließt und ist das nicht genauso groß wie du ihm gesagt hast was er auslesen soll - meckert er rum.

beispiel:

datei ist "10" groß

ich sag ihm lies "15"

AmtTransferred meldet eine differenz



...so oder so ähnlich wird das schon sein


ciao
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#7

Re: untypisierte dateien - warum eine zugriffsverletzung(sim

  Alt 9. Apr 2004, 16:46
*irre* normal ( also bei copy oder stream.readbuffer ) is count eigentlich die länge des zu lesenden Datenblocks.... sehr verwirrend... naja..
Power is nothing without TControl
  Mit Zitat antworten Zitat
KoRn117

Registriert seit: 24. Sep 2003
Ort: Hessen
50 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: untypisierte dateien - warum eine zugriffsverletzung(sim

  Alt 9. Apr 2004, 17:05
ist es auch, ich hab mich mal wieder verschrieben

es geht um die differenz zwischen count und dem letzten parameter

count gibt auch hier an wieviel gelesen werden soll...ich hab nur etwas komische variablen bezeichnungen


BlockRead(datei,buf,sizeof(buf),countt);

sizeof(buf) -> das ist die anzahl die er lesen soll (count)
countt -> bei mir die komische vergleichsvariable die angibt, ob er alles lesen konnte
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 30. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#9

Re: untypisierte dateien - warum eine zugriffsverletzung(sim

  Alt 16. Apr 2004, 17:01
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var datei : file;
    Buf: array[0..3] of Char; <- 3 und nicht 4
    countt :integer;
    tmp : string;
    i : integer;
begin

assignFile(datei,'asd.wav');
// evtl. Filemode setzen
Filemode:=fmopenread;
reset(datei,1); // hier muss 1 stehen, da recordsize standardmäßig auf 128 bytes steht

BlockRead(datei,buf,sizeof(buf),countt);

tmp:='';
for i:=0 to 3 do
  begin
  tmp:=tmp+buf[i];
  end;

showmessage(inttostr(countt));
showmessage(tmp);

closefile(datei);

end;
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  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 16:59 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