私はSun Pascal 2.1を使ってコンパイルされたパスカルプログラムを持っていますが、これをfpcでコンパイルしたいのですが、問題があります。リセット手順はそのプログラムで使用されますが、 Sun Pascalのリセット:reset(file、filename)、ファイル名は文字列です(Sun Pascal 3.0.2リファレンスマニュアルを参照)。 FPCのリセット中: プロシージャリセット( var f:ファイル; l:LongInt );(http://www.freepascal.org/docs-html/rtl/system/reset.html)、 "互換性のないタイプ"のエラーが発生しました。Sun PascalからFree Pascalへのリセット手順を変換するには?
私のケースでは、リセットの2番目のパラメータはcharの配列です。reset(file、sizeof(array))に変更しても問題ありませんか、gpcのような別のコンパイラを選択する必要があります。リセットの2番目のパラメータも文字列です。ここ
Pascal IOを放棄してストリームなどを使用してみませんか? –
FreePascalでは、おそらく 'Assign(f、filename);です。リセット(f); '。 'l'は仮定したレコードサイズで、省略することができます(投稿したリンクの' Reset() 'の2番目の形式を参照してください)。おそらく他のパスカルは 'Assign()'を使わないでしょう。ああ、 'Assign()'の代わりに、Delphiのように 'AssignFile()'を使う必要があります。 **しかし、@ DavidHeffernanの助言に耳を傾け、代わりに(ファイル)ストリームを使う方が良いと思います。 ** –
FWIW、DelphiではおそらくFreePascalでも 'file'は予約語(' string'など)です。つまり、変数名として使用することはできません。 –