二つのパスで共通しているプレフィックスを取得 <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