Thema: Delphi Warum geht das nicht?

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6
  Alt 7. Jun 2003, 12:56
Zitat von flattman:
funktioniert leider immer noch nicht.
Ach Gottchen, wie ich doch diese ungemein genauen Fehlerbeschreibungen liebe: "Geht nicht." "Kommt ein Fehler." "Das Ergebnis ist falsch."
Wir können ja Fehlercodes wie in der API einführen:
  • 0: Alles klar, hat geholfen. Problem gelöst.
  • 1: Geht nicht.
  • 2: Es kommt was raus, was nicht rauskommen soll.
  • 3: Kommt ein Fehler.
  • x: ...

Zitat:
Der Code sieht jetzt wie folgt aus:

Code:
var memstream:TMemoryStream;
    P:PByte;
    X:integer;
begin
  MemStream:=TMemoryStream.Create;
try
  MemStream.Size := 1024000;
  P:= MemStream.Memory;
  For X := 0 TO MemStream.Size - 1 Do
  Begin
    P^ := Random(256);
    inc(P);
  end;
  memo1.lines.LoadFromStream(memstream);
finally
  memstream.Free;
end;
Überleg doch mal, was da passiert. Ich weiß zwar nicht was passieren soll, aber ich sehe, dass da nichts passiert.
Du erstellst einen MemoryStream, gut.
Du legst seine Größe fest, gut.
Du weißt P die Eigenschaft Memory von MemStream zu, wozu auch immer.
Du durchläufst eine Schleife ein paar tausend mal
Code:
for x = 0 -> ....-1
  In der Schleife weißt du P einen zufälligen Wert zu.
  Dann erhöst du diesen zufälligen Wert.
Dann lädst du deinen MemoryStream in ein Memo und was erwartest du da jetzt? An keiner Stelle schreibst du irgendwas in den Stream rein. Jedenfalls sehe ich nicht wo. Allerdings kenne ich mich auch nicht so aus mit Streams. Dieses
P := MemStream.Memory
bereitet mir etwas Kopfzerbrechen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat