コンソールアプリケーション(SJISからUTF-8へファイル変換) ~Delphiソースコード集
文字コードShift-JISファイルからUTF-8ファイルに変換生成するコンソールアプリケーションを作成する。
作成したプリケーションは、コマンドプロンプトから使用できます。
Delphiを起動して新規作成を行う
Delphiを起動し、ファイル→新規作成→その他・・・をクリックします。左ペインの「Delphi プロジェクト」を選択し、 右ペインの「コンソール アプリケーション(コマンドラインアプリ)」をクリックし「OK」ボタンをクリックします。
ソースコードを記述する
以下の赤字部分のソースコードを記述してください。program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, System.Classes; var stl:TStringList; begin //コンソールアプリケーション try { TODO -oUser -cConsole メイン : ここにコードを記述してください } if ParamCount=2 then //パラメータが2つの場合 begin if not FileExists(ParamStr(1)) then begin writeln('指定されたSJIS変換元ファイルが存在しません'); //DOSのエラーレベルを出力する場合 //コマンドプロンプトから「echo %eorrorlevel%」で 1 が表示される halt(1); end else begin //uses にSystem.Classesが必要 stl:=TStringList.Create; try try stl.LoadFromFile(ParamStr(1),TEncoding.ANSI); try //BOM無しに設定する場合 stl.WriteBOM:=False; //改行を\r\nにする場合 stl.LineBreak:=#13#10; stl.SaveToFile(ParamStr(2),TEncoding.UTF8); except Writeln('変換先UTF-8ファイルに上書きできない、又はファイル名が有効でありません'); //DOSのエラーレベルを出力する場合 //コマンドプロンプトから「echo %eorrorlevel%」で 2 が表示される Halt(2); end; except Writeln('指定されたShift-JIS変換元ファイルを開くことが出来ません'); //DOSのエラーレベルを出力する場合 //コマンドプロンプトから「echo %eorrorlevel%」で 3 が表示される Halt(3); end; finally stl.Free; end; end; end else begin //実行時パラメータが2つでない時、使い方を表示します Writeln('概要:'); Writeln(' Shift-JISファイルからUTF-8ファイルを変換生成します'); Writeln(' 既に変換先ファイルが存在している場合は上書きします'); Writeln('使い方'); Writeln(' Project1 変換元Shift-JISファイル名 変換先UTF-8ファイル名'); end; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
保存する
「ファイル」⇒「すべて保存(Ctrl+Shift+S)」を押します。ファイル名を
sjis2utf8.dproj
で保存します。
コンパイルする
「プロジェクト」⇒「sjis2utf8をコンパイル」をクリックします。実行してみる
Cドライブ直下に「test」フォルダを作成します。コンパイルして生成した「sjis2utf8.exe」ファイル(プロジェクトフォルダの win32\debug フォルダ内にあります)を c:\test フォルダにコピーします。
コマンドプロンプトを起動します。(スタートボタン⇒キーボードから「cmd」と入力し「コマンドプロンプト」をクリック)
コマンドプロンプトから以下を入力してカレントディレクトリを移動します。
cd /D c:\test
コマンドプロンプトから以下を入力して、Shift-JISのテキストファイル「a.txt」を作成します。
echo 日本語ファイルを作成します > a.txt
コマンドプロンプトから以下を入力して、Shift-JISのテキストファイル「a.txt」からUTF-8のファイルに変換します。
sjis2utf8.exe a.txt b.txt
コマンドプロンプトから以下を入力してUTF-8のファイル「b.txt」を表示してみます。UTF-8に変換されているので、文字化けしているはずです。
type b.txt