テキストファイルのコピーについて

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
五十肩

テキストファイルのコピーについて

#1 投稿記事 by 五十肩 »

初めまして、ABではじめてプログラムに挑戦しようとしている、半世紀近く生きているおじさんです。
よろしくお願いします。

ご質問は、このサイトのプログラミング講座のリファレンス→ステートメント→入出力(ファイル)→Fieldの中にある、サンプルログラムについてです。
0123456789の内容の「read.txt」を作成し、下記のサンプルプログラムを打ち込んでコンパイルした後実行しましたが、「write.txt」には、10バイト分のスペースがあるだけで、0123456789とコピーされていません。
おそらく私が何かをしでかしている(入力に何かが足りなかったりとか)と思うのですが、どこが悪かったのかわかりません。
正常にコピーできるようにするには、どうしたらいいのでしょうか。
また、下記の方法では、何メガバイトくらいのファイルのコピーが可能でしょうか。
初歩的な質問で、この掲示板にはふさわしくないかもしれませんが、よろしくお願いいたします。

サンプル
Dim buffer As String
Open "read.txt" as #1
Open "write.txt" as #2
Field #1,10
Field #2,10
Get #1,1,buffer
Put #2,1,buffer
Close #1
Close #2
淡幻星
記事: 183
登録日時: 2005年7月19日(火) 07:02
お住まい: 宮城県
連絡する:

Re: テキストファイルのコピーについて

#2 投稿記事 by 淡幻星 »

こちらで試してみましたが、正常にコピーされました.
Win2000 + AB Ver.4.23.00
もしActiveBasicのバージョンが上記と違う場合は、
最新版(現在Ver.4.23.20)で試してみてください。
もしくは、一度閉じてから再度開いて実行するなどしてみてください。
提示されたコード自体はあってますので、コンパイラか環境が原因と思われます。

五十肩さん さんが書きました:> また、下記の方法では、何メガバイトくらいのファイルのコピーが可能でしょうか。
最近は試してないので分かりませんが、以前は4KBあたりで失敗した気がします。
なお、単純にファイルをコピーするだけであれば、CopyFile()が便利です。

コード: 全て選択

Dim r As Long
r = CopyFile( "read.txt", "write.txt", FALSE ) '常に上書きコピーする
コピーに成功すればTRUEが、失敗すればFALSEが返ります(rに代入されます)。
最後のFALSEをTRUEに変えると、上書きしなくなります。
五十肩

テキストファイルのコピーについて

#3 投稿記事 by 五十肩 »

淡幻星 様

早速ご回答いただきありがとうございました。
ActiveBasic Ver4.23.00をダウンロードさせていただき、無事解決することができました。

また、ほかのコピー方法も教えてくださり、重ね重ねありがとうございました。
返信する