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;