環境はVB6SP5です。
----------------------
AAAA,BBBB,CCCC\n
DDDD,EEEE,FFFF\n
GGGG,HHHH,IIII\n
EOF
----------------------
という中身のテキストを
----------------------
1111,2222,3333\n
AAAA,BBBB,CCCC\n
DDDD,EEEE,FFFF\n
GGGG,HHHH,IIII\n
EOF
----------------------
と言う風に先頭行に追加したいのですが、可能でしょうか?
以下のような手順で出来ると思います。
(1)ファイルを読み取りモードで開いてファイルの中身を全て文字型変数に格納
↓
(2)ファイルを書き込みモードで開く
↓
(3)先頭行に追加したい文字列をファイルに書き込む
↓
(4)最初に取得したファイルの中身をファイルに書き込む
↓
(5)ファイルを閉じる
上記の方法で可能なのですが、データがものすごく大きかった場合に
非常に時間がかかります。
この方法以外には、できないでしょうか?
考え方としては
元ファイルをリネーム->新ファイル作成->追加文字列書込->ファイル閉じる
->新ファイルと元ファイルを連結->(元ファイル削除)
とか…。連結方法が思い付いてないけど。
ありがとうございます。
VBのファイル処理ではできないものでしょうか?
>新ファイルと元ファイルを連結
この方法も模索してみます。
連結はDOSコマンドだったらcopyでファイル名+ファイル名でできるんですけどね。
>連結はDOSコマンドだったらcopyでファイル名+ファイル名でできるんですけどね。
DOSでやってみましたがうまくいきませんでした。
ファイル名の指定の方法等が間違っているのでしょうか?
また、このコマンドで連結したファイルはどのようになるのでしょうか???
>DOSでやってみましたがうまくいきませんでした。
>ファイル名の指定の方法等が間違っているのでしょうか?
と言われても、どの様に指定したか判らなければ。。。(^^;
普通はこうかな 。
Shell "command.com /c c:\Text1.Text + c:\Text2.Text", vbHide
Text1に足されます。
ところで
>データがものすごく大きかった場合に
はどのくらいの大きさなんですかね。
>>データがものすごく大きかった場合に
>はどのくらいの大きさなんですかね。
20万行ぐらいのデータです。
>Shell "command.com /c c:\Text1.Text + c:\Text2.Text", vbHide
ちゃんとファイルを置いてやってみましたが、なにも変更がありません。
どうしてでしょうか???
単にコマンドが正しくなかっただけでは?
以下のようにしたらうまくできました。
Shell "command.com /c copy c:\Text1.Text + c:\Text2.Text c:\Text1.Text", vbHide
わー!!!
花見疲れでめちゃくちゃなものを貼り付けました。orz
Ryoさん、有難う!
…不思議なのは、
> Shell "command.com /c copy c:\Text1.Text + c:\Text2.Text c:\Text1.Text", vbHide
と書くと、
"c:\Text1.Text"というファイルと、"c:\Text2.Text"と言うファイルを結合して、
"c:\Text1.Text"というファイルにする…んだけど、
これはやっぱり
"c:\" & """" & Text1.Text & """" とした方がいいのかな…?
…あと、万が一を考えて、/b オプションもつけたほうがいいかも。
※誤爆ぢゃ…ないよね…(…
>※誤爆ぢゃ…ないよね…(…
誤爆じゃないです。
よくある結合Batでは
/bオプションつけますから・・・。
ああっ、少し見ない間に…。
皆々様フォローありがとうございます。
便乗質問:
皆様はcopyコマンドの時 /v オプション付けますか?
いや、自分の場合はつけない。
たまに、/-Yつけるときがあるが、ほとんどのケースでは/bのみ
できました。
皆さんありがとうございました。
またお願いします。
> たまに、/-Yつけるときがあるが、ほとんどのケースでは/bのみ
いな様ありがとうございますm(_ _)m。
自分の場合は/bと/yなのですが、/vでチェックした方がいいのかなと悩んでたもので。
ツイート | ![]() |