比如打开一个文件里面内容有:
1
2
3
///\\结束行,内容不包含\\\\\打开后会边读边建立txt文件
1.txt
2.txt
3.txt
\\\
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ListstrTem,ListstrSaveTem:TStringlist;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
i:integer;
begin
if OpenDialog1.Execute then
begin
ListstrTem:=TStringlist.Create;
ListstrSaveTem:=TStringlist.Create;
ListstrTem.LoadFromFile(OpenDialog1.FileName);
end;
for i := 0 to ListstrTem.Count - 1 do
begin
Memo1.Lines.Append(ListstrTem.Strings[i]);
ListstrSaveTem.Text:=ListstrTem.Strings[i];
ListstrSaveTem.SaveToFile(ExtractFilePath(Application.ExeName) + ListstrTem.Strings[i] + '.txt');
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ListstrSaveTem.Free;
ListstrTem.Free;
end;
end.
var
fsl,dsl :TStringList;
i :Integer;
sPath :string;
begin
sPath := ExtractFilePath(Application.ExeName) + 'Test\'; //生成的文件夹保存路径
fsl := TStringList.Create;
dsl := TStringList.Create;
try
fsl.LoadFromFile('d:\1.txt'); //A文件路径
for i := 0 to fsl.Count - 1 do
begin
Application.ProcessMessages;
if fsl.Strings[i] = '' then
Continue;
try
if not DirectoryExists(sPath + fsl.Strings[i]) then
ForceDirectories(sPath + fsl.Strings[i]);
dsl.Clear;
dsl.Add(Format('ID=%s',[fsl.Strings[i]]));
dsl.SaveToFile(sPath + fsl.Strings[i] + '\' + fsl.Strings[i] + '.txt');
except
Continue;
end;
end;
finally
FreeAndNil(dsl);
FreeAndNil(fsl);
end;
end;
一楼的会创建文件夹。这个我还是看到了吧。嘿嘿。二楼的没有看懂
program Project1;
uses
SysUtils,Classes;
procedure myprocedure(TxtFileFullName,CrtFolderRoot: String);
var
ReadTxtStr,WriteTxtStr: TStringList;
i: Integer;
TxtContent,NewFolderName: String;
begin
try
ReadTxtStr := TStringList.Create;
WriteTxtStr := TStringList.Create;
ReadTxtStr.LoadFromFile(TxtFileFullName);
for i := 0 to ReadTxtStr.Count - 1 do
begin
NewFolderName := ReadTxtStr.Strings[i];
MkDir(CrtFolderRoot + NewFolderName);
TxtContent := 'ID=' + NewFolderName;
WriteTxtStr.Text := TxtContent;
WriteTxtStr.SaveToFile(CrtFolderRoot + NewFolderName + '\' + 'xt');
end;
finally
ReadTxtStr.Free;
WriteTxtStr.Free;
end;
end;
begin
if paramCount = 2 then
myprocedure(paramStr(1),paramStr(2));
end.
Console application,eg:Project.exe "D:\project\filename.txt" "E:\test\"