[[node-2]]
 command: set readInterval=30000
 command: program dp
 program: dim thisTable
 program: dim thisRowLabel
 program: dim thisColumnLabel
 program: dim prevTable
 program: dim prevRowLabel
 program: dim prevColumnLabel
 program: mode="reset"
 program: mode="run"
 program: thisPage=ex("service", "getThisPage")
 program: thisPageR=getResultPart(thisPage)
 program: ex("service","println "+thisPageR)
 program: parseCsv(thisPageR, thisTable, thisRowLabel, thisColumnLabel)
 program: lineNumber=getMaxIndex(thisRowLabel)
 program: minVal=10000
 program: selectedNode=0
 program: selectedPath=""
 program: preNodes=0
 program: for i=0 to lineNumber-1
 program:   if thisTable(i,thisColumnLabel("kind")) = "preNode" then
 program:   {
 program:      preNodes=preNodes+1
 program:      prevPageUrl=thisTable(i,thisColumnLabel("url"))
 program:      prevPage=ex("connector", "getpage "+prevPageUrl)
 program:      if prevPage = "ERROR" then
 program:      {
 program:        prevPageUrl=thisTable(i,thisColumnLabel("url2"))
 program:        prevPage=ex("connector", "getpage "+prevPageUrl)
 program:      }
 program:     if prevPage <> "ERROR" then
 program:     {
 program:        prevPageR=getResultPart(prevPage)
 program:        parseCsv(prevPageR, prevTable, prevRowLabel, prevColumnLabel)
 program:        ix=getindex(prevTable, prevRowLabel, prevColumnLabel("kind"),"=","nodeInfo")
 program:        prevVal=prevTable(ix,prevColumnLabel("val"))
 program:        arcVal=thisTable(i,thisColumnLabel("arcVal"))
 program:        xval=prevVal+arcVal
 program:        thisTable(i,thisColumnLabel("val"))=xval
 program:        prevPath=prevTable(ix,prevColumnLabel("path"))
 program:        thisTable(i,thisColumnLabel("path"))=prevPath
 program:        if xval<minVal then
 program:        {
 program:            minVal=xval
 program:            selectedNode=thisTable(i,thisColumnLabel("No"))
 program:            selectedPath=prevPath
 program:        }
 program:     }
 program:   } 
 program: next i
 program: ex("service","clear sendBuffer")
 program: thisNodeIndex=getIndex(thisTable,thisRowLabel, thisColumnLabel("kind"),"=","nodeInfo")
 program: thisTable(thisNodeIndex,thisColumnLabel("selectedNode"))=selectedNode
 program: if mode="reset" then
 program: {
 program:   dataline="kind=\"nodeInfo\""
 program:   dataline=dataline+",nodeName=\""+thisTable(thisNodeIndex,thisColumnLabel("nodeName"))+"\""
 program:   dataline=dataline+",startNode=\""+thisTable(thisNodeIndex,thisColumnLabel("startNode"))+"\""
 program:   dataline=dataline+",selectedNode=0"
 program:   dataline=dataline+",val=0"
 program:   dataline=dataline+",path=\"\""
 program:   ex("service","putSendBuffer "+dataline)
 program:   for i=0 to lineNumber-1
 program:     if thisTable(i,thisColumnLabel("kind")) = "preNode" then
 program:     {
 program:       dataline="kind=\"preNode\""
 program:       dataline=dataline+",No="+thisTable(i,thisColumnLabel("No"))
 program:       dataline=dataline+",url=\""+thisTable(i,thisColumnLabel("url"))+"\""
 program:       dataline=dataline+",url2=\""+thisTable(i,thisColumnLabel("url2"))+"\""
 program:       dataline=dataline+",arcVal="+thisTable(i,thisColumnLabel("arcVal"))
 program:       dataline=dataline+",val=0"
 program:       dataline=dataline+",path=\"\""
 program:       ex("service","putSendBuffer "+dataline)
 program:    }
 program:   next i
 program: }
 program: else
 program: {
 program:   if preNodes=0 then
 program:   {
 program:     thisTable(thisNodeIndex,thisColumnLabel("path"))=thisTable(thisNodeIndex, thisColumnLabel("nodeName"))
 program:     thisTable(thisNodeIndex,thisColumnLabel("val"))=0
 program:   }
 program:   else
 program:   {
 program:     thisTable(thisNodeIndex,thisColumnLabel("path"))=selectedPath+" - "+thisTable(thisNodeIndex, thisColumnLabel("nodeName"))
 program:     thisTable(thisNodeIndex,thisColumnLabel("val"))=minVal
 program:   }
 program:   dataline="kind=\"nodeInfo\""
 program:   dataline=dataline+",nodeName=\""+thisTable(thisNodeIndex,thisColumnLabel("nodeName"))+"\""
 program:   dataline=dataline+",startNode=\""+thisTable(thisNodeIndex,thisColumnLabel("startNode"))+"\""
 program:   dataline=dataline+",selectedNode="+thisTable(thisNodeIndex,thisColumnLabel("selectedNode"))
 program:   dataline=dataline+",val="+thisTable(thisNodeIndex,thisColumnLabel("val"))
 program:   dataline=dataline+",path=\""+thisTable(thisNodeIndex,thisColumnLabel("path"))+"\""
 program:   ex("service","putSendBuffer "+dataline)
 program:   for i=0 to lineNumber-1
 program:     if thisTable(i,thisColumnLabel("kind")) = "preNode" then
 program:     {
 program:       dataline="kind=\"preNode\""
 program:       dataline=dataline+",No="+thisTable(i,thisColumnLabel("No"))
 program:       dataline=dataline+",url=\""+thisTable(i,thisColumnLabel("url"))+"\""
 program:       dataline=dataline+",url2=\""+thisTable(i,thisColumnLabel("url2"))+"\""
 program:       dataline=dataline+",arcVal="+thisTable(i,thisColumnLabel("arcVal"))
 program:       dataline=dataline+",val="+thisTable(i,thisColumnLabel("val"))
 program:       dataline=dataline+",path=\""+thisTable(i,thisColumnLabel("path"))+"\""
 program:       ex("service","putSendBuffer "+dataline)
 program:    }
 program:   next i
 program: }
 program: ex("service","sendResults.");
 command: end dp
 command: run dp

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS