パスを構成する文字の種別を判定          <TOP>


PathGetCharType パスを構成する文字の種別を判定

 

 

'================================================================
'= パスを構成する文字の種別を判定

'=    (PathGetCharType.bas)
'================================================================

#include "Windows.bi"

#define GCT_INVALID &H0                 'パスに使用できない
#define GCT_LFNCHAR &H1                 '長い形式のファイル名に使用することができる
#define GCT_SEPARATOR &H8               'パスの区切りの文字である
#define GCT_SHORTCHAR &H2               '短い形式のファイル名に使用することができる
#define GCT_WILD &H4                    'ワイルドカード文字である

' パスを構成する文字の種別を判定
Declare Function Api_PathGetCharType& Lib "shlwapi" Alias "PathGetCharTypeA" (ByVal ch As Byte)

Var Shared Text1 As Object
Var Shared Text2 As Object
Var Shared Edit1 As Object
Var Shared Button1 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Text2.Attach GetDlgItem("Text2") : Text2.SetFontSize 14
Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()

    Var MyStr As String
    Var txt As String
    Var Ret As Long

    MyStr = Edit1.GetWindowText

    Select Case Api_PathGetCharType(Asc(MyStr))
        Case GCT_INVALID
            txt = "この文字はパスに使用できません"
        Case GCT_LFNCHAR
            txt = "この文字は長い形式のファイル名に使用することができます"
        Case GCT_SHORTCHAR
            txt = "この文字は短い形式のファイル名に使用することができます"
        Case GCT_WILD
            txt = "この文字はワイルドカード文字です"
        Case GCT_SEPARATOR
            txt = "この文字はパスの区切りの文字です"
    End Select
   
    Text2.SetWindowText "【" & MyStr & "】:" & txt
End Sub

'================================================================
'=
'================================================================
Declare Sub Edit1_SetFocus edecl ()
Sub Edit1_SetFocus()
    Text2.SetWindowText ""
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End