醒めよ!!
遣り度い事を遣るには
先ず
遣らなければ成らない事を遣る!
現に、其の事に気付いて、日々、其の『遣らなければ成らない事』に邁進して居る人間が
居る。寧ろ、其れを愉しんでさえ居る者も居る。然して、着実に、世の中が必要とする技
術を身に付けて行って居る者が居る。
併し、何が『遣らなければ成らない事』なのか解らない場合は、現実に対応出来る技術力
を持ち、現在と未来を見通せる人間の話を聴き、其れが何なのかを知る事で有る。然して
直ぐに実行し、途中で投げ出さない事で有る。
プログラミングは、最早、殆どの分野に於いて欠かす事の出来ないコンピュータを、より
効果的に使い熟す為の技術で、広く其の技術が必要とされて居ると共に、コンピュータを
必要とする分野の総ての業種に於いて、今後、必須と成る技術で有る。即ち、誰もが自分
の業務を効率良く行う為に、知って置かなければ成らない技術と成るのは、世の中の流れ
に鑑みると、
『必然』で有る。
プログラミングの有用性
VB 2005 ①基本的な Windows 操作さえ知って居れば、誰にでも出来るリネーム(名前の付け替え)作業でも、フ ァイル数が膨大だと、結構な時間を要する事に成る。 其処で、簡単なプログラムを組む事で、斯うした作業を、短時間で完了させる事が、此れからの実務に 於いて求められる。 此処では、プログラミングの有用性を知ると共に、此れからは、斯うした技術が、総ての分野に於いて 必須の物と成る事を自覚して欲しい。 プログラミングは、或る意味、時間的な制約に依り諦めて居た事を実現する『不可能を可能にする』道 具で有ると共に、其れ自体が、創作の歓びを伴う『愉しい物』でも有る。 其れを体感する為には、ゲーム製作が最適で有る。ゲームは、改良のアイディアが沸き易く、色々を手 を加える事に依り、プログラミング技術が向上する丈で無く、プログラミングが『愉しい物』でも有る 事を実感出来る筈で有る。 コントロールの種類 プロパティ プロパティの設定値 フォーム Name WakeUp StartPosition CenterScreen Text ウェイクアップ講座 - ファイルのリネーム ボタン Name btnStart Font MS明朝、太字、12 Text ファイル名変更 ボタン フォーム
オ
オ
ブ
ブ
ジ
ジ
ェ
ェ
ク
ク
ト
ト
・
・
プ
プ
ロ
ロ
パ
パ
テ
テ
ィ
ィ
一
一
覧
覧
プ
プ
ロ
ロ
グ
グ
ラ
ラ
ム
ム
の
の
概
概
要
要
Imports System.IO
Public Class WakeUp
' ボタン(ファイル名変更)がクリックされた時の処理
Private Sub btnStart _Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles btnStart.Click
' 起動パスの取得
Dim P As String = Application.StartupPath If Not P.EndsWith( "¥" ) Then P &= "¥" P &= "WakeUpData"
' ファイルの取得
Dim F ( ) As String = Directory.GetFiles( P ) ' ファイル名の変更 Dim S , D As String Dim C As Char For Each S In F D = Path.GetFileName( S ).Substring( 4, 3 ) C = D.Substring( 0, 1 ) Select Case C Case "a"c To "z"c
D = ( Convert.ToInt32( C ) – 87 ).ToString( "00" ) & D.Substring( 1, 2 ) Case Else
D = Integer.Parse( D ).ToString( "0000" ) End Select
D = P & "¥jpn_" & D & ".txt" File.Move( S, D ) Next ' メッセージの表示 MessageBox.Show( "ファイル名を変更しました。", "完了" ) End Sub End Class
プ
プ
ロ
ロ
グ
グ
ラ
ラ
ム
ム
リ
リ
ス
ス
ト
ト
デザイン画面で、ボタンをダ ブルクリックして、コード画 面を表示し、左記のコードを 入力する。 コーディング時の注意 Basic は、大文字と小文字を区別しない言語で有る。従って、コードは、大文字と小文字の孰れで 入力しても良いが、1 行分の入力が完了すると(他の行に移動すると)、其の語句が定義されて居る 形式に、自動的に変換される。 猶、Basic では、変数(上記の反転文字部分)は、慣習的に大文字を含める事が多いので、其の定 義(宣言)では、大文字で入力する。名前空間のインポート(Imports 文) 名前空間(Name Space)をインポートする。 Imports [エイリアス名 =] 名前空間名 ※ 但し、ブラケット(鉤括弧)内は省略可能で有る(通常省略する)。 .NET Framework で提供される様々なクラスは、名前の衝突を避ける為、名前空間と謂うブ ロックで分類されて居る。従って、クラス名は、正式には、完全修飾名(名前空間名+クラ ス名)で指定しなければ成らない。 例えば、ディレクトリの情報や操作を提供するDirectory クラスや、ファイルやディレクト リのパス情報を提供するPath クラスは、System.IO 名前空間に属して居るので、正式には 下記の様に記述する必要が有る。 System.IO.Directory System.IO.Path 併し、名前空間をインポートして置けば、名前空間名を省略する事が出来る(但し、複数の 名前空間をインポートして、名前の衝突が起こる場合、即ち、同名のクラスやメソッド等が 有る場合には、明確に識別する為に、名前空間名も記述しなければ成らない)。 Application クラスの StartupPath プロパティ アプリケーションを開始した実行可能ファイルのパスを取得する。 String 型変数 = Application.StartupPath 取得したパス名にファイル名は含まれない。亦、通常は、パス名の末尾に¥記号(ディレク トリやファイルを区切る区切記号)は含まれない。併し、稀に¥記号が含まれる場合も有る ので、下記の様に、末尾の検証を行う事が望ましい。
Dim P As String = Application.StartupPath If Not P.EndsWith( "¥" ) Then P &= "¥"
上記の様に処理して置けば、孰れの場合も、後続のディレクトリやファイルと正しく結合す る事が出来る。 Directory クラスの GetFiles メソッド 指定したディレクトリに格納されて居るファイル名を返す。 String 型配列 = Directory.GetFiles( ディレクトリ名 ) 取得したファイル名には完全パスが含まれる。 Path クラスの GetFileName メソッド 指定したパス文字列のファイル名を返す。 String 型変数 = Path.GetFileName( パス文字列 ) 取得したファイル名には拡張子も含まれる。 機 能 解 説 書 式 機 能 解 説 書 式 機 能 解 説 書 式 機 能 解 説 書 式
File クラスの Move メソッド 指定したファイルを新しい場所に移動する。 File.Move( 移動するファイル名, ファイルの新しいパス ) ファイルの新しいパスに新しいファイル名を指定する事が出来るので、ファイルのリネーム に使用する事が出来る。 String クラスの Substring メソッド 文字列から部分文字列を返す。 String 型変数 = 文字列.Substring( 開始位置, 取得文字数 ) 開始位置は0 スタートのインデックスで指定する。 Convert クラスの ToInt32 メソッド 引数で指定したデータを32 ビット符号付き整数に変換する。 Integer 型変数 = Convert.ToInt32( 引数 ) 引数にChar 型データ(Unicode 文字)を指定した場合、其の文字の文字コードが得られる。 因みに、文字a の文字コードは 97 で有る。 Integer(Int32)クラスの Parse メソッド 引数で指定した文字列を32 ビット符号付き整数に変換する。 Integer 型変数 = Integer.Parse( 文字列 ) 引数に指定した文字列が、32 ビット符号付き整数に変換出来ない場合、例外が発生する。 Integer(Int32)クラスの ToString メソッド 32 ビット符号付き整数を文字列に変換する。
String 型変数 = Integer 型数値.ToString( 書式 )
書式を省略すると、標準の書式で文字列化される。0 プレースホルダを指定すると、指定し た桁数に満たない場合は、指定した桁数に成る様に0 を補充する。 機 能 解 説 書 式 機 能 解 説 書 式 機 能 解 説 書 式 機 能 解 説 書 式 機 能 解 説 書 式
代入文(Let 文) 左辺の変数やオブジェクトのプロパティに、右辺の式の値を代入する。 Let 変数名 = 式 ※ 但し、Let は省略可能で(通常省略する)、変数名 = 式と記述する事が出来る。 下記の様な式を代入文と呼ぶ。此処で使用して居る=(イコール)は、数学の等号の様に左 辺と右辺が等しいと謂う意味では無く、右辺の計算式の値を左辺の変数等に代入すると謂う 意味で有る。 X = 10 = 10 A = X + Y = + 此の代入文の右辺には数値、変数、式を記述する事が出来るが、右辺には1個の変数、又は オブジェクトのプロパティしか記述する事が出来ない。例えば、X + Y = A と謂う様な記述 は出来ない。猶、単独の変数や定数も、広い意味での式と看做される。 条件分岐(Select 文) 評価式の値に従い、複数のステートメントブロックの中の孰れかを実行するステートメント Select Case 評価式 Case 該当式1 評価式が該当式1に該当する場合の処理 Case 該当式2 評価式が該当式2に該当する場合の処理 … Case Else 上記孰れの該当式にも該当しない場合の処理 End Select 評価式の値に従い、複数のステートメントブロックの中の孰れかを実行する。Select 文では 評価式が1回だけ評価され、其の値と各Case 節の値が比較され、一致した場合、其の Case 節に対応するステートメントブロックが実行される。 該当式には、1個以上の値リストを指定する。複数の値を指定する場合には、値をカンマ(,)で区切 る。亦、キーワードIs と To を使用する事も出来る。 評価式が複数の該当式と一致した場合には、最初に一致したCase 節のステートメントブロックが実行 される。亦、孰れの該当式とも一致しない場合は、Else Case 節(省略可能)が実行される。 機 能 解 説 書 式 X A X 10 Y 20 左辺の値(10)を代入 左辺の値(10 + 20)を代入 機 能 書 式 解 説
ループ処理(For Each … Next 文) グループの各要素に対して一連のステートメントを繰り返し実行するステートメント For Each 要素 In グループ 一連の処理 Next 配列やコレクション(オブジェクトの集合)の各要素の総てに対して、一連のステートメン トを繰り返し実行する。 グループには、オブジェクトコレクションや配列、又は、其等を参照するオブジェクト変数を指定し、 要素には、コレクションや配列から各要素を取り出して格納する変数を指定する。 配列やグループのコレクションに要素が1つでも存在する場合、For Each...Next ループが始まる。一 旦、ループが開始されると、グループの最初の要素に対してステートメントが実行される。然して、グ ループの中に要素が有る限り、ループ内のステートメントは、各要素に対して実行を続ける。要素が無 く成れば、ループを終了し、Next ステートメントの次のステートメントに実行が移る。 ループから強制脱出する方法と仕て、ループ内の任意の位置に任意の数のExit For ステートメントを記 述する事が出来る。通常、Exit For ステートメントは、何等かの条件を評価した後で使用する。例えば If ... Then ... Else ステートメントを評価した後で、制御を Next ステートメントの次のステートメント に直ちに移動する場合に利用される。
For Each...Next ループは、入れ子構造(ネスティング)に出来る。即ち、For Each...Next ループの内 部に別のFor Each...Next ループを入れる事が出来る。但し、夫々れのループの要素を表わす変数には 一意の変数を指定する必要が有る。 文字列の結合(&演算子) 文字列を結合するする。 String 型変数 = 文字列 & 文字列 文字列と文字列を結合するには、&演算子を使用する。猶、+演算子でも、文字列の結合は 出来るが、文字列の結合と謂う意味では、&演算子を用いる事が望ましい。
例えば、"ABC" と "XYZ" と謂う文字列を&演算子で結合すると、"ABCXYZ" と謂う文字 列が生成される。猶、文字列は、ダブルコーテーションでクォートする。 機 能 書 式 解 説 機 能 解 説 書 式 ヘルプの利用 調べたい語句の上にキャレット(I カーソル)を当て、F1 キーを押すとヘルプが表示される。解ら ない語句が有ると、先ず、ヘルプで調べる癖を付けて欲しい。ヘルプには、意味や書式丈で無くコ ード例も記載されて居るので、此れに親しむ事が、上達への道で有る。