所以我有一個包含文本文件:從文件中讀取FreePascal的
Harry Potter and the Deathly Hallows###J. K. Rowling###2007
而且我必須把它輸出到FreePascal的程序如下形式
J.K.Rowling "Harry Potter and the Deathly Hallows" 2007 year
我知道如何從文件中讀取,但我不知道如何使它像以前的形式
有人可以幫助我嗎?我會非常感謝。
所以我有一個包含文本文件:從文件中讀取FreePascal的
Harry Potter and the Deathly Hallows###J. K. Rowling###2007
而且我必須把它輸出到FreePascal的程序如下形式
J.K.Rowling "Harry Potter and the Deathly Hallows" 2007 year
我知道如何從文件中讀取,但我不知道如何使它像以前的形式
有人可以幫助我嗎?我會非常感謝。
如果TStringList
在FreePascal的是相同德爾福,那麼這將這樣的伎倆:
function SortedString(const aString : String) : String;
var
sList : TStringList;
begin
Result := '';
sList := TStringList.Create;
try
sList.LineBreak := '###';
sList.Text := aString;
if (sList.Count = 3) then
begin
Result := sList[1] + ' "' + sList[0] + '" ' + sList[2] + ' year';
end;
finally
sList.Free;
end;
end;
更新,如@TLama評論,FreePascal的TStringList
沒有一個LineBreak
財產。
試試這個(在StrUtils使用ReplaceStr
):
function SortedString(const aString : String) : String;
var
sList : TStringList;
begin
Result := '';
sList := TStringList.Create;
try
sList.Text := ReplaceStr(aString,'###',#13#10);
if (sList.Count = 3) then
begin
Result := sList[1] + ' "' + sList[0] + '" ' + sList[2] + ' year';
end;
finally
sList.Free;
end;
end;
恐怕不是;我已經在FPC 2.6.0(Lazarus 1.0 RC2)中檢查過了,['TStringList']沒有'LineBreak'屬性(http://www.freepascal.org/docs-html/rtl/classes/tstringlist-1 .html)可用。 – TLama 2013-03-16 12:08:37
@TLama,的確如此。使用'ReplaceStr()'應該可以。 – 2013-03-16 12:29:44
作爲FPC螳螂#24058提交 – 2013-03-16 14:14:26
你嘗試過這麼遠嗎?我想這是你的功課。將字符串拆分爲標記並將標記包含在###中。關於拆分字符串,請參閱http://www.lazarus.freepascal.org/index.php?topic=9789.0 – user1929959 2013-03-16 09:23:15