![]() |
EReadError: Stream-Read-Fehler
Hi Leute, :)
ich lade in einer Schleife Bitmaps in ein Bitmap-Array. In dieser Schleife tritt dann der Stream-Fehler auf, die Datei ist immer die gleiche, existiert aber garnicht.
Code:
TexPic ist ein Array of TBitmap
for nLauf := tStart to tEnd do
begin TexPic[nLauf] := TBitmap.Create(); if (FileExists(TexPath[nLauf])) then TexPic[nLauf].LoadFromFile(TexPath[nLauf]) else TexPic[nLauf].LoadFromFile(sGUIDir + sMissing); end; TexPath enthält alles Texturpfade tStart,tEnd,nLauf sind vom Typ, TTexture Ich gehe für jede Textur mit dem zugehörigen Pfad durch, ob sie existiert. Wenn ja wird sie geladen, wenn nicht eine andere Datei. Doch die Textur für fehlende Bilder, lade ich vorher schon öfter... Was kann das sein? mfg Johannes |
AW: EReadError: Stream-Read-Fehler
Wenn ich sGUIDir lese, würde ich mal vermuten, dass da ein PathDelimiter fehlt, denn sonst würde die Variable ja sGUIPath heißen :)
|
AW: EReadError: Stream-Read-Fehler
Delphi-Quellcode:
var
filename:string; ... for nLauf := tStart to tEnd do begin // es ist immer ein gute Idee einen Dateinamen KOMPLETT // in einer Stringvariablen zu halten... if (FileExists(TexPath[nLauf])) then filename := TexPath[nLauf] else filename := sGUIDir + sMissing; TexPic[nLauf] := TBitmap.Create(); // Hier kann man dann einen Breakpoint setzen und nachschauen // welcher Dateiname denn konkret geladen wird TexPic[nLauf].LoadFromFile(filename); end; |
AW: EReadError: Stream-Read-Fehler
Ok danke für eure Lösungsvorschläge! :)
sGUIDir ist das Verzeichnis und sMissing ist der Dateiname, das hätte ich vllt schreiben sollen. Das tritt bei einem Bild mit 2560x1440 Pixeln auf, wenn ich das Bild auf 1920x1080 Pixel verkleinere, läuft alles super... Aber ich brauche diese Auflösung Gruß Johannes |
AW: EReadError: Stream-Read-Fehler
Zitat:
Aber Dir = das Verzeichnis selber (also ohne ein \ am Ende) Path = der Pfad-Anteil einer Datei oder eines Unterverzeiczhnisses (mit \ am Ende) Da
Delphi-Quellcode:
, wäre hier also ein "Path" nötig.
Datei = sGUIDir + sMissing
Aber egal wie der Name aussieht ... Hat dein sGUIDir denn nun ein \ em Ende? Nunja, wenn es abhängig von der Bildgröße geht, dann scheint der Pfad ja OK zu sein. |
AW: EReadError: Stream-Read-Fehler
es hat ein \ am Ende.
Momentan funktioniert alles ohne Exception. :) Aber gibt es eine Lösung größere Bilder zu laden? |
AW: EReadError: Stream-Read-Fehler
TBitmap schafft auch größere Bilder (mit genügend freiem RAM locker auch mal 10000x10000x24).
Wie genau lautet denn die Fehlermeldung und an welcher Stelle tritt sie auf? Und sind deine Arrays auch groß genug? |
AW: EReadError: Stream-Read-Fehler
Das Array ist groß genug!
Aber die Bilder sind 24-Bit... Ist das so wichtig? Gruß Johannes |
AW: EReadError: Stream-Read-Fehler
Zitat:
Das Problem wird sein das du ab weniger geladener Bilder keinen durchgehenden Adressraum mehr frei hast der deiner Bildgröße (2560x1440*32Bit = 117 MB durchgehender Adressraum nötig). Die ersten Bilder können geladen werden und dann gibts nur noch frei Ram "krümel" wo dazwischen System/Windws-DLL's oder Delphi-Objekt liegen. |
AW: EReadError: Stream-Read-Fehler
Zitat:
(vor allem wenn er beim Lesen einer Datei auftritt, die es gar nicht gibt. Dann gibt's den fehler vielleich auch nicht?) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz