Announcement

Collapse
No announcement yet.

Array Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Array Problem

    Hallo!

    Ich möchte einen Stream, aus einem TWinSocketStream-Objekt in einem Filestream speichern. Dazu habe ich ein Array deklariert.
    Das Ganze sieht dann ungefähr so aus:

    var MyStream : TWinSocketStream;
    buffer: array[0 .. 3500] of Char;
    datei: TFilestream;
    begin
    MyStream := TWinSocketStream.Create(sock,40000);
    datei := TFilestream.Create(pfad,fmCreate);

    try
    while (main.Form1.ClientSocket.Active) and (Abbruch = false) do begin
    if MyStream.WaitForData(40000) then begin
    fillchar(buffer,sizeof(buffer),0);
    MyStream.Read(buffer,sizeof(buffer));

    datei.Write(buffer,length(buffer));
    .
    .
    .

    Nun stört es mich, dass es kein dynamischer Array ist. Es ist ja auch nicht immer sichergestellt, dass der Stream 3500
    Zeichen liefert. Mal mehr, mal weniger. Sobald ich aber einen dynamischen Array erstelle und die Grösse erst während der Laufzeit
    ermittele klappt das lesen nicht mehr aus dem TWinSocketStream. Hab den Array zur Laufzeit mit setlength eine Grösse zugewiesen
    und dann versucht dem dem Stream zu füllen. Klappt nicht ! Sobald der Array wieder statisch ist, klappt alles.

    Kennt wer dieses Problem, oder hat wer dafür eine Lösung ?

  • #2
    Hallo Sascha,<br>schau mal in der Delphi-Hilfe unter TStream nach. Dort wirst Du die Methode CopyFrom finden. Ich denke, das ist genau der richtige Ansatz für Dich. Wenn Du hier im Forum nach CopyFrom suchst, wirst Du bestimmt einige Beispiele finden.<br>Jens Schuman

    Comment


    • #3
      Danke. Werd das mal probieren.
      Gruss
      Sasch

      Comment


      • #4
        Mit CopyFrom geht das. Dennoch würde ich gerne wissen, ob sich das auh mit nem dynamischen Array machen lässt

        Comment

        Working...
        X