人気ブログランキング |

私の人生無駄ばかり…そんな日々。


by dugong156
カレンダー
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

EvMEMOのデータを

タスクトレイに常駐しておくメモ帳で、EvMEMOというのがあります。
ずっと作者さんのバージョンアップも止まっているようで(サイトはあるんですが)、今後もバージョンアップがどうなるかは分からないソフトではありますが、XPでもMeでも動作して軽いので両方に入れています。常駐させていても気にならないし、レジストリも弄らないし、気に入っているソフトの1つなんです。

レジストリを弄くることに神経質になり過ぎるのは、あまり良くないことなのかもしれませんが、削除したソフトの残骸が残っていることを知った時のショックって‥‥結構大きい‥‥。
レジストリを初めて見た時に、「いつダウンロードしたんだっけ?」と思うような遠い記憶の片隅に追いやられたようなソフトの残骸を見つけた日にゃぁあ~た。気ぃ狂ったみたいに削りまくりましたわ‥‥。

でも弄くらないソフトに限って、気に入って削除する必要がなかったりする――そういうもんだ、うん。TClock Lightなんかもレジストリを弄くっているけど、邪険にしないのは気に入って使っているからだったりする‥‥勝手なもんだなぁ私も。

EvMEMOのデータはDATファイルにまとめて保存されるんだけど、メモ帳などで開けるので、ちょっと整理しようかなと思い立ちました。
まだ全然動きに支障はないんですが、ちょっとそんな気になったので。もっと多くなった時に、やり方だけ考えといたら慌てなくていいかなと。Nami2000を入れたことでもありますし。

Nami2000には階層付きテキストにして読み込ませたらいいんだわ。取り敢えずテキストファイルにコピー。階層付きテキストにするのは簡単だから別にどってことないですね。

[DATA]より前は設定項目だから取っ払って、タブのインデックスになっているのが「#index=」で始まる行なので、これを「.」に置き換え。その下の折り返しの指定「#wrap=on」は全部取っ払って、「#title=」が各ページのタイトルだから、これを「..」に置き換え。最後のだけ「#title*=」だったからそれも置き換え。
これで階層付きテキスト出来上がり。(* ̄▽ ̄*)
一応、この操作をFaceStickのマクロにも登録しておいてと‥‥。

StringDivide()というのがあるんです……。指定した文字列を軸に左右に分割するという関数なんだけど、どうも上手くいきません。

[DATA]を軸にして、右側(後方ですな)を取り出すようにやってみると――どうしても先頭に、「DATA]」が入るのです‥‥。これって1文字だけなのかなぁ。

試しに、それより前に[aaa]などと入れてみたけど、ちゃんと[DATA]を探して動いているみたい。なのに、取っ払うのは1文字だけ‥‥か‥‥。うむ。
仕方がない。[DATA]の後ろが改行だから、その後で改行で分けて右側をGetしてみよう‥‥。うむ。でけたでけた♪

var
Value: string;


begin

SetForegroundWindow(TargetWindow);
VKCut;
Sleep(60);
Value := GetClipBord;
Sleep(60);

Value := StringDivide(Value,'[DATA]',-1);

//[DATA]で区切ろうとしても、境目はちゃんと[DATA]で探してくれるけど、
//[DATA]全部を区切り文字として取っ払ってはくれない。「DATA]」が残る。


Value := StringDivide(Value,'
',-1);
Value := TrimLeft(Value);
Value := StringReplace(Value,'#index=','.',0);
Value := StringReplace(Value,'#wrap=on' + '
',nil,0);
Value := StringReplace(Value,'#title=','..',0);
Value := StringReplace(Value,'#title*=','..',0);

SetClipBord(Value);
SetForegroundWindow(TargetWindow);
Sleep(60);
VKPaste;

end;

あとね、改行がたくさん固まって在る所を消したい気もする‥‥。
もし~
改行が2つ続く所があったら~
改行の数を1つ増やして~
それがあるか見てみる~
んで
あ~でもこれって‥‥3つがあって4つがなくて5つがあったら4つで止まっちゃう‥‥。
駄目だ‥‥orz....。
じゃぁ‥‥
10個くらいから下がってくのは?
10個を1個に
9個を1個に
8個を1個に……で……ん?
これって‥‥2個を1個にするっていうのを繰り返したらいいだけだったりして‥‥。
(▼▽▼;)そうだ‥‥った‥‥。
「改行のみの行を削除」っていうマクロ作ったよな‥‥な?うんうん。(自問自答)

Value := StringReplace(Value , '
' , '<$>' , 0);
Value := StringReplace(Value , ' < $ > ' , '<$>' , 0);
Sleep(60);
while Pos('<$><$>' , Value) > 0 do
Value := StringReplace(Value , '<$><$>' , '<$>' , 0);

Value := StringReplace(Value , '<$>' , '
' , 0);

これ付ければいいんじゃないか‥‥。
どうして置き換えてるのかというと、よく分かんない(爆)
改行を2つポンポンとやっちゃうと、上手く動いてくれなかったのです‥‥。(私の書き方が悪いだけかもしれないので、テキトーに聞き流すように)
で、置き換えするとなぜか半角スペースが入るので、これをまたちゃんと置き換え‥‥。
不思議なのは、2回目の置き換えの時はちゃんと置き換えてくれるんだよなぁ。これが一番分からないこと。

ほかにもやってみたの。
<と>を「+」で分けて書いたらどうなんだろうとか‥‥。違う文字だったらどうだろうとか‥‥。「{」にしてみるとか。でもやっぱり入っちゃう‥‥。どうやら必要以上に気の効くやつらしい。

じゃぁ‥‥テキストファイルで各Index名で分けるのはと‥‥。

そういえば、【notFat】っていうソフトを持ってたな‥‥。
前に顔文字をFaceStickのフォルダに入れるのに、1顔文字/ファイルにしなきゃいけなかったから、行で分けるのに使ったっけ‥‥。

#index=」を削除してそこで分けるという設定にして――そうすると、Indexの数だけのテキストファイルが出来るから――1行目をファイル名にする――【FlashMemo2】使っちゃえ。
お~~でけたでけた♪(* ̄▽ ̄*)

これって‥‥FaceStickのマクロで保存する所まで出来るのかな?
名前をつけて保存のショートカットキーのあるアプリケーションを起動させて?
ファイルの内容の1行目(:最初の改行まで)をファイル名にする?
一応、ファイル名に出来る文字列に変換する関数を使って?
保存のダイアログが開いたら、名前の所が選択されてるはずだから?
そのままその名前を入れて?
後はEnterキー?

う~~~~ん。出来そうな‥‥?ゆっくり考えよ~っと。
by dugong156 | 2006-04-03 17:27 | パソコンあれこれ