2016-09-24 4 views
0

私は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番目のパラメータも文字列です。ここ

+1

Pascal IOを放棄してストリームなどを使用してみませんか? –

+1

FreePascalでは、おそらく 'Assign(f、filename);です。リセット(f); '。 'l'は仮定したレコードサイズで、省略することができます(投稿したリンクの' Reset() 'の2番目の形式を参照してください)。おそらく他のパスカルは 'Assign()'を使わないでしょう。ああ、 'Assign()'の代わりに、Delphiのように 'AssignFile()'を使う必要があります。 **しかし、@ DavidHeffernanの助言に耳を傾け、代わりに(ファイル)ストリームを使う方が良いと思います。 ** –

+0

FWIW、DelphiではおそらくFreePascalでも 'file'は予約語(' string'など)です。つまり、変数名として使用することはできません。 –

答えて

0

スタート:

http://wiki.freepascal.org/File_Handling_In_Pascal

しかし、私のストリームおよび/またはStringlistsと、より近代的な方法を使用するための第2の動き。

+2

回答に関連する内容を少なくとも繰り返しない限り、オフサイトリンクを投稿しないでください。オフサイトのリンクは無効になることがあります(しばしば、数年後に)。 –

0

代替案は、Modern PascalのCLI(www.ModernPascal.com)です。私はApple Pascalと古いTurbo Pascalを現代のプラットフォームで動かすために書いた。私は古い構文の99%をWeb、dBaseなどと一緒にサポートしています(Linux、Macなどの古いソリューションをこのように移植します)。

+0

IMHO:StringLists - それらはkludgeであり、ストアドパスカルレコードでは機能しません。ストリームは、ほとんどのレガシーケースで、2で行ったことを行うために20行のコードを追加するようなものです。 –

関連する問題