Zitat von
Muetze1:
Was ist, wenn der Server nach Unix Art kein #10#13 sendet sondern nur ein #13 ? Dann greift kein einziger deiner Codes und durch das Add kommt ein 2. Zeilenvorschub hinzu...
Da brauch für ihn doch nichts greifen, da er ja auf #13 hinaus will - er mach aus #10 'ne #13 und aus #13#13 (also auch aus #10#13) ebenfalls 'ne #13
PS: ich hab's auch schon erlebst, das nu #10 vorhanden war *kotz*
Das ist 'ne alte Funktion von mir, welche eigentlich alle möglichen Variationen erkennen und in #10#13 umwandeln sollte (hatte jedenfall noch keine Probleme)
Ich weiß zwar, daß der bytweise Zugriff nicht ideal ist, aber ich verwende das so selten, das sich ein Umbeu für mich noch nicht gelohnt hat
, allerdings hab ich mir damit das Verschieben, beim Einfügen und Löschen, der nachfolgenden Bytes erspart
Delphi-Quellcode:
Procedure Aendern(Datei: String);
Var Datei1, Datei2: File of Byte;
CR, LF, B, Ba: Byte;
S: String;
Begin
S := AnsiLowerCase(ExtractFileExt(Datei));
If (S <> '.htm') and (S <> '.html') and (S <> '.css') and
(S <> '.js') and (S <> '.cgi') and (S <> '.txt') and (S <> '.php') Then Exit;
AssignFile(Datei1, Datei); Reset(Datei1);
AssignFile(Datei2, Datei + '.tmp'); Rewrite(Datei2);
CR := 13; //Carriage Return
LF := 10; //Line Feed
Ba := 255;
While not EoF(Datei1) do Begin
Read(Datei1, B);
If (B <> LF) and (Ba = CR) Then Write(Datei2, LF);
Write(Datei2, B);
Ba := B;
End;
CloseFile(Datei2);
CloseFile(Datei1);
DeleteFile(Datei);
RenameFile(Datei + '.tmp', Datei);
End;
hab mir jetzt auch mal AdjustLineBreaks angesehn (kannte ich noch nicht), aber für meine zwecke ist das auch nicht immer so hilfreich -.-