Mehrzeiler in Einzeiler umwandeln (AnsiString)
-
Hallo.
Ich bin grad voll am verzweifeln...
Ich habe eine Routine geschrieben, die einen AnsiString mit Zeilenumbrüchen in einzeiler umwandeln soll. Es funktioniert aber nicht richtig.
Es werden ca. 6000 Zeilen davon umgewandelt.
Ich habs mal mit dem Debugger überwacht und es hat enwandfrei funktioniert....ich glaub langsam es gibt verschiedene umbrüche, die entweder aus einem Zeichen oder aus 2 bestehen !?Code:
int position = String.Pos("\n");
while (position)
{
String.Delete(position,1); //war früher "position-1, 2"
String.Insert(char(0x0F),position);
position = String.Pos("\n");
}
-
Unter DOS/Windows sehen Zeilenumbrüche so aus: \r\n
Tip am Rande -> StringReplace().
-
Hallo
normalerweise wird unter Windows der Zeilenumbruch immer durch "\r\n" dargestellt. Also sollte das Entferfen der Zeilenumbrüche durch
AnsiString Source; AnsiString Dest = StringReplace(Source, "\r\n", "", TReplaceFlags() << rfReplaceAll);/Edit : Gah... 1 Sekunde.
bis bald
akari
-
Diesmal ich!

-
Hi...Danke für die schnelle antwort.
hab grad mal die sache genauer angeschaut und bemerkt, dass manchmal (nicht immer) vor dem Return (char = 10) noch eine char mit dem code decimal 13 kommt (=carriage return) wiso kommt das nur manchmal ? mein routine zuvor macht immer das gleiche (es wird immer "/n" eingesetzt)?
-
Hallo
normalerweise wird unter Windows der Zeilenumbruch immer durch "\r\n" dargestellt.
Es gibt aber auch Programme die sich nicht an diesen Standard halten und entweder \r oder \n verwenden.
Du solltest immer mit \r\n arbeiten. Ob du mit \r oder \ rechnest, must du wissen.bis bald
akari