我將文本傳遞給一個函數。該文本可以包含任何內容,從單個字符到全書。從delphi中的文本段落中提取第一行
我需要提取第一個像並將其用作「標題」,以便我可以命名一個文件作爲備份保存該文本。我使用了以下內容:
function GetTitle(var Text:string):string;
var
title: string;
position: integer;
begin
title := '';
position := AnsiPos(#10, Text);
if position = 0 then
begin
position := AnsiPos('.', Text);
if (position = 0) then
title := Text
else
title := copy(Text, 1, position);
end
else
begin
title := copy(Text, 1, position);
end;
result := title;
end;
我檢查#10,而不是13號,因爲文本可以從Windows應用程序或Mac OS X的應用程序可以通過兩種。在沒有#10的情況下,我正在檢查第一名。 (點),如果沒有,那麼我將整個事情作爲標題傳遞。
此方法導致名稱中包含#13的文件名有些問題或名稱太長。我可以在標題上添加> 256的支票,但這只是另一回事。
無論如何,有什麼方法可以正確讀取第一行(包括#13#10或#10或#13或。或其他)嗎?
我知道這很簡單,但我似乎無法找到一種方法來處理這個,而不必嵌套IFS ...
代碼表示讚賞。謝謝
首先,你應該使用'const的文字:string',不'VAR文字:string'。其次,你不需要'title'變量。只需簡單地使用'result'。 – 2010-07-15 17:56:03