怎么将一个文本文件的内容读取,然后写入到另外一个文本文件

如何将一个文本文件的内容读取,然后写入到另外一个文本文件?
各位朋友,小弟有一个文本文件,内容和格式大概如下:

标题
第一行内容
第二行内容
第三行内容
。。。。。
第九百行内容
结尾



现在想将该文本文件的内容分批读出,然后分批存入到另外一个文本文件,第1次先读出第一行到第三百行的内容,然后将这三百行的内容先写入到第一个文本文件,然后继续从301行继续读,将301行到第6百行的内容写入到第二个文本文件,然后从601行的内容开始读,将601行到第900行内容写入到第三个文本文件,请各位朋友给一个思路,应该怎样实现,请各朋友赐教,衷心谢谢!

最后想要的三个文本文件内容如下 :

文件1:
标题
第1行
第2行
。。。
第300行
结尾


文件2:
标题
第301行
第302行
。。。
第600行
结尾


文件3:
标题
第601行
第602行
。。。
第900行
结尾

------解决方案--------------------
逐行读取文本文件,这是以前为另一个网友写的,你可以参考一下
Delphi(Pascal) code

procedure TForm1.Button3Click(Sender: TObject);
var
  fl:TextFile;
  path,s:string;
  str:string;
  i,j,m,n:Integer;
  b:Boolean;
begin
  path:=ExtractFilePath(Application.ExeName);
  AssignFile(fl,path+'text.txt');
  Reset(fl);
  //逐行读文本文件,************************************************************
  repeat
    Readln(fl,str);//读取文本文件当前行内容,开始是第一行,然后逐行读取
    i:=Pos('XX-ClientMac:',str);//子串在字符串中的位置,大于0说明找到子串,否则无匹配的子串
    if i>0 then//有匹配的子串
    begin
      s:=Copy(str,i+length('XX-ClientMac:'),Length(str)-i-length('XX-ClientMac:')+1);//读取字符串中子串后的内容,就是你要的IP地址
    end
    else//没有匹配的子串
    begin
      i:=Pos('XX-ServerMac:',str);//另一子串在字符串中的位置,大于0说明找到子串,否则无匹配的子串
      if i>0 then
      begin
        s:=Copy(str,i+length('XX-ServerMac:'),Length(str)-i-length('XX-ServerMac:')+1);//读取字符串中子串后的内容,就是你要的IP地址
      end
    end;
  until
    SeekEof(fl);//文本文件读取完成(英文解释:Returns the end-of-file status of a file, ignoring whitespace.)
  CloseFile(fl);
  //self.MaskEdit1.EditMask
end;

------解决方案--------------------
写文本文件,这是以前自己程序里的一段代码,可以参考
Delphi(Pascal) code

//将一些报文保存到文本文件中,便于调试时使用***********************************
procedure Tw_zjm.writefile_pro(name, content: string);
var
  fl:TextFile;
  k:integer;
begin
  if not fileexists(name) then
  begin
    k:=filecreate(name);
    if k>0 then
    begin
      fileclose(k);
      assignfile(fl,name);
      append(fl);
      writeln(fl,datetimetostr(now)+':');
      writeln(fl,content);
      closefile(fl);
    end;
  end
  else
  begin
    assignfile(fl,name);
    append(fl);
    writeln(fl,datetimetostr(now)+':');
    writeln(fl,content);
    closefile(fl);
  end;
end;
//****************************************************************************

------解决方案--------------------
請自行測試

procedure TForm1.Button3Click(Sender: TObject);
var
Atext,btext:tstringlist;
i:integer;
begin

OpenDialog1.Execute;
if OpenDialog1.FileName<>'' then begin
atext:=Tstringlist.Create;
btext:=Tstringlist.Create;
atext.LoadFromFile(OpenDialog1.FileName);
btext.Add('標題1');
FOr i:=0 to atext.Count-1 do begin
if (i mod 300 =0) and (i>0) then begin
btext.SaveToFile('標題'+floattostr(i/300));
btext.Clear;
btext.Add('標題'+floattostr(i/300+1));
end else
btext.Add(atext[i]);
end;
atext.Free;
btext.Free;
end;

end;
------解决方案--------------------
200W行也就在百秒左右,幾W能花多少時間?你希望有多快啊!