![]() |
Du liest alles ein, bis du auf die Zeichen #13#10 triffst, also z.B. so:
Code:
Ist getestet, sollte funktionieren.
function GetFirstLine(BigString: String): String;
var a: LongInt; begin a := 1; Result := ''; while a <= Length(BigString) do begin if BigString[a] <> #13 then Result := Result + BigString[a] else if BigString[a+1] = #10 then break; Inc(a); end; end; Nachtrag: Du kannst das ganze natürlich auch in ein TStrings-Feld kopieren, aber das ist dann ja auch nicht anders als beim Memo, nur dass man es nicht auf der Oberfläche sieht. |
gut, danke, funzt
|
Moin Zusammen,
das kann man allerdings auch etwas einfacher haben:
Code:
Um sicherzustellen, dass man auch dann ein Ergebnis erhält, wenn der Ursprungstext nur eine Zeile enthält:
sResult := copy(sBigString,1,pos(#13#10,sBigString)-1);
Code:
Nicht daran zu denken, dass eine Textdatei eventuell auch unmittelbar mit dem letzten Zeichen der letzen Zeile enden kann, und diese somit nicht mit einem Zeilenendekennzeichen endet, war schon bis zum erscheinen von Windows 2000 fest implementiert. :mrgreen:
sResult := copy(sBigString,1,pos(#13#10,sBigString)-1);
[b]if[/b] sResult = '' [b]then[/b] [b]begin[/b] sResult := sBigString; [b]end[/b]; Wenn man da eine Regdatei importieren wollte, bei der in der letzten Zeile kein #13#10 am Ende steht, wurde diese Zeile einfach ignoriert. Das sind Fehler, da kann man suchen bis man schwarz wird. :shock: :roll: :? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz