2
procedure p;
var 
  f:TextFile;
  oemst:OemString;///declared as   OemString = Type AnsiString(CP_OEMCP);
begin
  AssignFile(f,fileName);
  reset(f);
  read(f,oemSt);
  ShowMessage(oemst);
end;

適切なエンコーディングで oemst を表示メッセージ内で表示するには、次のように宣言する必要があります。 setcodepage(oemst,862,false);

oem ファイルから読み取り、コンパイラが oem エンコーディングで正しく表示されることを確認するにはどうすればよいですか?

更新: この古いインターフェイスを指定していないため、Oem での作業は必須です。readln 割り当てファイルの操作は古いコードの一部であり、必要な作業とテストが少ないため、古い方法を使用したソリューションがあります。

4

2 に答える 2

2

SetMultiByteConversionCodePage(862); 物事を動かしました。

于 2011-05-19T12:11:17.647 に答える
2

D2009 以降では、通常、assignfile、read(ln)、write(ln) などの古い Pascal ファイル メソッドは Unicode をサポートしていないため、使用しない方がよいでしょう。そして、誰もが代わりにストリームを使用するようにアドバイスします。この場合、Unicode を理解しないため、実際には古い方法を使用した方がよい場合があります。

コードページを正しく設定している間、これを機能させるために必要だと思うのは、を使用してコンソールのコードページを設定することですSetConsoleCP. これは、Windows ユニットで宣言されている Windows API 呼び出しです。

于 2011-05-19T09:10:54.453 に答える