2006/12/4 (月) 23:46:29  
[330] 現在行のタグファイル文字列を作成

現在行のタグファイル文字列(こんなの→C:\sakura\Macro\test.vbs(30,19)  [SJIS]:Call Editor.TraceOut( msg , 2))を作成します。
あんまり用途ないですが…笑

' createTagString.vbs
ret = GetCharCode
select case ret
case 0:
        sCharCode = "SJIS"
case 1:
        sCharCode = "JIS"
case 2:
        sCharCode = "EUC"
case 3:
        sCharCode = "UNICODE"
case 4:
        sCharCode = "UTF-8"
case 5:
        sCharCode = "UTF-7"
case 6:
        sCharCode = "UNICODE-BE"
end select

iCurLine = GetLineCount(0)
FilePath = ExpandParameter("$F")
Right_Sel
iCol = GetSelectColmFrom
Left_Sel
sLine = GetLineStr(0)

msg = FilePath & "(" & iCurLine & "," & iCol & ")  [" & sCharCode & "]:" & sLine

Call Editor.TraceOut( msg , 2)
まくろ初心者
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Sleipnir/2.49


2006/12/5 (火) 14:11:16  
[331] Re:現在行のタグファイル文字列を作成

▼ まくろ初心者さん
> 現在行のタグファイル文字列を作成します。
> あんまり用途ないですが…笑


文字コードは、先頭に持って来ても、(ダイレクトタグジャンプで)大丈夫のようです。
現在行番号を取って来るようにしました。

' iCurLine = GetLineCount(0)
' Right_Sel
Right_Sel
iCurLine = GetSelectLineFrom

msg = "[" & sCharCode & "] " & FilePath & "(" & iCurLine & "," & iCol & "): " & sLine

手動操作と自動操作の中間で、
sakura.ini のMRU(bookmark)タグに入っている形式からの取り出しも欲しくなります。
では、また。
じゅうじ
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1)


2006/12/5 (火) 18:25:42  
[332] Re2:現在行のタグファイル文字列を作成

▼ じゅうじさん
> ▼ まくろ初心者さん
> > 現在行のタグファイル文字列を作成します。
> > あんまり用途ないですが…笑
>
> 文字コードは、先頭に持って来ても、(ダイレクトタグジャンプで)大丈夫のようです。
> 現在行番号を取って来るようにしました。
>
> ' iCurLine = GetLineCount(0)
> ' Right_Sel
> Right_Sel
> iCurLine = GetSelectLineFrom
>
> msg = "[" & sCharCode & "] " & FilePath & "(" & iCurLine & "," & iCol & "): " & sLine
>
> 手動操作と自動操作の中間で、
> sakura.ini のMRU(bookmark)タグに入っている形式からの取り出しも欲しくなります。
> では、また。


間違いの指摘ありがとうございした。
MRUを取得するやつも作ってみましたが…遅い…(--;)


投稿しようとしたらサイズオーバー
う〜ん、でかすぎかな。ファイルが…汗
まくろ初心者
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1) Sleipnir/2.49


2006/12/6 (水) 01:05:24  
[336] MRUから作成その1

' createTagByMru
Call Main()

Sub Main()
        Const MRU_SECTION_NAME = "MRU"
        Const MRU_ENTRY_NAME = "MRU"
        Const MRU_ENTRY_PATH = ".szPath"
        Const MRU_ENTRY_X = ".nX"
        Const MRU_ENTRY_Y = ".nY"
        Const MRU_ENTRY_CHARCODE = ".nCharCode"
        Const MRU_ENTRY_MAX = "_MRU_Counts"
        Const MRU_FR = 0

        Dim iniCtl

        Set iniCtl = New clsSakuraIni

        Dim sNum
        Dim mruTo
        mruTo = iniCtl.GetProfileString(MRU_SECTION_NAME ,MRU_ENTRY_MAX )
        Dim sCharCode, iCol, iCurLine, FilePath, sLine
        Dim sTag

        for i = MRU_FR to mruTo - 1
                if i < 10 then
                        sNum = "0" & i
                Else
                        sNum = i
                End If
                sCharCode = getCharCodeStr( iniCtl.GetProfileString(MRU_SECTION_NAME ,MRU_ENTRY_NAME & "[" & sNum & "]" & MRU_ENTRY_CHARCODE ) )
                iCol = iniCtl.GetProfileString(MRU_SECTION_NAME ,MRU_ENTRY_NAME & "[" & sNum & "]" & MRU_ENTRY_X)
                iCurLine = iniCtl.GetProfileString(MRU_SECTION_NAME ,MRU_ENTRY_NAME & "[" & sNum & "]" & MRU_ENTRY_Y )
                FilePath = iniCtl.GetProfileString(MRU_SECTION_NAME ,MRU_ENTRY_NAME & "[" & sNum & "]" & MRU_ENTRY_PATH )
                sLine = "" 'GetLineStr(0)
                sTag = FilePath & "(" & iCurLine & "," & iCol & ")  [" & sCharCode & "]:" & sLine
                TraceOut(sTag)
        Next

        Set iniCtl = Nothing        ' インスタンスを破棄します。
End Sub
まくろ初心者
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1) Sleipnir/2.49


2006/12/6 (水) 01:05:52  
[337] MRUから作成その2


Function getCharCodeStr( charCode )
        if Not isNumeric(charCode) then Exit Function
        aryChar = Array("SJIS", "JIS", "EUC", "UNICODE", "UTF-8", "UTF-7", "UNICODE-BE")
        getCharCodeStr = aryChar( charCode )
End Function

' Class 定義
Class clsSakuraIni
        Dim aryLine
        Private Sub Class_Initialize        ' Initialize イベントを設定します。
                Dim objFso
                Dim iniFileName
                Dim objFs
 
                Set objFso = CreateObject("Scripting.FileSystemObject")
                iniFileName = getSakuraIniFileName
 
                Set objFs = objFso.OpenTextFile( iniFileName, 1 )
                aryLine = Split( objFs.ReadAll, vbCrLf )
                objFs.Close
                Set objFs = Nothing
                Set objFso = Nothing
        End Sub
 
        Private Sub Class_Terminate        ' Terminate イベントを設定します。
                ' Do Nothing
        End Sub
 
        ' ini ファイル名生成
        Private Function getSakuraIniFileName()
                Dim sakuraPath, pos, sRet
                sakuraPath = ExpandParameter("$S")
                pos = instrrev(sakuraPath, ".")
                if pos <= 0 then
                        sRet = ""
                Else
                        sRet = Mid(sakuraPath, 1, pos ) & "ini"
                End If
                getSakuraIniFileName  = sRet
        End Function
 
        ' ini ファイルの読み込み
        Function getProfileString( strSection, strEntry)
                Dim i, sRet
 
                if UBound( aryLine ) > 0 then
                        ' ini ファイルの解析
                        Dim bFound,sLine,aryEntity
 
                        sRet = ""                'Empty
                        bFound = False
                        For i = 0 to Ubound( aryLine )-1
                                if bFound then
                                        if Left( aryLine( i ), 1 ) = "[" then Exit For
 
                                        sLine = LTrim( aryLine( i ) )
                                        if Left( sLine, Len(strEntry)) = strEntry then
                                                aryEntity = Split( sLine, "=" )
                                                if Trim(aryEntity(0)) = strEntry then
                                                        if Ubound( aryEntity ) = 1 then
                                                                sRet = Trim( aryEntity( 1 ) )
                                                                Exit For
                                                        end if
                                                end if
                                        end if
                                End if
                                if aryLine(i) = "[" & strSection & "]" then
                                        bFound = True
                                end if
                        Next
                Else
                        sRet = ""
                End If
                getProfileString = sRet
        End Function
 
End Class


まくろ初心者
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1) Sleipnir/2.49


2006/12/6 (水) 01:08:15  
[338] Re:MRUから作成その2

説明があとになっちゃいました…汗

その1、その2を連結するとMRUからタグ文を作成します。
(ただしファイル内容は取得しないです。)

若干動作が遅いのと、INIのパーサが自前なので微妙かもです。
まくろ初心者
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1) Sleipnir/2.49


2006/12/6 (水) 00:13:14  
[333] Re:現在行のタグファイル文字列を作成

▼ まくろ初心者さん
GetSelectColmFromは折り返しモードの時に折り返し単位での桁位置を示しますので
こういう処理は素直にExpandParameterに任せた方がいいかも。

' createTagString.vbs
vArr = Array("SJIS", "JIS", "EUC", "UNICODE", "UTF-8", "UTF-7", "UNICODE-BE")
Call TraceOut("$F($y,$x) [" & vArr(GetCharCode) & "]: " & GetLineStr(0), 3)
maru
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)


2006/12/6 (水) 00:21:32  
[334] Re2:現在行のタグファイル文字列を作成

GetLineStr(0)の中に特殊展開文字列があるかもしれないので
さっきのはだめですね。

' createTagString.vbs
vArr = Array("SJIS", "JIS", "EUC", "UNICODE", _
                "UTF-8", "UTF-7", "UNICODE-BE")
Call TraceOut("$F($y,$x) [" & vArr(GetCharCode) & "]: ", 3)
Call TraceOut(GetLineStr(0), 2)
maru
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)


2006/12/6 (水) 01:03:30  
[335] Re3:現在行のタグファイル文字列を作成

いろいろと返信ありがとございます。
結局2行で書けてしまいますね…笑

' createTagString.vbs
aryChar = Array("SJIS", "JIS", "EUC", "UNICODE", "UTF-8", _
                "UTF-7", "UNICODE-BE")
Call Editor.TraceOut( ExpandParameter("$F($y,$x)  [") & aryChar( GetCharCode ) & "]:" & GetLineStr(0) , 2)
まくろ初心者
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1) Sleipnir/2.49

INCM/CMT
Cyclamen v3.81