電子書籍の厳選無料作品が豊富!

あるfile1とfile2の内容を合わせたfile3を作ろうとしたのですが、うまくいきません。
それぞれのファイル(外部環境に存在)に対応したファイル変数ichi,ni,sum(ichiとniの内容を足したもの),sanを作り、ichiとniに中身を入れ sum := ichi+ni とし、sumから中身を読み出すごとにsanに入れていく、と考えました。

コンパイルするとファイルの足し算には'+'は使えないという旨の文章が出てきてコンパイルできませんでした。
どういう方針で内容を合わせればいいのか、教えてください。

A 回答 (3件)

#1です


pascalでも宣言が、微妙に違いますので、使用しているpascalに合わせてください

program FileAppend;
var
file1: File;
file2: File;
file3: File;
stack: string;
begin

AssignFile(file1, 'file1');
Reset(file1);
AssignFile(file3, 'file3');
Rewrite(file3);

while not Eof(file1) do
begin
read(file1, stack);
write(file3, stack);
end;
CloseFile(file1);

AssignFile(file2, 'file2');
Reset(file2);

while not Eof(file2) do
begin
read(file2, stack);
write(file3, stack);
end;
CloseFile(file2);
CloseFile(file3);

end.

と、いう感じ、コンパイラによって、記述が違うから、調整はしてね
ファイル1と、ファイル3を開いて、ファイル1から読み込み、ファイル3へ書き込み、ファイル1がEOFになるまでループ
ファイル2を開いて、ファイル2から読み込み、ファイル3へ書き込み、ファイル2がEOFになるまでループ
恐らくだけど・・・結合と言う話でファイル1の後ろにファイル2を続けて、ファイル3に書き出してるだけ・・・
    • good
    • 0
この回答へのお礼

ありがとうございます、できました。ファイルの中身を結合というところで編に混乱してしまいました。

お礼日時:2008/06/15 13:04

普通ファイル変数というのはポインタですから、足し算はできないですよ。


そんな関数はないです。
メモリに展開して結合して保存するのが正規の手順です。

この回答への補足

ご指摘ありがとうございます。
メモリに展開して結合、というのは手順としては配列や木に格納するようなことですか?

補足日時:2008/06/12 03:26
    • good
    • 0

そもそも、ファイル変数ichi,ni,sumは、バッファじゃないですか?



中身を使用するには、read(読み取り)、write(書き込み)で、行う
ファイルの足し算と言うのも、よく判りませんが結合したいという話?
それとも、数値が入っていて、それを読み取って足し算していきたいと言う話?

この回答への補足

1と2のファイルに数値(自分で入れていく)が入っていて、それらの数値が全て入ったファイル3を作りたいのです。なので結合したいのです。

補足日時:2008/06/12 03:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!