Doch nicht ganz. Das letzte Zeichen fehlt.
Da muss dann noch die function TIdIOHandler.ReadLn(ATerminator: string; ATimeout: Integer = IdTimeoutDefault; AMaxLineLength: Integer = -1): string; ein wenig angepasst werden.
Delphi-Quellcode:
// Extract actual data
Result := FInputBuffer.Extract(LTermPos + Length(ATerminator));
if (ATerminator = LF)
and (LTermPos > 0)
then begin
{
* Wenn beim letzten String das LF fehlt, würde das letzte Zeichen abgeschnitten.
}
if (Result[LTermPos + 1] <> CR)
and (Result[LTermPos + 1] <> LF)
then inc(LTermPos);
if Result[LTermPos] = CR
then begin
Dec(LTermPos);
end;
end;
SetLength(Result, LTermPos);
end;
Wobei ich mich frage, ob man da ein
Delphi-Quellcode:
// Extract actual data
Result := FInputBuffer.Extract(LTermPos + Length(ATerminator));
Result := TrimRight(Result);
end;
nicht ausreichend wäre.