【なでしこ】文字コード・改行コードのオトモに。

20:25

コーディング中

アプリ開発・システム開発をしているとデータ連携の際に文字コードや改行コードが問題になることが結構あります。
きっと、経験されたことのある方も多いでしょう。

私の場合、FileMakerというデータベースソフトで開発を行うことが多いのですが、最近、この問題に直面する機会が多くなりました(ー_ー) データ出力の方法を切り替えたことが起因しているのですが。。。

FileMakerからデータ出力を行う場合、【レコードのエクスポート】というステップを利用することが多いですが、データの出力形式によっては【フィールド内容のエクスポート】というステップを利用する場合があります。こいつがある意味では厄介なんですよ(´・ω・`)

【レコードのエクスポート】ステップの場合、出力時の文字コードを指定することが可能です。その一方で、【フィールド内容のエクスポート】の場合、該当フィールドの内容がテキストだと【UTF-16】フォーマットで出力されるのです!

何故こうなった!?
テキストフィールドが指定されている場合は文字コードを選択できるようにしてくれても良かったのではないか!?

と、まぁ私の場合は嘆くことが多いのですが、きっとメリットもあるのですよね。きっと。。。

SPONSORED LINKS
日本語プログラム言語「なでしこ」公式バイブル
テキストエディタなどでチマチマと変換していくのも億劫なので(この前までチマチマと作業していましたが)、【日本語プログラミング言語:なでしこ】というプログラミングソフトで文字コード・改行コードを変換するアプリを作成してみました。気が向いた方はどうぞ。

■ソースコード:
// ------------------------------------------------------------------
//  文字コード・改行コード変換
// ------------------------------------------------------------------
// 全体設定
!母艦設計 = 『母艦の可視=オフ』
!APP_NAME = 『Converter』
!APP_VERSION = 『1.0』

経過ダイアログ = オフ
// ------------------------------------------------------------------
// 母艦設定
母艦について
 タイトル = APP_NAME
 幅 = 100
 高さ = 100
 スタイル = 枠固定
 オフへ最大化ボタン有効変更

母艦を中央移動。
// ------------------------------------------------------------------
// 不要なコマンドライン引数の削除
もし、(コマンドライン[1]が『-debug::*』にワイルドカード一致)ならば、
 コマンドライン[1]に(空)を代入。

// 変数の定義
loadFileとは文字列。
saveFileとは文字列。
newCodeとは文字列。
lineFeedとは文字列。
sleepTimeとは数値。

loadFile = コマンドライン[1]
saveFile = コマンドライン[2]
もし、(saveFile == (空))ならば、
 saveFile = loadFile
newCode = コマンドライン[3]
もし、(newCode == (空))ならば、
 newCode = 『Shift_JIS』
lineFeed = コマンドライン[4]
もし、(lineFeed == (空))ならば、
 lineFeed = 『\r\n』
// ------------------------------------------------------------------
// 文字コードの変換処理
エラー無視
sleepTime = 1
loadData = loadFileを開く

「{sleepTime}」秒待つ。

もし、(loadData == (空))ならば、
 終わる。

saveDataとは文字列。
currentCode = loadDataを文字コード調査
もし、(currentCode == newCode)ならば、
 saveData = loadData
違えば、
 saveData = loadDataをcurrentCodeからnewCodeへ文字コード変換

saveData = saveDataの『 』を『\n』へ正規表現置換。
saveData = saveDataの『\r』を『\n』へ正規表現置換。
saveData = saveDataの(改行)を『\n』へ正規表現置換。
saveData = saveDataの『\n』をlineFeedへ正規表現置換。
saveDataをsaveFileに保存。

終わる。
// ------------------------------------------------------------------

■使用方法:
実行ファイル作成後、コマンドライン引数を渡して起動します。

○引数1: 読込ファイル名
 コード変換を行いたいファイルをフルパスで指定します。
○引数2: 保存ファイル名(省略可)
 コード変換後、ファイル名を変えて保存したい(上書きしたくない)場合にフルパスで指定します。
 省略した場合、読込ファイルが上書きされます。
○引数3: 文字コード(省略可)
 変換したい文字コードを指定します。省略した場合、【Shift_JIS】として設定されます。
○引数4: 改行コード(省略可)
 変換したい改行コードを指定します。省略した場合、【CRLF】として設定されます。

SPONSORED LINKS

You Might Also Like

0 コメント

Popular Posts

Pickup Post

【Food】POTASTAって知ってる?

【POTASTA】というお店を知っていますか? なんと、一日に必要な緑黄色野菜に含まれる栄養素のうち、およそ半分を摂れるというサンドイッチを販売されているお店です。代々木上原に店舗があります。一応、住所は渋谷区ということになりますが、とてもじゃないですがアクセスはあまり良...

nek-tar.net

Subscribe