その他

Chromeブックマークマネージャのブックマークを展開し、フォルダ・ファイルにしてエクスポート(10/15)[No53]

スポンサーリンク

前回までお話していた、自作したプログラムの紹介を行った記事(下記リンク)の続きで、今回は10記事目になります。

no image
Chromeブックマークマネージャのブックマークを展開し、フォルダ・ファイルにしてエクスポート(9/15)[No52]
前回までお話していた、自作したプログラムの紹介を行った記事(下記リンク)の続きで、今回は9記事目になります。 長いファイルなので小分けにして書いていきますが、全て同じファイル「bkm ...

長いファイルなので小分けにして書いていきますが、全て同じファイル「bkmksopen4_02.vbs」に書いて下さい。

ソースコード


Option Explicit

'*********************************************************
Include("D:\Application\BookmarkMakeFile\FunctionsCollection.vbs")
Sub Include(ByVal InputFilePath)
	Dim strFile
	Dim ObjFSO : Set ObjFSO = Wscript.CreateObject("Scripting.FileSystemObject")
	Dim ObjInputFile : Set ObjInputFile = ObjFSO.OpenTextFile(InputFilePath, 1, False, 0)
	ExecuteGlobal ObjInputFile.ReadAll()
	ObjInputFile.Close : Set ObjInputFile = Nothing
	Set ObjFSO = Nothing
End Sub
'*********************************************************
'------------------------------------------------------------------------
'カレントディレクトリのパスを取得する
'------------------------------------------------------------------------
Dim CurDir : CurDir = GetCurDir()
Call MyselfMsgBox01(WScript.scriptname,"001","CurDir",CurDir)
'------------------------------------------------------------------------
'htmlファイルを読み込む
'------------------------------------------------------------------------
Dim inputFilePath : inputFilePath = curDir & "\" & "list.html"
Dim record : record = ReadFile_ADODBStream(inputFilePath)
'------------------------------------------------------------------------
'文字列の置換:「(^<DT><A HREF)~(<DT><H3|$)まで」①_後部が「<DT><H3」であったら削除
'------------------------------------------------------------------------
Dim sKeyA01 : sKeyA01 = "^(<DT><A HREF)"
Dim eKeyA01 : eKeyA01 = "(<DT><H3|$)"
Dim strPattern : strPattern = sKeyA01 & ".*?" & eKeyA01
Dim Matches : Set Matches = ExtractReturnMatches(strPattern,False,record)
Dim MatchesA : Set MatchesA = Matches
Dim MatchesB : Set MatchesB = Matches
Dim mA
Dim mB00
Dim mB01
'------------------------------------------------------------------------
Dim count : count = 0
Dim k
Dim eKeyA02 : eKeyA02 = "<DT><H3"
Dim nelen : nelen = Len(eKeyA02)
Dim nright

For Each mA In MatchesA
	'------------------------------------------------------------------------
	'比較:「<DT><H3」が後部であるか
	'------------------------------------------------------------------------
	nright = Right(mA,nelen)
	If (IsEmpty(mA) = False and count = 0 ) then
		IF (StrComp(nright,eKeyA02) = 0) Then '等しい場合:0、違う場合:1
			k = Left(mA ,Len(mA) - nelen)
		Else
			k = mA
		End If
	End If
	count = count +1
Next
'------------------------------------------------------------------------
Dim sKeyB00
Dim eKeyB00
If (IsEmpty(k) = False) then
	For Each mB00 In MatchesB
		'------------------------------------------------------------------------
		'文字列の置換:【<DT><A HREF=.*?</A>】
		'「(^<DT><A HREF)~(<DT><H3|$)まで」②_抽出したものを正規表現してさらに抽出
		'------------------------------------------------------------------------
		sKeyB00 = "<DT><A HREF="
		eKeyB00 = "</A>"
		
		Dim MatchesB01 : Set MatchesB01 = ExtractReturnMatches(sKeyB00 & ".*?" & eKeyB00,False,mB00)
		'------------------------------------------------------------------------
		For Each mB01 In MatchesB01			
			If (IsEmpty(mB01) = False) then 
				'------------------------------------------------------------------------
				'文字列の置換:【"">.*?</A>】
				'------------------------------------------------------------------------
				Dim sKeyB01 : sKeyB01 = """>"
				Dim eKeyB01 : eKeyB01 = "</A>"
				
				Dim MatchesB02 : Set MatchesB02 = ExtractReturnMatches(sKeyB01 & ".*?" & eKeyB01,False,mB01)
				Dim mfilename : mfilename = MidLeftString(sKeyB01,eKeyB01,MatchesB02.Item(0).Value)
				'------------------------------------------------------------------------
				'文字列の置換:【<DT><A HREF="".*?"" ADD_DATE】
				'------------------------------------------------------------------------
				Dim sKeyB02 : sKeyB02 = "<DT><A HREF="""
				Dim eKeyB02 : eKeyB02 = """ ADD_DATE"
				
				Dim MatchesB03 : Set MatchesB03 = ExtractReturnMatches(sKeyB02 & ".*?" & eKeyB02,False,mB01)
				Dim msiteurl : msiteurl = MidLeftString(sKeyB02,eKeyB02,MatchesB03.Item(0).Value)
				'------------------------------------------------------------------------
				'htmlファイル出力
				'------------------------------------------------------------------------
				On Error Resume Next
					Call CreateShortcutFile(curDir & "\" & mfilename & ".url",msiteurl)
					If Err.Number <> 0 Then
						Err.Clear
						Dim errFlag : errFlag = True
						Do While errFlag = True
							Dim strText
							strText = strText & ""
							strText = strText & "【" & mfilename & "】"
							strText = strText & "のファイル名が原因(文字コード、予約語、既に同じファイル名のファイルがある)でエラーになりました。"
							strText = strText & Chr(13) & Chr(10)
							strText = strText & "OK(未入力の状態で)、またはキャンセルを押すと終了します。"
														
							mfilename = inputbox(strText)
							strText = ""
							IF mfilename = "" Then
								On Error Goto 0
								WScript.Quit(4097) 'Microsoft VBScript 実行時エラー
							End If
							Call CreateShortcutFile(curDir & "\" & mfilename & ".url",msiteurl)
							errFlag = False
							If Err.Number <> 0 Then
								Err.Clear
								errFlag = True
							End If
						Loop
					End If
				On Error Goto 0
				'------------------------------------------------------------------------
				'整理(少しずつ抽出したところは削除していく)
				'------------------------------------------------------------------------
				record = Mid(record,Len(mB01) + 1)
				'------------------------------------------------------------------------
				'list.htmlの中が空であればhtml,vbsファイル削除
				'------------------------------------------------------------------------
				If (Len(record) = 0 or Len(record) = 1 or Len(record) = 2 or Len(record) = 3) Then
					Call RunDeleteFile02(CurDir)
					WScript.Quit
				End If
			End If
		Next
	Next
End If

Dim strRepAfter01 : strRepAfter01 = k
Dim strRepAfter02 : strRepAfter02 = record
'------------------------------------------------------------------------
'◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
'------------------------------------------------------------------------
'outputファイルを作成する
'------------------------------------------------------------------------
Dim outputFilePath01 : outputFilePath01 = curDir & "\" & "workfile4_02_01_k.html"
Call WriteFileText_ADODBStream(outputFilePath01,strRepAfter01)
'------------------------------------------------------------------------
'◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
'------------------------------------------------------------------------
'outputファイルを作成する
'------------------------------------------------------------------------
Dim outputFilePath02 : outputFilePath02 = curDir & "\" & "workfile4_02_02_record.html"
Call WriteFileText_ADODBStream(outputFilePath02,strRepAfter02)
'------------------------------------------------------------------------
'◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
'------------------------------------------------------------------------
'vbsファイルを実行する
'------------------------------------------------------------------------
Dim vbsFilePath : vbsFilePath = curDir & "\" & "bkmksopen4_03.vbs"
Dim returnErrNo : returnErrNo = RunVBSFile(vbsFilePath)
WScript.Quit(returnErrNo)
'------------------------------------------------------------------------

プログラムについて

今回の「Chromeブックマークマネージャのブックマークを展開し、フォルダ・ファイルにしてエクスポート」の内容はファイル数が多いため、下記リンクの全15記事に分けてファイルごとに紹介しています。
※この記事の続きは11記事目になります。

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

-その他