Einzelnen Beitrag anzeigen

Morbid

Registriert seit: 8. Jun 2009
8 Beiträge
 
#5

Re: ClientSocket1.Socket.SendText Problem (TClientSocket)

  Alt 13. Jun 2009, 13:57
Hab jetzt 2 kleine Funktionen geschrieben die schon ziemlich hilfreich sind wenn man ein Präfix (bei einem Protokoll) mitsendet. Kann vieleicht mal wer gebrauchen der auch mein Problem hat
(Sry, Kommentare sind auf luxemburgisch, Programm müsste mam aber auch so verstehen )

const MaxBlockLength=508
Delphi-Quellcode:
function fGetBlock(Str: string; BlockNbr, MaxBlockLen: integer):string;
var StrLen, BlockCount, LastBlockLen, BlockLen: integer;
begin
  StrLen := length(Str);

  if (StrLen mod MaxBlockLen) = 0 then //Wann den Str sech genau deelen leist
     begin
      BlockCount := StrLen div MaxBlockLen; //Unzuel vun Bleck
      LastBlockLen := MaxBlockLen; //Greisst vum leschten Block
    end
  else //Wann den Str sech net genau deelen leist
    begin
      BlockCount := (StrLen div MaxBlockLen) + 1; //Unzuel vun Bleck
      LastBlockLen := StrLen mod MaxBlockLen; //Greisst vum leschten Block
    end;

  if BlockNbr = BlockCount then //Wann et den leschten Block ass
    BlockLen := LastBlockLen //Greisst vum leschten Block
  else
    BlockLen := MaxBlockLen; //Griesst vum net leschten Block

  result := copy(Str, ((BlockNbr - 1) * MaxBlockLen) +1 , BlockLen);
end;
Delphi-Quellcode:
function fGetBlockCount(StrLen, MaxBlockLen: integer):integer;
begin
  if (StrLen mod MaxBlockLen) = 0 then //Wann den Str sech genau deelen leist
    result := (StrLen div MaxBlockLen) //Unzuel vun Bleck
  else
    result := (StrLen div MaxBlockLen) + 1; //Unzuel vun Bleck
end;
Delphi-Quellcode:
for I := 1 to fGetBlockCount(length(TextBlock), MaxBlockLength) do
  begin
    ...
    ClientSocket1.Socket.SendText(Praefix + fGetBlock(TextBlock, I, MaxBlockLength));
    sleep(10);
    ...
  end;
  Mit Zitat antworten Zitat