見出し画像

何だって最初が肝心

野蛮なプログラミング、第11回の開始です。

どうも「今日のIT小ネタ」や「今日のIT界隈」が重くなり過ぎるので、簡潔・端的を心掛けて、「今日の本題」重視でいきますよ。

【前回

◆今日の必須ワード

「改行コード」「Shift-Jis (SJIS)」(ニアイコール「ANSI」)「Unicode (UTF-7,8,16...)」「CR+LF」「LF」「ディストリビューション」


◆今日の進捗

やっぱメインはこれですかねえ……。

取り敢えず、動いたからそれでいっかという発想は、現場では結構重要です。意味良く分かんないけど、まあ動いたからこのままにしておくかという妥協が必要な場面は多いと思います。

が、今の自分のように、教える側にも回ろうとすると、そのままじゃ駄目なんだよなあ。

文字コードの問題は、かなり近い将来に、本格的に取り上げざるを得ないという感じでしょうか。下記のIT小ネタにも少し関連してきます。


◆今日のIT小ネタ:半角/全角

半角スペースと全角スペースを、常に意識しましょう。「Eclipse 4.8」でも「Visual Stadio 2008」でも、サクラや秀丸エディタでも、これを明示的に表現する事が出来ます。見え方は、それぞれですが。

秀丸エディタだとこんな具合です。

画像1

画像2

上記のように、改行コードや、タブ文字も、常に意識するようにしましょう。すんげえ、色々問題が発生するんだから、これで。改行コードは「Shift-Jis(ニアイコールANSI)」だと「CR+LF」、「Unicode」系は「LF」のみです。

「Shift-Jis」 や「Unicode」は、必須ワードに挙げてますが、詳細を正確に理解せよとはいいません。おれが必死で勉強してるとこだし。そういうモノがあるという事だけ。特に略語が出てきた時にすぐ略さない言葉を思い出せるように。「Unicode」系は、さらに細分化され、「UTF-16」「UTF-8」「UTF-7」等ありまが、ビジネスの現場では、今は「UTF-8」が主流です。


◆今日のIT界隈:何故WindowsでLinux?

このニュースよく分からなかったんですよ。5月アップデートが、少なくとも私の環境には、まだ来てないのは別としても。

「WSL2」というモノ自体の意味や目的が。何でWindows10上で、Linux動かす必要があるんだろう。なので、ちょっと興味を持って、「WSL2」とは何ぞやというのを調べてみました。

基本というか、出来る事は、Oracle社が提供している「Virtual Box」をインストールして、そこでLinux系のOSを動かすのに似ている。

で「WSL2」っての、上の「Windowsアップデート:WSL2が正式版」の記事を読む限り、出来損ないの「Virtual Box」にしかみえない。この「Virtual Box」ってのは、タダアプリなのが信じられないくらい、色々なOSに対応しています。それに比較して「WSL2」が対応しているOSときたら「Debian系Linux」ばっかじゃん。

何気に「Debian」と書いてしまいましたが、これEclipseでC++を開発する際、利用するGCC(GNU)、つまり「OSとかアプリは須らくタダであるべし教」が面倒みてるLinuxです。いや悪口じゃないですよ、ただそういう思想性が強いという事を「教」という言葉で表現しました。元祖というかメインはC/C++のGCCですが、私がインストールにやたら苦労した「GnuCOBOL」(コボルのコンパイラー)やら、Linuxのディストリビューションまで作ってるわけです。

前回まで「RHEL」と「CentOS」の話を書いてきました。「RHEL系Linux」というのが、上記の「Debian系Linux」と対置されるLinuxです。2大Linux系統と言っていい。で、企業がサーバー用途で採用するのは「RHEL系」一色なんですね。

「Debian系Linux」というのは、サーバー用途より、むしろデスクトップ用途、つまり貴方がWindowsやiOSのパソコンを使っているように使うOSである事を重視しているという。

あっそうそう、「ディストリビューション」という言葉、今まであえて使ってませんでしたが、これからは普通に使います。丁度、上記2大Linuxに説明にもなっているので、下記を一読しておくといいと思います。

で、「Debian系Linux」はゲームに強いんですって。多くのディストリビューションが、フロントのGUIに採用している「GNOME」を含めて。代表的なのは、本家の「Debian GNU/Linux」に加えて、「Ubuntu」「Linux Mint」 あたりでしょうか。

Microsoftはビジネス用途メインではありますが、デスクトップOSとして、 エンターテインメント、特にゲームも昔から重視しています。XBoxに代表されるように。「WSL2」は、そういう流れだったという。

今回からは、簡潔・端的と書きながら、また長くなってしまった(泣)。


◆今日の本題:INIファイルへのアクセス(仕様編)

さて、ここで宿題です。

プログラムを作ってみましょう。C++でも、VBAでも、Javaでも、Pythonでも構いません。「いや私まだ何も作れないから! IF文とか分からないし」とか言ってはいけません。とにかく調べて作る! 実地に勝る勉強方法はないんです。

【仕様】

プログラムより先に、まずINIファイルを作ります。

[assignment]
Flag=ON
Output01=Hello World !!!
Output02=Goodbye World !!!

の4行を、空のエディタに貼って、取り合えずどこかに保存してください。

貴方の作るプログラムが「Test01」であれば「Test01.ini」と、プログラム名+「.ini」とファイル名をつけます。

上記の「Flag」が「ON」であれば、「Output01」の「Hello World !!!」をWin32APIを使って画面表示します。「ON」以外であれば、「Output02」の「Goodbye World !!!」を表示します。こんな具合。

画像3

あくまで、INIファイルに書いてあるモノを読み込んで、出力する事。つまりプログラムを何も変えずに、INIファイルの中身だけを書き換えれば、例えば「Hello World !!!」を「What's World ???」にしたら、表示されるのも後者にならなくちゃいけません。

大体、どんな環境でも、「Hello World」表示のプログラムは最初にやります。つまりネットにガイドはいくらでもある。

そこにINIファイルからの読み込みと、画面表示を加えるだけです。

INIファイルアクセスは「GetPrivateProfileString」というWindowsAPIを使います。画面表示は「MessageBox」というWindowsAPIを使います。

例えば、貴方が今、「Excel+VBA」で作ろうとしているなら、「VBA GetPrivateProfileString」で検索すれば、いくらでも使い方は出てきます。

WindowsAPIをどうすれば、各環境で使えるようにするかは、下記回の有料部分で説明しています(100円ぽっきり)。

では、今週はここまで。

えっ有料の解説部分は? ……だってだって、先生もまだ宿題終わってないんだもん!

次回】



サポートよろしく!