二つのパスで共通しているプレフィックスを取得          <TOP>


PathCommonPrefix 二つのパスで共通しているプレフィックスを取得
 

 

'================================================================
'= 二つのパスで共通しているプレフィックスを取得
'=    (PathCommonPrefix.bas)
'================================================================
#include "Windows.bi"

' 二つのパスで共通しているプレフィックスを取得
Declare Function Api_PathCommonPrefix& Lib "shlwapi" Alias "PathCommonPrefixA" (ByVal pszFile1$, ByVal pszFile2$, ByVal achPath$)

Var Shared Edit1 As Object
Var Shared Edit2 As Object
Var Shared Text1 As Object
Var Shared Button1 As Object

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

'================================================================
'= Chr$(0)を取り除く
'================================================================
Declare Function TrimNull (item As String) As String
Function TrimNull(item As String) As String
    Var ePos As Integer

    ePos = Instr(item, Chr$(0))
    If ePos Then
        TrimNull = Left$(item, ePos - 1)
    Else
        TrimNull = item
    End If
End Function

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Edit1.SetWindowText "c:\mydir\test\myfile.ext"
    Edit2.SetWindowText "c:\mydir\testing\hello.txt"
End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Buff As String
    Var path1 As String
    Var path2 As String
    Var Ret As Long

    Buff = String$(100, 0)
    path1 = Edit1.GetWindowText
    path2 = Edit2.GetWindowText

    Ret = Api_PathCommonPrefix(path1, path2, Buff)
    
    Text1.SetWindowText TrimNull(Buff)
End Sub

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