Home World Forum
Stars! AutoHost web forums

Jump to Stars! AutoHost


 
 
Home » Stars! 2.6/7 » The Bar » Possible new utility for creating testbeds
Re: Possible new utility for creating testbeds Mon, 23 February 2009 17:19 Go to previous messageGo to previous message
PaulCr

 
Chief Warrant Officer 3
Stars! V.I.P

Messages: 187
Registered: February 2007
Location: An Island that kinda look...
Here's a .vbs for pulling the battle plans from the resulting xml file, it could do with some tidying up but it should give a reasonable idea of how you can process the xml file if your language doesn't support it natively.

Edit:Looks like aoutohost is adding extra spaces to it but it should still be understandable, I'll post the script along with a sample xml file on my website tomorrow.

dim fso,file,Result
result="RaceID,BattlePlanID,PrimaryTarget,SecondaryTarg et,AttackWho,Name" &chr(13) & chr(10)
set fso=Createobject("Scripting.filesystemobject")
set file=fso.opentextfile("glr2.m1.xml")
txt=file.readall
file.close
a=1
while a>0
  Element=GetElement(txt,"Structure30",a,Attributes)
  b=1
  RaceID=GetElement(Element,"RaceID",b,RaceIDAttribu tes)
  BattlePlanID=GetElement(Element,"BattlePlanID",1,B attlePlanIDAttributes)
  PrimaryTarget=GetElement(Element,"PrimaryTarget",1 ,PrimaryTargetAttributes)
  SecondaryTarget=GetElement(Element,"SecondaryTarget& ;quo t;,1,SecondaryTargetAttributes)
  AttackWho=GetElement(Element,"AttackWho",1,AttackW hoAttributes)
  Name=GetElement(Element,"Name",1,NameAttributes)
  result=result & GetAttribute(RaceIDAttributes,"value") & ","
  result=result & GetAttribute(BattlePlanIDAttributes,"value") & ","
  result=result & GetAttribute(PrimaryTargetAttributes,"value") & ","
  result=result & GetAttribute(secondaryTargetAttributes,"value") & ","
  result=result  & GetAttribute(AttackWhoAttributes,"value") & ","
  result=result  & GetAttribute(NameAttributes,"value") & chr(13) & chr(10)
wend
set file=fso.createtextfile("output.csv")
file.write(result)
file.close
msgbox result

function GetAttribute(Attributes,Attribute)
  dim a,b
  a=instr(1,attributes,Attribute & "=""")
  if a>0 then
    b=instr(a+len(Attribute)+2,attributes,"""& ;quo t;)
    GetAttribute=mid(Attributes,a+len(Attribute)+2,b-a-len(attri bute)-2)
  else
    GetAttribute=""
  end if
end function

function GetElement(txt,ElementName,byref Start,Attributes)
dim a,b,c
  a=instr(start,txt,"<" & ElementName & ">") '<ElementName>...</Elementname>
  if a>0 then
    b=instr(a+1,txt,"</" & ElementName & ">")
    GetElement=mid(txt,a+2+len(ElementName),b-a-2-len(ElementNam e)) & chr(13) & chr(10)
    Start=b
  else
    a=instr(start,txt,"<" & ElementName & " ")
    if a>0 then '<ElementName attr></ElementName> or <ElementName attr/>
      c=instr(a+1,txt,"/>")
      d=instr(a+1,txt,">")
      if c>d and d<>0 then '<ElementName attr></ElementName>
        b=instr(d+1,txt,"</" & ElementName & ">")
        GetElement=mid(txt,d+1,5)
        'attributes=mid(txt,a+len(ElementName)+1,d-a-len(ElementName )-1)
        start=d
      else '<ElementName/>
        GetElement=""
        attributes=mid(txt,a+len(ElementName)+1,c-a-len(ElementName) -1)
        start=c
      end if
    else
      a=instr(start,txt,"<" & ElementName & "/>")
      if a>0 then
        GetElement=a & "," & b & c
        Start=-1
      else
        GetElement=a & "," & b & c
        Start=-1
      end if
    end if
  end if
end function


[Updated on: Mon, 23 February 2009 17:21]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Revival of an interesting idea?
Next Topic: 0.2% Minimum Damage
Goto Forum:
  


Current Time: Tue May 14 02:19:40 EDT 2024