AGB  ·  Datenschutz  ·  Impressum  







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

TMemoryStream.Read - Crash ohne Kommentar!

Ein Thema von SnuffMaster23 · begonnen am 22. Mär 2007 · letzter Beitrag vom 23. Mär 2007
Antwort Antwort
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#1

TMemoryStream.Read - Crash ohne Kommentar!

  Alt 22. Mär 2007, 16:05
Diese Zeile bereitet mir gerade Kopfschmerzen, da crasht das Programm immer ohne Fehlermeldung (ohne Debugger):
Stream1.Read(Fil, Stream1.Size); Fil ist ein string.

Mit Debugger krieg ich folgende Meldung:
Project C:\Dokumente und Einstellungen\SnuffMaster23\Eigene Dateien\Eigene Programme\Tool\Project1.exe faulted with message: 'access violation at 0x7c9478ae: write of address Ox00030ffc'. Process Stopped. Use Step or Run to continue.

In dem Stream stecken 11,4 MB, aber das dürfte der String ja leicht packen.
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: TMemoryStream.Read - Crash ohne Kommentar!

  Alt 22. Mär 2007, 16:13
Das gibt natuerlich ein heftiges Problem, da der string wahrscheinlich nicht lang genug ist um das ganze File aufzunehmen.
Vorher ein SetLength(Fil, Stream1.Size) machen und es muss Stream1.Read(PChar(Fil)^, Stream1.Size); heissen.
  Mit Zitat antworten Zitat
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#3

Re: TMemoryStream.Read - Crash ohne Kommentar!

  Alt 22. Mär 2007, 16:20
SetSize hatt ich auch schon davor, hat (allein) nichts gebracht.
Mit dem dereferenzierten Zeiger krieg ich jetzt ne ganz normale Zugriffsverletzung.

//Zugriffsverletzung kommt weiter unten
Da sollte ich wahrscheinlich auch die Zeigervariente nehmen.
Danke!!
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: TMemoryStream.Read - Crash ohne Kommentar!

  Alt 22. Mär 2007, 16:24
Delphi-Quellcode:
Stream1.Read(Fil, Stream1.Size); // FALSCH !!

//Richtig
SetLength(Fil, Stream1.Size); // genügend Speicher reservieren
Stream1.Read(Fil[1], Stream1.Size);
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: TMemoryStream.Read - Crash ohne Kommentar!

  Alt 22. Mär 2007, 16:27
Is der Stream auch mit Create erstellt worden? :>
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#6

Re: TMemoryStream.Read - Crash ohne Kommentar!

  Alt 22. Mär 2007, 16:33
Jo isser.
Es funzt mittlerweile mit der Lösung von Robert.
Sorry, hätt ich deutlicher schreiben sollen^^
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: TMemoryStream.Read - Crash ohne Kommentar!

  Alt 22. Mär 2007, 16:42
PChar(Fil)^, PChar(Fil)[0] und Fil[1] sind synonym. Man muss sich nur klarmachen wie Delphi das handhabt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: TMemoryStream.Read - Crash ohne Kommentar!

  Alt 23. Mär 2007, 01:51
... aber Fil allein, klappt bei einem solchen Aufruf grundsätzlich nicht (wenn Fil Ansi/WideString 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 19:30 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