http://members.jcom.home.ne.jp/jintrick/Personal/mkedit.html
MK Editorユーザのための html文書作成Tips - Personnel
URLはダミーです.
Bのデータを読み込んでAのファイルの後ろに書き込んで別名保存では駄目ですか?少なくともCファイルのファイルポインタを受け取る時間は短縮できます.ただテキストエディタでできても,VBで可能かはわからないですが.
Win32APIのCopyFileAを使えば見かけ上の手間は減りますね。
1. Cを新規作成
2. CにAを追記
3. CにBを追記
↓
1. APIのCopyFileAで A を C にコピー
2. CにBを追記
Yahoo!
方式的にエクセレントな方法という事で、
「優秀な」の解釈には当てはまらないですが、通常のA+B=Cではなく最初にCを作ってしまう。
作ってからAやBと比較する。
これをやると天文学的な偶然がないと一致しないと思われるので、これを1文字づつ行う。
例えば
Aというファイルの中身が「本日の天気は」
Bというファイルの中身が「雨の確立100%」
だとして。
Cにキャラクタ順に文字を入れAの「本」と一致すれば次の文字に以降というように、
Cを作ってからAやBと比較すると言う方法はいかがでしょうか?
処理的には凄く重く無駄な作業ですが・・・
http://www.hatena.ne.jp/1075191001#
VBでAとBのテキストファイルを連結して、Cというファイルに書き出す処理を行いたいのですが、何か良い方法はないでしょうか? CをオープンしてAとBの内容を書き出すのが一般.. - 人力検索はてな
URLはダミーです
VBらしくはないのですが、DOSのTYPEコマンドを使って、
type a.txt > c.txt
type b.txt >> c.txt
という方法も面白いのではないでしょうか?
URLはダミーです。
Shell ”command.com /c copy c:¥AFile + c:¥BFile CFile”, 1
こんな感じでCopyコマンドを使うとファイルを連結できます。
これも同じ処理になると思います。実際のコードでなくてもいいので、他の「実現可能な方式的」なアイデアは何かないでしょうか?
A を読み書きモードでオープン、Aのデータの尻尾にBのデータを書き込み。
#Aのデータが書き換わってしまいますね。Aをバックアップ、だと結局は同じ。
うーん。やっぱり無理かなぁ?
URLはダミーです。
ディスクのファイル管理部分を直接書き換えて、強制的に連結する方法も論理的には可能ですが、元の質問はテキストファイルの連結でしょ。セクター単位で直接ディスクを操作する必要があるならともかく、意味があるとは思えませんが。
で、回答は?
不可能です。
ディスクを直接操作してもテキストファイルの連結は出来ません(セクタサイズとテキストファイルサイズが合っていないと繋がらない。EOFコードを取ることが出来ない。NTFSでは使えない)。従って質問の中の一般的なほ方法かもしくは1.の回答がもっともスマートな方法です。
あまり一般的でない方法も含めると、メモリマップドファイルAPIを使用してファイルに書き込む方法があります(URL参照)。
但し、これを使用しても読み込んだデータをVB管理のメモリ上に置くかWindowsのファイルキャッシュに置くか程度の違いで、やっている事は同じです。
一般的な方法以外での解法でお願いします。
CALL fileAandBtoC()
の一行ですべて処理が終わればVBでは一番エクセレントだと思います。
CでDLLをつくりコールするか、あるいは、別プロジェクトでActiveXDLLを作成し、それを呼び出せばいいと思います。
方式的にエクセレントなものをお願いします。
欲しい回答は、要求を実現する知性です。
それが含まれていない回答は、ご遠慮ください。(ポイントもタダじゃないんで)
一般的な方法やセクタ操作やそれしかないという回答は誰でも思いつきます。
本質的には同じ処理なので、違う視点はないでしょうか?