分解文本文件

来源:互联网 发布:java开方如何保留小数 编辑:程序博客网 时间:2024/05/16 20:47
老婆用mp4看《鬼吹灯》,下载的文本文件过大,阅读起来很不方便。当然本身这个mp4的书签功能一般,断电就没了。只好将文件分割成若干个小文件,发现使用Delphi居然能在几分钟分钟内编制解决问题,要比手工分割好得多。

实现很简单:

procedure TForm1.Button1Click(Sender: TObject);
var
  str:String;

begin
    OpenDialog1.InitialDir:=ExtractFilepath(Application.Exename);
    OpenDialog1.Filter:='文本文件(*.txt;*.TXT)|*.txt;*.TXT';
    OpenDialog1.Title:='请选择文本文件';

  if( OpenDialog1.Execute = true ) then
  begin
     str := OpenDialog1.FileName;

     Edit1.Text := str;



  end;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
  List:tstringlist;
  Count: Integer;
  fileNum:Integer;
  eachCount:integer;
  I,J: Integer;
  strName,strNameTemp:String;
  fileInitName:String;
  wText: TextFile;
begin
      List:=tstringlist.create;
      List.LoadFromFile(Edit1.Text);

      Count:=List.Count;
      Edit2.Text := Inttostr(Count);

      strName := ExtractFilepath(Application.Exename);
      strNameTemp := strName;

      fileNum := strtoint( Edit3.text );
      eachCount := Trunc( Count / fileNum );

      fileInitName := Edit4.Text;
      ListBox1.Clear;
      for I := 0 to fileNum do    // Iterate
      begin
          strNameTemp := strName + fileInitName + Inttostr(I+1)+'.txt';
          AssignFile(wText, strNameTemp);
          Rewrite(wText);
          for J := 0 to eachCount do    // Iterate
          begin
             if( eachCount*I + J < Count ) then
                Writeln(wText, List[eachCount*I + J]);
          end;    // for

          ListBox1.Items.Add(strNameTemp);
         
          CloseFile(wText);
      end;    // for

      List.Free;
end;