LastUpdate: 2022/07/03 12:14:24

戻る

20041217 属性って何?
20050125-1 コーディング規約
20050207-1 とにかくDBのアクセスをしてみよう
20050531 Visual Basic 6.0 以前から、Visual Basic .NET に移行するためのテクニカル情報
20060713 デバッグクラス
20100801_クリップボードへテキストを設定する
20101013_標準入出力への出力
20101013_Try_Catch_の基本系_
20190728 スコープのまとめ
20190812 クラスの上についている< >とか何?
20220703 よくあるUTFのSJIS換算切り出し
 


20041217 属性って何?

属性とは、クラス、メソッドなど、プログラミングに使用するさまざまな構成要素に付加できる情報といえる。

属性の情報は、ソース・コード上に記述することが可能で、さまざまなプログラムからこの情報が参照できる。VB 6に限らず、これまでのプログラム言語ではあまり見かけない新しいタイプの機能だが、活用できるようになると効果は絶大である。固定長文字列など、一部の機能は、この属性を通じて指定することになるので、属性の使い方を把握しておこう。

http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_14/vbnet2_14_01.html


20050125-1 コーディング規約

MSDNヘルプ
Visual Basic 言語の概念 プログラム構造とコード規則
ms-help://MS.MSDNQTR.2003FEB.1041/vbcn7/html/vbconProgrammingGuidelinesOverview.htm


20050207-1 とにかくDBのアクセスをしてみよう

ASP.NETで、アクセスコントロール部品を使用してでも良いから、やってみる


20050531 Visual Basic 6.0 以前から、Visual Basic .NET に移行するためのテクニカル情報

VB マイグレーション Tips
Visual Basic 6.0 以前から、Visual Basic .NET に移行するためのテクニカル情報

http://www.microsoft.com/japan/msdn/vbasic/migration/tips/

Visual Basic 6.0 ユーザー向けのヘルプ    2011/09/01
http://msdn.microsoft.com/ja-jp/library/kehz1dz1(v=VS.90).aspx


20060713 デバッグクラス

http://support.microsoft.com/kb/313417/ja
デバッグクラス

Trace クラスと Debug クラスは同じアプリケーション内で、個別または同時に使用できます。Debug ソリューション構成のプロジェクトでは、Trace クラスの出力と Debug クラスの出力は両方ともアクティブなため、すべての Listener オブジェクトに対して両方のクラスからの出力が生成されます。これに対して、Release ソリューション構成のプロジェクトでは、Trace クラスの出力のみ生成されます。Debug クラスのメソッドによる呼び出しはすべて無視されます。

要は、デバッグビルド時でトレースメッセージを出力する時は、Debug を使用すれば良いみたいですね


20100801 クリップボードへテキストを設定する

VB
Clipboard.SetDataObject(CmdArgs(0), True)

これを見本にして、ファイル名のフルパスを、クリップボードに設定するアプリケーションを応用して作成してみた

VS2008 vb Express版

visualstudio_dotnet_VB/20100801_fileNamePickker.zip


20101013 標準入出力への出力

Console.WriteLine("start")

20101013 Try Catch の基本系

Module Module1

    Sub Main()

        Console.WriteLine("start")
        Try
            Console.WriteLine("in try")
            Exit Try
            Console.WriteLine("in try end")
        Catch ex As Exception
            Console.WriteLine("excption")
        Finally
            Console.WriteLine("finally")
        End Try
        Console.WriteLine("end")

    End Sub

End Module
Try内には、Catch または、Finallyが 必ずなくてはならない。無いとコンパイルエラーになる


20190728 スコープのまとめ

  自分のプロジェクト内 異なるプロジェクト  
  自分のクラス 派生クラス 他クラス 派生クラス 他クラス  
Public 制限なく、どこからでも見える
Protected Friend × 自分のプロジェクト、または、派生クラスから見える
Protected × × 派生クラスから見える
Friend × × 自分のプロジェクトからなら見える
Private × × × × 同一クラス内のみ


スコープが省略された場合
Class、InterfaceはFriend扱い。内部メンバはPrivate扱いとなる

参考

https://smdn.jp/programming/vb.net/accessibility/


20190812 クラスの上についている< >とか何?

「属性」だそうです。

あらかじめ用意されたものもあれば、自分でも作成できるそうな。


20220703 よくあるUTFのSJIS換算切り出し




Public Class SJISHelper

    Private _UTFString As String

    Private SJISEncoder As System.Text.Encoding = System.Text.Encoding.GetEncoding(932)

    Private UTF16Encoder As System.Text.Encoding = System.Text.Encoding.Unicode


    Sub New(ByVal UTFString As String)

        _UTFString = UTFString

    End Sub

    Public ReadOnly Property UTFString() As String
        Get
            Return _UTFString
        End Get
    End Property


    Public Function GetByteUTF16() As Integer
        Return UTF16Encoder.GetByteCount(_UTFString)
    End Function


    Public Function GetByteSJIS() As Integer
        Return SJISEncoder.GetByteCount(_UTFString)
    End Function

    Public Function GetStringByteLen(ByVal byteLen As Integer) As String

        ' 引数チェック
        If byteLen < 0 Then
            Throw New ArgumentException(String.Format("byteLenは0以上を指定してください。{0}が指定されました。", byteLen))
        End If

        'SJIS換算のバイト長を求める
        Dim sjisByteLen As Integer = GetByteSJIS()

        '文字列が指定のバイト数以下の場合は、入力をそのまま返す
        If sjisByteLen <= byteLen Then
            Return _UTFString
        End If

        'SJIS換算のバイト長で切ってみる →strTemp
        Dim sjisByteArr As Byte() = SJISEncoder.GetBytes(_UTFString)
        Dim utfStr As String = SJISEncoder.GetString(sjisByteArr, 0, byteLen)


        ' 末尾の漢字が分断されたらバイト数-1で切り取る
        If utfStr.EndsWith("・") Then
            utfStr = SJISEncoder.GetString(sjisByteArr, 0, byteLen - 1)
        End If

        Return utfStr

    End Function

End Class


戻る