トップへ(mam-mam.net/)

コンソールアプリケーション(SJISからUTF-8へファイル変換) ~Delphiソースコード集

検索:

コンソールアプリケーション(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