从FreePascal文件读取

从FreePascal文件读取,pascal,freepascal,Pascal,Freepascal,因此,我有一个包含以下内容的文本文件: Harry Potter and the Deathly Hallows###J. K. Rowling###2007 我必须以下面的形式将它输出到FreePascal程序 J.K.Rowling "Harry Potter and the Deathly Hallows" 2007 year 我知道如何读取文件,但我不知道如何使其像previos表单一样 有人能帮我吗?我将非常感谢。如果freepascal中的TStringList与Delphi中的

因此,我有一个包含以下内容的文本文件:

Harry Potter and the Deathly Hallows###J. K. Rowling###2007
我必须以下面的形式将它输出到FreePascal程序

J.K.Rowling "Harry Potter and the Deathly Hallows" 2007 year
我知道如何读取文件,但我不知道如何使其像previos表单一样


有人能帮我吗?我将非常感谢。

如果freepascal中的TStringList与Delphi中的TStringList相同,那么这将实现以下功能:

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
):


如果freepascal中的
TStringList
与Delphi中的相同,那么这将实现以下技巧:

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
):


到目前为止你试过什么?我想这是你的家庭作业。将字符串拆分为标记,并将####中包含的标记放在前面。关于拆分字符串,看看你到目前为止都做了些什么?我想这是你的家庭作业。将字符串拆分为标记,并将####中包含的标记放在前面。关于分开绳子,我恐怕不是;我已经在FPC 2.6.0(Lazarus 1.0 RC2)中对此进行了检查,没有可用的
LineBreak
属性。恐怕没有;我在FPC 2.6.0(Lazarus 1.0 RC2)中对此进行了检查,没有可用的
LineBreak
属性。