こんばんは。
初めて投稿する陸と申します。
よろしくお願いします。
さて、表題のJISからSJISへの返還ですが、HSPの拡張DLLである「hspinet.dll」を使えばできると思います。
サンプルは、下記のような感じになります。
なお、下記のサンプルを実行する前に、JISの文字コードで「test01.txt」というファイルを作り、サンプルを実行する場所と同じ場所にファイルを置いてください。
また、下記のサンプルは、ファイルの存在チェックをしていないので、ファイルがない場合は、エラーとなります。
#include "hspinet.as"
exist "test01.txt"
sdim beforeencode, strsize + 1
notesel beforeencode
noteload "./test01.txt"
nkfcnv afterencode, beforeencode
notesel afterencode
notesave "./test02.txt"
dialog "処理が完了しました。"
end
上記のスクリプトの流れは、下記のような感じです。
1.「test01.txt」のサイズを取得して、バッファを確保。
2.「notesel」で変数の切り替えを行い、そこに「test01.txt」の内容を読み込み。
3.「hspinet.dll」の機能である「nkfcnv」で変数内のJIS文字コードをSJISに変換。
なお、パラメータは、
p1 : 変換後の文字列が代入される変数
p2 : 変換元の文字列が代入されている変数
が基本となりますが、オプションを指定することで好きな文字コードへ返還できます。
オプションを省略した場合は、自動的にSJISに変換されます。
4.最後に、「notesel」で、操作する変数を変換された文字列が入っている変数に変え、それを「test02.txt」に出力する。
こんな感じで行けると思うんですが、どうでしょうか。
なお、何か、おかしなところを発見された場合は、教えていただけると幸いです。
以上です。