POS関数(文字列探索):UWSC,

// 文字列に指定文字列があるか探す
戻値 = POS( 探す文字, 探される文字列, [n個目] )
引数
 探す文字: 探したい文字列
 探される文字列: 探される文字列
 n個目: nを指定するとn個目の文字位置を返す(マイナス値で指定すると後ろからサーチ)
戻値
 見つかった位置 (1から)
 (見つからなければゼロを返す)
 (大文字,小文字の区別はしません)

 ※ バイト処理の場合は POSB

【例:サンプル】
// Google操作 検索結果のタイトルとURLを表示
IE = CreateOLEObj(“InternetExplorer.Application”)
IE.Visible = True
IE.Navigate(“http://www.google.co.jp/”)
BusyWait(IE)
IESetData(IE,True,”lr”,”lang_ja”)      // ラジオボタン選択:日本語のページを検索
IESetData(IE,”検索単語”,”q”)         // 文字設定:検索単語
IESetData(IE,True,”btnG”,”Google 検索”)   // SUBMIT
BusyWait(IE)
body = IEGetSrc(IE, “BODY”)             // BODYのソース取得
body = Copy(body, Pos(“

body = Copy(body, 1, Pos(“background-position”, body)) // 不必要部分の削除
cnt = 1
while True
 wks= BetweenStr(body,”

“, cnt)
 if wks = EMPTY then break
 wks = REPLACE(wks,”“, “”)    // 邪魔なタグは潰す
 wks = REPLACE(wks,”
“, “”)
 wks = REPLACE(wks,”“, “”)
 print cnt
 print Copy(wks, Pos(“”",wks,-1)+2, 999)   // タイトル
 print BetweenStr(wks, “href=”",”"”)  // URL
 cnt = cnt + 1
wend
//——
Procedure BusyWait(ie)
 repeat
  Sleep(0.2)
 until (! ie.busy) and (ie.readyState=4)
Fend

// テーブルからのデータ取得
// IEGetData(IE, “TAG=TABLE”, 2, 3, 4)  // 2つ目のTABLEの3行目4列
// IEGetData(IE, “TAG=A”, 5)       // 5つ目のAタグの表示項目

// 指定文字列間の表示
moji = “A12, B12, C12, A34, B34, C34, A56, B56, C56, A78, B78, C78″
// AとCの間
print BetweenStr(moji, “A”, “C”)       // 12, B12,
print BetweenStr(moji, “A”, “C”, 2)     // 34, B34,
// 前文字と後文字が同じ時
print BetweenStr(moji, “A”, “A”, 1)     // 12, B12, C12,
print BetweenStr(moji, “A”, “A”, 2)     // 56, B56, C56, (後文字以降で取得)
print BetweenStr(moji, “A”, “A”, 2, True)  // 34, B34, C34, (前文字以降で取得)

——————————————————————————–

このエントリーをはてなブックマークに追加

コメントを残す