「クラスを作ってみよう」の編集履歴(バックアップ)一覧はこちら

クラスを作ってみよう」(2010/06/06 (日) 12:11:40) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[N88BASIC]]しか知らない人にとって[[AB>ActiveBasicってなぁに?]]を初めて触ったときは手も足も出ないというのが本音でしょう。 ABは[[構造化]]というものが[[サポート]]されているからです。 構造化はN88BASICのプログよりわかりやすいという人もいますが、実際は逆です。 構造化([[関数]]に分割すること)は上から順に読むことができず、かの[[Goto]]よりもたちが悪いです。 またClassはその上を行く難解で複雑でカオスで信者とかアンチとかが入り交じっている世界です。 ブログなどでオブジェクト指向とはなんて語ると、どこからともなく変な人が現れて荒らされてしまいます。 さてここではオブジェクト指向よりもクラスの作り方、使い方を説明します。 なおABのヘルプには必要なことが書いてなかったり、どうでもいいことに冗長な説明があったりして使いにくいのですが、 クラスに関してはそこそこまとまっているので、是非、是非、目を通してください。 カタカナ英語が多くてうんざりしますが、CHumanの動きが読めれば十分だと思います。 このクラスの動作が分からない人は遠慮なく質問してください。 質問は恥ではありません。馬鹿にするヤツのほうがよっぽど恥ずべき連中です。 クラスの書き方は超絶に簡単です。 似通ったデータなり関数をかき集めてクラスとして包んでやればいいのです。 #asciiart(blockquote){ Class ABFILE Private hF As HANDLE Public Function mOpen(filename As String) As Long If hF Then mClose() hF = CreateFile(StrPtr(filename), GENERIC_READ, 0, ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0) If hF = INVALID_HANDLE_VALUE Then hF = NULL End If mOpen = hF End Function Function mRead(buffer As VoidPtr, length As DWord) As DWord If hF = NULL Then Exit Function ReadFile(hF, buffer, length, VarPtr(mRead), ByVal 0) SetByte(buffer As *Byte + mRead, 0) End Function Function mClose() As Long If hF Then CloseHandle(hF) hF = NULL End Function End Class #N88BASIC Dim f As ABFILE Dim buf[555] As Byte f.mOpen("555.abp") While f.mRead(buf, 555) Print MakeStr(buf); Wend f.mClose() } これはファイルを開いて読んで閉じるだけのショボクラスです。 ですが、クラスにすることのメリットは幾つかあります。 [[グローバル変数]]になりがちはファイルハンドルを内含することができます。 また複数のファイルを開くときに楽ができます。 次回ではこのクラスを大幅に変更しちゃいます!

表示オプション

横に並べて表示:
変化行の前後のみ表示: