/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Access violation - ved memory stream
Fra : Ulrik Vadstrup


Dato : 26-08-01 21:23

Hvorfor/ hvordan kan følgende linie (Makeret med *) give access violation

procedure TcymPak.ItemToFile(Index: Integer; fName: string);
var
FS: TFileStream;
begin
FS := TFileStream.Create(fName, fmCreate);
try
* fStream.Position := fDirectory.Items[Index].OffSet; *
FS.CopyFrom(fStream, fDirectory.Items[Index].Size);
finally
FS.Free;
end;
end;

Den kan jeg ikke lige lure...nogen der kan hjælpe ?
--
Med venlig hilsen
Ulrik Vadstrup



 
 
Niels (G4S) (26-08-2001)
Kommentar
Fra : Niels (G4S)


Dato : 26-08-01 23:20

>Hvorfor/ hvordan kan følgende linie (Makeret med *) give access violation
>
>procedure TcymPak.ItemToFile(Index: Integer; fName: string);
>var
> FS: TFileStream;
>begin
> FS := TFileStream.Create(fName, fmCreate);
> try
>* fStream.Position := fDirectory.Items[Index].OffSet; *
> FS.CopyFrom(fStream, fDirectory.Items[Index].Size);
> finally
> FS.Free;
> end;
>end;

fStream har ikke nogen data, kan det ikke være problemet? Prøv at
bytte om på de to linier.

--
/` g4s : gee-four-s aka. Niels Martin Hansen
\/ _ mail : g4s [at] mail [dot] dee-kay
/__| icq : 50 18 73 23
_| this is the G4S .sig

Bent Pedersen (30-08-2001)
Kommentar
Fra : Bent Pedersen


Dato : 30-08-01 14:30

In article <9mbln7$2t09$1@news.cybercity.dk>, Ulrik Vadstrup says...
>
>Hvorfor/ hvordan kan følgende linie (Makeret med *) give access violation
>
>* fStream.Position := fDirectory.Items[Index].OffSet; *
> FS.CopyFrom(fStream, fDirectory.Items[Index].Size);

Har du created din fStream?

/Bent



"Christian Iversen [~ (30-08-2001)
Kommentar
Fra : "Christian Iversen [~


Dato : 30-08-01 19:25

> Hvorfor/ hvordan kan følgende linie (Makeret med *) give access violation
>
> procedure TcymPak.ItemToFile(Index: Integer; fName: string);
> var
> FS: TFileStream;
> begin
> FS := TFileStream.Create(fName, fmCreate);
> try
> * fStream.Position := fDirectory.Items[Index].OffSet; *
> FS.CopyFrom(fStream, fDirectory.Items[Index].Size);
> finally
> FS.Free;
> end;
> end;
>
> Den kan jeg ikke lige lure...nogen der kan hjælpe ?

Ja, jeg er synsk, og derfor vil jeg godt sætte min ære på at dit Index er
invalid!

Prøv at breake den der hvor der i forvejen er markeret med *. Check så
at dit index er indenfor gyldig range.

/Flawless







R. A. Larsen (30-08-2001)
Kommentar
Fra : R. A. Larsen


Dato : 30-08-01 19:57

"Ulrik Vadstrup" <vadstrup@post12.tele.dk> wrote:
>
> Hvorfor/ hvordan kan følgende linie (Makeret med *) give access violation
>
> procedure TcymPak.ItemToFile(Index: Integer; fName: string);
> var
> FS: TFileStream;
> begin
> FS := TFileStream.Create(fName, fmCreate);
> try
> * fStream.Position := fDirectory.Items[Index].OffSet; *

Hvilken værdi har Index?
Hvilken værdi har fDirectory.Count?

Husk at X.Items[] i Delphi normalt (i hvert fald i RTL/VCL) er nummereret
fra 0 til (Count-1).

MVH, René
--
Using Virtual Access
http://www.vamail.com


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste