UTF-8 // Service部からアクセスログを取得し、URLに _SCR( を含むものを返す。 // 戻り値先頭は "OK:" または "NG:" の文字列。 :test{ //log open: dir=Dir.Desktop file="debug accLog-dump.log"; //debug: true; call: macro="{{GTMAIL_HOME}}\\ctrl\\macro\\get_ExAntiad_accLog.txt" strl.outIndex="accLog"; if (strl["accLog.0"].StartsWith{"OK:"} == "false") { put: value="NG: Service部からログを取得できません。"; end: } str["file"]=strl["accLog.0"].Latter(":"); str["file"]=str["file"].Trim; read open: file=str["file"]; intl[10]=0; strl["found"]=""; while (true) { read text: O:string=strl["aLine"]; if (strl["aLine"].Length < 1) { break; } while (strl["aLine"].IndexOf{"_SCR("} > 0) { strl["topLine"]=strl["aLine"].Former("[\\r][\\n]"); if (strl["topLine"].StartsWith_igC{"Get"} == "false") { break; } if (strl["topLine"].IndexOf{"SCR("} < 1) { break; } strl["found"]=strl["aLine"]; break; } if (strl["found"].Length > 0) { break; } } read close: //put: value="Read " intl[10] " Lines."; if (strl["found"].Length < 1) { put: value="NG: 該当するURLがログにありません。"; end: } split: src=strl["found"] key="[\\r][\\n]" O:length=intl["leng"] strl.index="header"; strl["hd0"]=strl["header.0"].Substring("Get ".Length); strl["hd0"]=strl["hd0"].Former(" "); if (strl["hd0"].StartsWith_igC{"http://"} == "true") { put: value="OK:" strl["hd0"]; end: } strl["host"]=""; intl[10]=0; while (intl[10] < intl["leng"]) { strl[10]="header." intl[10]; if (strl[strl[10]].StartsWith_igC{"Host:"} == "true") { strl["host"]=strl[strl[10]].Latter(":"); strl["host"]=strl["host"].Trim; break; } culc: intl[10]++; } if (strl["host"].Length < 1) { put: value="NG: host NotFound"; end: } strl["retv"]="http://" strl["host"] strl["hd0"]; put: value="OK:" strl["retv"]; end: }