MacOSXのLazarusプログラムから、Linuxコマンドでsjisファイルを変換し、プログラムから開く。 - ITservice雄飛


Lazarus PC

MacOSXのLazarusプログラムから、Linuxコマンドでsjisファイルを変換し、プログラムから開く。

投稿日:2014年5月24日 更新日:

どうも、今晩は。
少しだけお久しぶりです。
脇保です。
 
 
さて、もう夜中ですが、今日は土曜日です。
色々作業してました。
で、大進展です。
sjis(Ansi)フォーマットの文章を、
自作ブログラムから開く事に成功しました。
 
作ってみた結果、これは大変便利ですね。
応用次第で色々なフォーマットに対応出来ます。
 
では、報告。
 
土曜日になり、
時間も出来たので色々いじりながら、
作業を開始しました。
 
どんな方法がいいか?
勿論、Linuxコマンドを呼び出して、
そこから変換してしまう方法です。
 
そこで、白羽の矢をたてたのが、nkfなるコマンド。
 
早速作業開始。
が、シェルコマンドを起動させる事が出来ない。
lazarus wikiのサンプルを良く見てみる。
・・・。
なるほど、オプションが必要な訳ね。
 
今度はオプションを指定して、無事シェルプログラムを起動、
ファイルを作業フォルダにコピー後、
ファイルを変換し、読み込む・・・、
 
のだが、ちっとも変換されない。
 
何故??
 
ここで大きく時間を取られるも、
試しに、シェルから、手打ちでコマンドを実行、
・・・しようとしたら、、、
 
そんなコマンド、macに入ってないよと怒られたTT。
 
そう、Macには、どうもnkfコマンドは標準では入っていないらしい。
そこで、apt-getで、取得しようとするも、
それも、、、入っていない。。。
 
更に考えてみると、使ってくれるだろうユーザーさんに、
このプログラムを実行する前に、
このシェルコマンドをインストールしてね、なんて、
さすがにそれは、回避すべきではなかろうか、とも思う訳で、
更には、その前にインストールプログラムもインストールしなくてはいけないという、
この不便さ・・・orz。
 
なので、有無を言わさずnkfコマンドは却下。
時間とられたぞ。
 
 
そこで、他のコマンドは無いか、ググってみる。
 
あるじゃないですか、iconvなるコマンドが。
 
 
基本的には、使い方はほぼ同じ。
変換元フォーマットと、変換先フォーマットを指定して、入力ファイルを指定、
パイプ処理でファイルを出力させれば、ok。
 
で、ここまで来て、piconvなる、
より良いコマンドがmacにあると判り、
こちらを使用する事で決定。
 
 
さて、実行。。。
しかし。。。
 
何度やっても、開けない。
ファイル自体は存在するものの、
空のファイルとして開かれる。
 
そこで、プログラム終了後、一時出力された、変換後ファイルを開いてみる。
問題なく、utf8に変換されていて、開く事が出来た。
 
なるほど、変換し終わる前にファイルをオープンしてたのね。
 
そこで、
sleepコマンドを使って、
sleep(100);
を実行、処理待ちをしてからファイルを開く。
 
問題なく開けた。
 
しかし、実際のプログラムでこれはマズい。
短いファイルなら良いが、でかいファイルを開いたらどうするのか?
 
TProcessを調べてみる。
 
すると、あるじゃないですか、runningなる、
bool値(boolean)の参照専用のものが。
 
早速、これを組んでみる。
 
最初は、notを前に入れてみたが、
こうした所、全く白紙のファイルがオープンされた。
 
処理が完了したら、True(真)を返すのね。
 
で、notを外して実行すると、、、
 
ぴたりと開けました(^^)。
 
ディスクに書き込む分、ちょっと処理は遅いし、
もうちょっとスマートな方法がありそうな気もするけど、
取り敢えず、まあ、良いかなと。
 
で、以下はそのサンプル。
 
 
 
 
 

-Lazarus, PC

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Ubuntu(Xubuntu)に、MySQLとPostgreSQLをインストールする。(MySQL編)

おはようございます、脇保です。 朝っぱらから記事を書いております。 今回は、MySQLと、PostgreSQLをUbuntu(Xubuntu)にインストールしてみました。 データベース、あると何かと便 …

no image

Lazarusとか、自作エディタとか。

おはようございます。 脇保です。 ここ最近、首尾一貫性のない投稿が続いております。 知識のつまみ食いが顕著な今日この頃・・・。 MySQL&PostgeSQLとか、 enchant.jsとか、 …

no image

MSXMLS2.ServerXMLHTTPを使って、CoinCheckAPIを叩いてみる。

コインチェックAPIを叩く、MSXML2.ServerXMLHTTPコマンドを書いてみました。

今の課題は、独自実装でSHA256の暗 …

メインPC再構築!

こんにちは、脇保です。 気が付いたら、あけましておめでとうからの、1月も中盤です。 さて、今日の話題は。 先月(前年末)、資金難でメインPCをバラシて、 売却するという暴挙に出まして。 で、案の定、不 …

no image

Felica(Pasori)とエクセル(とDelphiとかで)で自動勤怠アプリを作て見た1

こんばんは、脇保です。  今回は表題の通りです。 以上のものを作ってました。 先ず目的は、アナログ的にタイムレコーダーで記録している、勤怠を自動化したいと。  仕様とかは毎度の如く大雑把で、 1.Fe …

Translate »