Einzelnen Beitrag anzeigen

iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#1

Datei übertragen per BlockRead/Write

  Alt 20. Jun 2003, 15:47
hallo zusammen!

zuerst mal wieso:
ich will eine datei übers netz übertragen, allerdings langsam, damit im hintergrund noch schön ein CS-Server laufen kann(ohne Lag!). deshalb will ich das so umständlich machen!
bis jetzt hab ich das immer mir readln/writeln gemacht, da kann ich aber nur textfiles mit schreiben, da bei den anderen dateien das "enter" zu spät oder gar nicht kommt, und die zeile somit zu lange ist!
deshalb wollte ich die datei nun in kleinen stücken übertrage. lokal hat das auch schon geklappt, allerdings im netz nich (I/O fehler). ich hab von den befehlen keinen plan!, denke aber, dass ich noch mehr informationen übertragen muss!
hier mal das beispiel aus der delphi-hilfe, das ich für server/client umgeschrieben habe:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var FromF, ToF: file;
    NumRead, NumWritten: Integer;
    Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then    { Display Open dialog box }
  begin
  AssignFile(FromF, OpenDialog1.FileName);
  Reset(FromF, 1);   { Record size = 1 }
  if SaveDialog1.Execute then     { Display Save dialog box}
    begin
    AssignFile(ToF, SaveDialog1.FileName);   { Open output file }
    Rewrite(ToF, 1);   { Record size = 1 }
    Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FileSize(FromF))
       + ' bytes...');
    repeat
      BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
      BlockWrite(ToF, Buf, NumRead, NumWritten);
    until (NumRead = 0) or (NumWritten <> NumRead);
    CloseFile(FromF);
    CloseFile(ToF);
    end;
  end;
end;
ich denke, dass ich auch das "NumRead" übertragen muss, oder?
bloß wie soll ich das machen, oder brauch ich es gar nicht?
der server soll nun also lesen, dann verschicken(als string!) und der client schreibt das dann wieder in eine datei. kann mir da jemand helfen?
ich wäre euch suuuper dankbar, weil ich da echt grad verzweifle
gruss,
iaby
  Mit Zitat antworten Zitat