コラム / バイナリエディタ / 10



日付はさんだので、10で自分が何書くつもりだったか
忘れちゃったのですが。。。
読み込み部分作ってみますか。
TFileStreamですが、こいつは、
ファイルをストリーム として扱うためのクラスです。
ストリームというのは
ジェットストリームアターック
なんていえばいいのかな。
何か細長いものを想像してください。
リボンとか水とか流しそうめんとか。
あれだ。ストリーミング再生 の ストリーム。
とにかく、それ自体に句切れが無くて、
ただずーっとだらだら流れるような構造のことです。(多分。
んで、TFileStreamを使うと、
ファイルを、端っこから終わりまで、
ちまちま進みながら読み込めるよ、
ってこと。
早速、ファイルを開く の処理を作りましょう。
設計フォームから、メインメニュー>開く をクリックでエディターへ。

img1.png

んで、以下のコードを入れてくり。

img19.png

たまにはスキャン画像だけで。
自分でコード書くときのコツ?を説明します。
Delphiって他の言語に比べて、打ち込む文字数が多いような気がするんですが、
このエディターにまぁ少し便利な機能が付いてるので使ってみましょう。
この状態からスタート。

img5.png

Ctrl+J を押す

img6.png

I を押す

img7.png

Enter を押す

img9.png

Ctrl+Space を押す

img10.png

O を押す

img11.png

↓ を押す

img12.png

Enter を押す

img13.png

. を押す

img14.png

E を押す

img15.png

Enter を押す

img16.png

not て打つ(ごめんwwwここでショートカットおしまいwww

img17.png

カーソル移動

img18.png

exit; って打つ

img19.png

ね、入力少ないですよね。
これ使うクセつけると、プロパティーとか関数名とか、
調べなくても何があるか出てくるし、
スペル覚えなくても最初の文字ぐらいで入力できるし、
でなかなかスマートです。
Ctrl+Jは俺も最近知ったので使ってないけどww
んじゃぁソース説明
if then begin
end
は、条件が正しければ実行する、ですから、
not OpenDialog1.execute が正しければ実行する となります。
not は、右の値の真偽をひっくりかえす ですから、
OpenDialog1.execute が 偽 なら 実行する と 結果的になってます。
さて、OpenDialog1.executeですが、
これはプロパティーではなく関数です。
手続きではなく関数なので、値が返ってくるわけです。
真か偽のどちらか、つまり、論理型 ですね。
まぁ、わかりやすくいうと フラグですフラグ。フラグは折らないように。
executeを実行すると、これ、一瞬で判定されるわけじゃなく、
なんと、ダイアログボックスが出るという、豪華な関数なんですwwww
そして、ダイアログボックスが使われて閉じられるまで、
プログラムが止まりますwwww
wwwww・・・笑うところでもないか
さて、帰り値ですが、
ファイルを開く をするとTrue
×ボタンか 閉じる でファイルを選ばないで終わると False が返ります。
まとめると、
OpenDialog1.execute が 偽なら、
つまり、
ファイルが選ばれなかったら実行する
ってことなのでした。
実行する内容はexit;だけですね。
exit;は現在の手続きを抜けるので、
それ以降を無視して強制終了ってことですな。
逆に言うと、そこより下に行く場合は、
ファイルを選んだときだけ ってことであって、
まぁこの下にいよいよ開くプログラムをかくZE?