AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WinSock & Dateien versenden
Thema durchsuchen
Ansicht
Themen-Optionen

WinSock & Dateien versenden

Ein Thema von combocraft · begonnen am 6. Okt 2007 · letzter Beitrag vom 6. Okt 2007
Antwort Antwort
Seite 2 von 2     12   
combocraft

Registriert seit: 3. Okt 2007
7 Beiträge
 
#11

Re: WinSock & Dateien versenden

  Alt 6. Okt 2007, 19:32
So, datei wird neu erstellt aber nicht mit Daten gefüllt!

Hab eure beiden Ratschläge befolgt und steh nun wieder da wie ein Ochs vorm Berg..

Hilfe!

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;

type
  TDLFile= array[0..2048-1] of Byte;
  TForm1 = class(TForm)
    Button1: TButton;
    ServerSocket1: TServerSocket;
    ClientSocket1: TClientSocket;
    procedure Button1Click(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  dlCounter: Cardinal = 0;
implementation

{$R *.dfm}

procedure WriteToNewFile(bByteDat: TDLFile; iSize: Integer);
var
  hDat: File;
begin
  if FileExists('C:\new_bild.bmp') then
  begin
    AssignFile(hDat, 'C:\new_bild.bmp');
    ReSet(hDat, 1);
    Seek(hDat, soFromBeginning+dlCounter);
    BlockWrite(hDat, bByteDat, iSize);
    inc(dlCounter, iSize);
    CloseFile(hDat);
  end
  else begin
    AssignFile(hDat, 'C:\new_bild.bmp');
    ReWrite(hDat, 1);
    BlockWrite(hDat, bByteDat, iSize);
    dlCounter := iSize;
    CloseFile(hDat);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
type TDLFile= array[0..2048-1] of Byte;
var datei: file;
    buffer: TDLFile;
    iResult: Integer;
begin
  AssignFile(datei, 'D:\Balls\balls\Cedfence.bmp');
  ReSet(datei, 1);
  while iResult <> 0 do
  while not eof(datei) = true do
  begin
    BlockRead(datei, buffer, 2048, iResult);
    ServerSocket1.Socket.Connections[0].SendBuf(buffer, iResult);
  end;
  CloseFile(datei);
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
  buffer: TDLFile;
  iResult: Integer; //Was soll das hier eigentlich??
begin
  ClientSocket1.Socket.ReceiveBuf(buffer, Socket.ReceiveLength);
  WriteToNewFile(buffer, ClientSocket1.Socket.ReceiveLength);
end;

end.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#12

Re: WinSock & Dateien versenden

  Alt 6. Okt 2007, 20:23
1. Warum definierst du global einen Typ TDLFile über der Form und in Button1Click() das ganze nochmal?
2. Was wurde in Bezug auf iResult und 0 setzen gesagt?
3. Wer hat gemeint, du sollst beim Empfangen iResult einfügen?
4. Warum gibst du bei Seek() soFromBeginning an? Seek() für die alten Dateiroutinen ist immer ab Anfang der Datei...
5. Gib mal bitte bei jeder Angabe von Buffer direkt ein [0] an.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz