.script ファイルからパラメータをロードする新しい .txt ファイルを作成したいと考えています。ルートでうまく機能します。.script ファイルはルート ディレクトリにあります。結果は次のとおりです。
- 192.121.2.2 ログイン ルーシー パスワード 赤
- 192.321.2.1 ログイン スティーブ パスワード アップル
.
if FindFirst('*.*', faAnyFile, Search) = 0 then
begin
while FindNext(Search) = 0 do
begin
if FileExists(Search.Name) then
begin
if pos('.txt', Search.Name) <> 0 then
begin
Assignfile(txtfile, Search.Name);
Erase(txtfile);
end;
end;
end;
end;
findclose(Search);
if FindFirst('*.*', faAnyFile, Search) = 0 then
begin
while FindNext(Search) = 0 do
begin
if FileExists(Search) then
begin
if pos('.script', Search.Name) <> 0 then
begin
data_file := TStringList.Create;
data_file.LoadFromFile(Search.Name);
txtdata := data_file.Strings[1].+ 'login' + data_file.Strings[2] +
'password' + data_file.Strings[3];
txtfile := TStringList.Create;
if FileExists('.txt') then
begin
txtfile.LoadFromFile('.txt');
end;
txtfile.Add(txtdata);
txtfile.SaveToFile('.txt');
end;
end;
end;
end;
findclose(Search);
しかし、C:\Script\Files を追加したい場合、使用するコードが間違っています。何が問題なのでしょうか? 助けてください!
if FindFirst('c:\Script\Files\*.*', faAnyFile, Search) = 0 then
begin
while FindNext(Search) = 0 do
begin
if FileExists(Search.Name) then
begin
if pos('c:\Script\Files\.txt', Search.Name) <> 0 then
begin
Assignfile(txtfile, Search.Name);
Erase(txtfile);
end;
end;
end;
end;
findclose(Search);
if FindFirst('*.*', faAnyFile, Search) = 0 then
begin
while FindNext(Search) = 0 do
begin
if FileExists(Search) then
begin
if pos('.script', Search.Name) <> 0 then
begin
data_file := TStringList.Create;
data_file.LoadFromFile(Search.Name);
txtdata := data_file.Strings[1] + 'login' + data_file.Strings[2] +
'password' + data_file.Strings[3];
txtfile := TStringList.Create;
if FileExists('c:\Script\Files\.txt') then
begin
txtfile.LoadFromFile('c:\Script\Files\.txt');
end;
txtfile.Add(txtdata);
txtfile.SaveToFile('c:\Script\Files\.txt');
end;
end;
end;
end;
findclose(Search);
結果は次のとおりです。
- 192.121.2.2 ログイン ルーシー パスワード 赤
- 192.121.2.2 ログイン ルーシー パスワード 赤
- 192.321.2.1 ログイン スティーブ パスワード アップル
1 番目のアイテムは 2 回表示されます。