2014年11月30日日曜日

突然、C#をいじくりだしてみる。


 カッとなってやってしまった。


 いや、お勤めで事務仕事してるんだけど、

 どうにもなんだか効率的じゃない。

 で、効率化の方策を探してたんだけど、

 時々ここに登場する友人Y氏に、

「だったらアプリ書いちゃったら? 軽くて早いよ」

 といわれ、

 うっそー、そんなの無理ー!

 と思ってたけど、

 Visual Studio Expressを使って、C#でWindowsのフォームアプリを作ってしまえばいいのか、

 となり、

 いつもの「進んで泥沼に落ちる」のパターンで、

 いきなりインストールして、始めてしまいました。

 果たしてプログラミング、できるかな。



 といいながら、Visual Studioはすごく簡単。

 C#でWindowsフォームアプリのプロジェクトを作り始めると、

 いきなりフォーム画面が出てくる。

 そこにボタンをポイと置いて、ダブルクリックすると、

 もう一つのcsファイルの画面にコードが書き込まれる。


 private void button1_Click(object sender, EventArgs e)
  {

  }

 なんてのがいきなりボコンとできる。

 そのなかに色々と放り込んで( MessageBox.Show("なんとかかんとか"); みたいなのを入れて始めた)、

 F5キーを押すと、デバッグ開始。

 うまくいくと、

 おお! デザインしたフォームが表示される!

 しかも、ボタンを押すと、{}の中に書いたものが動く!

 メッセージボックスが出てきて、""内の「なんとかかんとか」が表示される。

 すげええ!


 そこからいろいろやってみる。

 labelをフォームにおいて、DateTime.Nowで現在の日付や時計を表示したり。

 日付も、せっかくだからSubstringとかintを使って曜日を取得したり、

 textboxを置いて、文字を入力してみたり、

 StreamReaderを使ってテキストボックスにテキストファイルを読み込んだり、

 StreamWriterを使ってその読み込んだテキストファイルをテキストボックス内でいじくったのを上書きしたり、

 FileStreamを使ってファイルを消してみたり。

 SystemIOのFileを使ってファイルの作成更新日付時刻を取得してlabelに表示したり、

 と、やってみる。


 やってくと、簡単な「;」とか「}」のつけ忘れはVisual Studioが教えてくれる。

 ただ、



 名前 使いたい変数名 は現在のコンテクスト内に存在しません。



 に悩む。これがどうにも解決できたり出来なかったり。

 とくに、実はここまでググって見つけた作例のソースをコピペして、ちょちょい書き換えてるだけなので、

 自分でやってる感がいまいち。すごくストレスがたまる。





 それでもここまで出来た。深夜2時にはじめて、7時にここで力尽きて寝る。

 でも、使うファイル名とかで固定したいものが固定できず、エラーでコンテキスト内に存在しないが何度も出るので、それぞれのメソッド内に定義を入れてみたりしてた。

 それで何とか動いてるけど、すごく気持ち悪い。ストレス極大。弱音ハク。


 で、後でわかった。一眠りして昼ごろ起きてやってみた。(シフト休で連休なのね)


 あ、これ、ネームスペースとクラスとメソッドの関係なんだなと。

 クラスとメソッドは違うんだぞと。

 クラスで別にして、staticで設定してやるとイケるんじゃないかと。

 で、やってみたら、そのとおりでした。


 メソッドもPublicとPrivateは違うし、またなんでよくPublic voidのvoidを使ってんのかとか、

 そういうことがわかりだしたら、突然サクサク作れ始めた。




 ザックリ。25時間ほど、途中9時間ほど睡眠を入れて、なんとか自分が何を作っているのか、何をどういう方向に作っていくのか、そういうことが少しわかるようになりました。



 ちなみに、このフォームアプリ、「発行」すればインストールして自分のPCで他のアプリと同じように動くの。

 タイル画面に自分の作ったプロジェクト名のプログラムが表示されて、そこからプログラムを起動できてすごくびっくり。



 いや、プログラム自身はBASICで大昔、今から30年ぐらい前、小中学校の頃にMSX BASICでちょこっと組んで、あまりの遅さに泣きつつ、ドッド絵エディタとか作ってたのね。

 そのあとテキストデータを表示するために漢字コードの処理するのがあまりにも遅くて、仕方ないのでマシン語に手を出して、しかもわけわからんまま、今度はテキスト、文章を書く方に行っちゃったのね。(MSX BASICは漢字対応してなかったのね、あのころ)

 はじめはゲームを作ろう! というつもりでやってた。で、プログラムから作ろうと思ってたけど、

 そのためにはシナリオだなと思い始め、

 プログラムを効率よく作るツールがその頃すごく高くて、

 結局シナリオと絵だけ頑張るようになっちゃったのね。

 で、シナリオが小説になっちゃって、本になったのね。



 でも、こうやってまたプログラムがいろいろ作れそうになると、やっぱり楽しいのね。


 もともとは他の仕事で使ってるデータをいい感じに自動処理しようと思って、

 既成品のデータベースソフトとか使おうと思ってたんだけど、

 これでなんかうまくいろいろ作れんかなと。データベースソフトまで使わんでもいいこととかは。


 原理的には作れるはずなのね。

 実際、自分の小説仕事のデータ読んじゃって、すげー、読める、と思ったら、

 その隣に自分の置いたデータ消去ボタンがあって、ゾッとしたり。それ押したら本当に消えちゃうからねえ。怖い。


 でも、これはこれですごく面白いし、いろいろやってみようと思えるのね。


 というわけで、これから地味に色々作っていこうと思うのでした。




 ちなみにプロジェクトの保存とか、そういうのもよくわからんかったのもしんどかった。

 あとで、リポジトリとか少しわかって、結局GitとかGitHubとかを使い出して、「ふっかつのじゅもん」になってくれていろいろ実験しやすくなった。


 まだ理解というには不十分だけど、作りながら理解していくという感じで。


「なければ作ればいいじゃん」というのがうちだけど、

 作れるのって、面白いのです。他人の作ったものの難易度と苦労もわかるし。

0 件のコメント:

コメントを投稿