AGB  ·  Datenschutz  ·  Impressum  







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

EReadError: Stream-Read-Fehler

Ein Thema von Johannes013 · begonnen am 16. Jan 2012 · letzter Beitrag vom 6. Feb 2012
Antwort Antwort
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#1

EReadError: Stream-Read-Fehler

  Alt 16. Jan 2012, 20:20
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:
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;
TexPic ist ein Array of TBitmap
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
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: EReadError: Stream-Read-Fehler

  Alt 16. Jan 2012, 20:38
Wenn ich sGUIDir lese, würde ich mal vermuten, dass da ein PathDelimiter fehlt, denn sonst würde die Variable ja sGUIPath heißen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
shmia

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

AW: EReadError: Stream-Read-Fehler

  Alt 17. Jan 2012, 11:55
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;
Andreas
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#4

AW: EReadError: Stream-Read-Fehler

  Alt 17. Jan 2012, 17:23
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
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.

Geändert von Johannes013 (17. Jan 2012 um 17:26 Uhr) Grund: Erkenntnis
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#5

AW: EReadError: Stream-Read-Fehler

  Alt 17. Jan 2012, 17:40
sGUIDir ist das Verzeichnis und sMissing ist der Dateiname, das hätte ich vllt schreiben sollen.
Das war uns schon soweit klar.

Aber
Dir = das Verzeichnis selber (also ohne ein \ am Ende)
Path = der Pfad-Anteil einer Datei oder eines Unterverzeiczhnisses (mit \ am Ende)

Da Datei = sGUIDir + sMissing , wäre hier also ein "Path" nötig.

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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#6

AW: EReadError: Stream-Read-Fehler

  Alt 17. Jan 2012, 18:01
es hat ein \ am Ende.
Momentan funktioniert alles ohne Exception.

Aber gibt es eine Lösung größere Bilder zu laden?
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  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 14:30 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 by Thomas Breitkreuz