AntiGuide: Logsmjava2KmlTrie



PagePrincipale :: DerniersChangements :: ParametresUtilisateur :: Vous êtes 216.73.216.172 :: Signaler un abus :: le: 20250809 10:27:57
obsolete voir: LoGsmJava2Kml
variante issue de Logsmjava2Kml

à ajuster dans le code:
mobile
date & heure début et fin si besoin de restreindre le traitement
racine nom cible pour le .kml (attention: pas de rapport avec le terme homonyme de loGsmJava)
version du logiciel LoGsmJava sur le mobile
nom du fichier boîte

il est possible de traiter directement le fichier 'boîte à lettre' au format mbox tel que celui de Thunderbird ou seulement l'extraction par find des lignes contenant "Subject: "
précédemment, les mails devaient être présentés en ordre chronologique.

' 20100207 sans déclalage des point superposés ni affichage diametre
' 20100226 prise en charge de l'heure sur 5 ou 8 caractères automatiquement
' 20100226 interception de la ligne texte reçu : en prévision de multi-points
' telephones multiples.
' 2 do
' faire compatible ligne sujet ou corps ....
' premier point!
' par flavigny@free.fr, 20100228-1200
' reprise des emails de LogsmJava
'
' paramètres:
' paramètres à ajuster:

Version="20100228-1200" 
racine="0642419118-lelac"
mobile="0642419118,0643214680" '  on pourrait mettre un S!
'HHMMdebut="0000-00-00 00:00:00"
HHMMdebut="2010-03-02 16:00:00"
'HHMMFIN  ="9999-00-00 24:00:00"
HHMMFIN="2010-99-28 10:37:07"
enteteloc="XYDateHeure:"
enteteloc="LOC: "
compatiblesujet=true ' a faire actuiellement inutilise!

prtinput=true
' V0.0074 non compatible aves ce programme
' demande à modifier routine interception des variables
'fichierboite="C:\Users\adminpo\Application Data\Thunderbird\Profiles\jn9iose8.default\Mail\pop.inrets.fr\!!!!!!!!!!!!!!!LoGsmJava"

'Logsm="_V1.0006_" ' version capture (à trouver dans la ligne Subject: )
'fichierboite="C:\Users\adminpo\AppData\Roaming\Thunderbird\Profiles\jn9iose8.default\Mail\pop.inrets.fr\!!!!!!!!!!!!!!!!!!!!!!!x"

Logsm="_V1.0015_" ' version capture (à trouver dans la ligne Subject: )
fichierboite="C:\Users\adminpo\AppData\Roaming\Thunderbird\Profiles\jn9iose8.default\Mail\pop.inrets.fr\!!!!!!!!!!!!!!!!!!2010"

' autres variables
dim ladatepre
ladatepre=""
dim linetrie
dim li
linetrie=""
'
linetot=true

' gestion on error HORS SERVICE, toute erreur est fatale pendant le développement!
' on error resume next 
on error goto 0

'
dim fs
set fs=createobject("scripting.filesystemobject")

dim mbox

' glisser/déposer en panne à voir ...
'dim args
'Set args = Wscript.Arguments
'if args.count =1 then 
'mbox=args(0)
'else
'mbox=inputbox("nom du fichier boite au format mbox")
'end if
'

'if mbox="" then  mbox=inputbox("nom du fichier boite au format mbox")

' extraire de nom du fichier

dim ptvus
ptvus=0
dim lilus
lilus=0

dim fi
dim fo
'mbox=racine & ".txt"
mbox=fichierboite
nomfi=racine & ".kml"

set fi=fs.opentextfile(mbox ,1)
set fo=fs.createtextfile(nomfi,true)

'msgbox "mbox: " & mbox & " " & len(mbox) & vbcrlf & "nomfi: " & nomfi & " " & len(nomfi)  & vbcrlf & "mobile: " & mobile


'' copier le debut

prologue

dim trouve
trouve=false

while not fi.atendofstream
 pre=nu  ' je ne sais à quoi sert ? dupplique ?

  li=fi.readline()


' msgbox li
  lilus=lilus+1

' c'est seulement à la ligne de fin que l'on démarre, obsolete 
' on peut supprimer cette complication 
fin="par "
findemail= (left(li,len(fin))=fin) 
if (findemail and (not vudetail)) or mid(li,1,len(enteteloc))=enteteloc then

   vudetail=true ' pour ne pas sortir en fin 
 
   ' intercepter localisation et date (sauf si demarre sur findemail)
    if not findemail then  
   ladateheure=right(li,19)
   else
'   msgbox "sujet: " & vbcrlf & li & vbcrlf & ladateheure
   end if

   if (ladateheure< hhmmdebut) or (ladateheure> hhmmfin) then 
   ' msgbox numero & " REJET " & iteration & " " & xc & " " & yc & " " & x & "*" & y & vbcrlf   & date & "===" & h & m
   else 
      ptvus=ptvus+1 '1
  '     msgbox ptvus & ":" & li & vbcrlf & subjectsave

' fut decode
 if prtinput then fo.writeline "<!-- " & li & "-->"
' LOC: 51 N484542 E0021714 2010-02-28 00:17:00

np=instr(li," ")
li=mid(li,np+1)
np=instr(li," ")
li=mid(li,np+1)
np=instr(li," ")
yc=mid(li,1,np-1)
li=mid(li,np+1)
np=instr(li," ")
xc=mid(li,1,np-1)
ladateheure=mid(li,np+1)
  x= mid(xc,2,3)+mid(xc,5,2)/60+mid(xc,7,2)/3600
  y= mid(yc,2,2)+mid(yc,4,2)/60+mid(yc,6,2)/3600
' msgbox xc & " " & x & vbcrlf & yc & " " & y
  if mid(xc,1,1)="W" then x=-x
  if mid(yc,1,1)="S" then y=-y
x=pt(x)
y=pt(y)
      xo=x
      yo=y
      xq=x
      yq=y

      xp=x ' sans doute impertinent
      yp=y

      ' il faut trier ce tableau
      if ladateheure<>ladatepre then 
        if (ptvus=1) or (ladateheure >= ladatepre) then 
        linetrie=linetrie &  x & "," & y & " :" & ladateheure & "|" & vbcrlf 
           else
         ' trier 
         iprevious=0
         fini=false
         '  msgbox "placer" & ladateheure & "<" & ladatepre & " dans " & vbcrlf & right(linetrie,1000)

while not fini   
    avantdate=iprevious
    isearch=jnstr(linetrie,iprevious+1,":")
    if isearch =0 then 
      ' fini 
      fini=true
      linetrie=linetrie &  x & "," & y & " :" & ladateheure & "|" & vbcrlf
' msgbox "fait zero=" & vbcrlf & linetrie
    else
    finsearch=jnstr(linetrie,isearch+1,"|")
    unedate=mid(linetrie,isearch,finsearch-isearch-1)
 '   msgbox "unedate à" & isearch & vbcrlf & unedate 
      if unedate>ladateheure then 
       linetrie=mid(linetrie,1,iprevious) &  x & "," & y & " :" & ladateheure & "|" & mid(linetrie,iprevious+1)
       fini=true
      end if
    end if
   iprevious=finsearch
wend ' fini   

    end if '  ladateheure >= ladatepre
end if ' ladateheure<> ladatepre
 
   ladatepre=ladateheure
  end if  ' entete ou fin  


xpppp=xq
ypppp=yq
xqqqq=x
yqqqq=y
    end if
    trouve=false



  verbe="Subject:"
  if left(li,len(verbe))=verbe then 
 vudetail=false

  subjectsave=li
'Subject: 0643214680_0.74_3_5_xc=719_amp_pyc=531_amp__Loc=2,457778_amp__Loc=48,791944_amp_redirect=non_amp_SessionID=0643214680 2009-06-21 11:45
'         0642419118_4_V0.94.2_C10#1\'ADcIY_2_N484638_E0022714 2009-07-15 16:14
' filtrage selon version du programme Java émetteur
 if instr(li,logsm)>0 then 
if prtinput then fo.writeline "<!-- " & li & "-->"
 ' msgbox "logsm trouvé dans la ligne subject subject " & vbcrlf & li

 ' extraire date et heure
   if mid(li,len(li)-5,1)=" " then 
   ladateheure=right(trim(li),16) & ":00"
      else
    ladateheure=right(trim(li),19)
    end if
' msgbox "ladateheure=" 	& mid(li,len(li)-5,1) &"=" & vbcrlf & ladateheure
   j=mid(ladateheure,1,10)
 '  msgbox "date 1:" & ladate & vbcrlf & "vus=" & ptvus & vbcrlf & "j=" & j & vbcrlf & "hh:mm=" & right(li,5) 

' delay
' pas critique, pas de vitesse actuellement
' même jour ?
' si plusieurs d'écart ?
' si mois 
  if (jp="") or (j=jp) then 
    d=0
   else 
    d=-24
   end if

   h=cdbl(mid(ladateheure,12,2))
   m=cdbl(mid(ladateheure,15,2))
   s=0 ' 
   t=h+m/60+s/3600


 '  msgbox "date 2 :" & ladate & vbcrlf & "vus=" & ptvus & vbcrlf & "j=" & j & vbcrlf & "hh:mm=" & h &":" & m
   elapse=d-tp+t
   tp=t
   jp=j



  li=mid(li,instr(li," ")+1)
  s=instr(li,"_")
  numero=left(li,s-1)

' filtrage selon numéro du mobile
' msgbox numero & vbcrlf & mobile

'  if numero=mobile then 
' liste de mobiles
  if instr(mobile,numero)>0 then 
' msgbox "mobile" 
  li=mid(li,s+1)

  s=instr(li,"_")
  version=left(li,s-1)
  li=mid(li,s+1)

  s=instr(li,"_")
  config=left(li,s-1)
  li=mid(li,s+1)

  s=instr(li,"_")
  iteration=left(li,s-1)
  li=mid(li,s+1)
' je ne sais ce qu'il manqueit
  s=instr(li,"_")
  iteration=left(li,s-1)
  li=mid(li,s+1)


if true then 
  s=instr(li,"_")
  yc=left(li,s-1)
  li=mid(li,s+1)


  s=instr(li,"_")
' amp
  li=mid(li,s+1)

  s=instr(li," ")
  xc=left(li,s-1)
  li=mid(li,s+1)

  s=instr(li,"_")
' amp
  li=mid(li,s+1)
' prise en charge double _
  if left(li,1)="_" then li=mid(li,2)

' 0642419118_5_V1.0015_C100#1\'GSW_16_N484700_E0022641 2010-02-22 17:36
'                                        x
  j=mid(li,1,10)
  hs= mid(li,12,5) 

  x= mid(xc,2,3)+mid(xc,5,2)/60+mid(xc,7,2)/3600
  y= mid(yc,2,2)+mid(yc,4,2)/60+mid(yc,6,2)/3600
  if mid(xc,1,1)="W" then x=-x
  if mid(yc,1,1)="S" then y=-y
 x=pt(x)
 y=pt(y)

' msgbox xc & vbcrlf & yc & vbcrlf & "li maintenant ===" & li & "===="& vbcrlf & j &vbcrlf & hs

'  msgbox numero & "  tire de SUBJECT " & iteration & " " & xc & " " & yc & " " & x & "*" & y & vbcrlf  & x & " " & y & " " & date & " " &  hs
  trouve=true
    end if ' false
  end if
end if
 

 end if 
wend
epilogue

msgbox "termine " & ptvus & "/" & lilus

fo.close
 ' wscript.quit

' pas de end du pp!

 
function dms(appel,deg)
' avec . ou , 
' msgbox "deg=" & deg
dd=deg
ii=instr(dd,".")
if ii=0 then 
dd=deg
else
dd=mid(deg,1,ii-1) & "," & mid(deg,ii+1)
end if
on error resume next
d=cint(dd-0.4999999)
if err.number<>0 then 
   if not ignorererror then msgbox appel & " erreur deg=" & deg & "=" & vbcrlf & "dd=" & dd & "=" & vbcrlf & li
  end if
on error goto 0
m=cint((dd-d)*60-0.499999999)
s=cint( (dd-d-(m/60.))*3600 - 0.49999999)
dms=d & "°" & m & "'" & s & """"
end function

sub epilogue
' nettoyer linetrie
'
' msgbox "epilogue"
l2=linetrie

while (instr(l2,":")>0) and (instr(l2,"|")>0)
unepunaisex=mid(l2,1,instr(l2,",")-1)
l2=mid(l2,instr(l2,",")+1)
unepunaisey=mid(l2,1,instr(l2,":")-1)
l2=mid(l2,instr(l2,":")+1)
unepunaisedh=mid(l2,1, instr(l2,"|")-1)
l2=mid(l2,instr(l2,"|")+1)

' msgbox "x=" & unepunaisex & vbcrlf & "y=" & unepunaisey & vbcrlf & "à" & unepunaisedh

if prtinput then fo.writeline "<!-- " & "x=" & unepunaisex & vbcrlf & "y=" & unepunaisey & vbcrlf & "à" & unepunaisedh & "-->"
'  linetrie=mid(linetrie,1,instr(linetrie,":")-1) & mid(linetrie, instr(linetrie,"|")+1)
      fo.writeline "  <Placemark>"
      fo.write "      <description>" 
  '    fo.write "xo=" & xo & " yo=" & yo & "<br/>"
     fo.write "      date: " &  unepunaisedh  & "<br/>"
'    fo.write "      distance : " &  ladatepre & "<br/>"

      fo.writeline dms(1,unepunaisex) & "*" & dms(2,unepunaisey)  & "<br/>" 
      fo.writeline  "</description>"
      fo.writeline "      <styleUrl>#default+nicon=0x467+hicon=0x477_copy0</styleUrl>"
      fo.writeline "      <Point><coordinates>" & UNEPUNAISEX & "," & unepunaisey & "</coordinates></Point>"
      fo.writeline "  </Placemark>"
wend
 

'
fo.writeline "        </Folder>"
fo.writeline "    </Folder>"
if linetot then

while (instr(linetrie,":")>0) and (instr(linetrie,"|")>0)
  linetrie=mid(linetrie,1,instr(linetrie,":")-1) & mid(linetrie, instr(linetrie,"|")+1)
wend

    fo.writeline "<Placemark><name>TrackPoints</name><description>mettre ce que lon veut </description>"
'    fo.writeline "<styleUrl>#default+nicon=0x467+hicon=0x477</styleUrl> 	<LineString><tessellate>1</tessellate>	<coordinates>" & line & "</coordinates></LineString>"
   fo.writeline 
   fo.writeline "<styleUrl>#default+nicon=0x467+hicon=0x477</styleUrl> 	<LineString><tessellate>1</tessellate>	<coordinates>" & linetrie & "</coordinates></LineString>"
    fo.writeline "</Placemark>"
end if

if prtinput then fo.writeline "<!--  EPILOGUE -->"

fo.writeline "</Document>"
fo.writeline "</kml>"
end sub

sub prologue
fo.writeline "<?xml version=""1.0"" encoding=""UTF-8""?>"
fo.writeline "<kml xmlns=""http://earth.google.com/kml/2.1"">"
fo.writeline "  <!-- version du programme: " & Version & " filtre: " & logsm & " " & mobile & " " & hhmmdebut & "à" & hhmmfin & "-->"
fo.writeline "<Document>"
fo.writeline "    <name>" & nomfi & "</name>"
fo.writeline "    <Style id=""default+icon=0x467"">"
fo.writeline "        <IconStyle>"
fo.writeline "            <Icon>"
fo.writeline "                <href>root://icons/palette-4.png</href>"
fo.writeline "                <x>224</x>"
fo.writeline "                <y>192</y>"
fo.writeline "                <w>32</w>"
fo.writeline "                <h>32</h>"
fo.writeline "            </Icon>"
fo.writeline "        </IconStyle>"
fo.writeline "        <LineStyle id=""khLineStyle989_copy0; "">"
fo.writeline "            <color>7f0000ff</color>"
fo.writeline "            <width>4</width>"
fo.writeline "        </LineStyle>"
fo.writeline "    </Style>"
fo.writeline "    <StyleMap id=""default+nicon=0x467+hicon=0x477_copy0"">"
fo.writeline "        <Pair>"
fo.writeline "            <key>normal</key>"
fo.writeline "            <styleUrl>default+icon=0x467_copy0</styleUrl>"
fo.writeline "        </Pair>"
fo.writeline "        <Pair>"
fo.writeline "            <key>highlight</key>"
fo.writeline "            <styleUrl>default+icon=0x477_copy0</styleUrl>"
fo.writeline "        </Pair>"
fo.writeline "    </StyleMap>"
fo.writeline "    <Style id=""default+icon=0x467_copy0"">"
fo.writeline "        <IconStyle>"
fo.writeline "            <Icon>"
fo.writeline "                <href>root://icons/palette-3.png</href>"
fo.writeline "                <x>224</x>"
fo.writeline "                <w>32</w>"
fo.writeline "                <h>32</h>"
fo.writeline "            </Icon>"
fo.writeline "        </IconStyle>"
fo.writeline "    </Style>"
fo.writeline "    <StyleMap id=""default+nicon=0x467+hicon=0x477"">"
fo.writeline "        <Pair>"
fo.writeline "            <key>normal</key>"
fo.writeline "            <styleUrl>default+icon=0x467</styleUrl>"
fo.writeline "        </Pair>"
fo.writeline "        <Pair>"
fo.writeline "            <key>highlight</key>"
fo.writeline "            <styleUrl>default+icon=0x477</styleUrl>"
fo.writeline "        </Pair>"
fo.writeline "    </StyleMap>"
fo.writeline "    <Style id=""Default + Icon = 0; x477_copy0; "">"
fo.writeline "        <IconStyle>"
fo.writeline "            <scale>1.1</scale>"
fo.writeline "            <Icon>"
fo.writeline "                <href>root://icons/palette-3.png</href>"
fo.writeline "                <x>224</x>"
fo.writeline "                <w>32</w>"
fo.writeline "                <h>32</h>"
fo.writeline "            </Icon>"
fo.writeline "        </IconStyle>"
fo.writeline "        <LabelStyle>"
fo.writeline "            <scale>1.1</scale>"
fo.writeline "        </LabelStyle>"
fo.writeline "    </Style>"
fo.writeline "    <Style id=""Default+Icon=0x477"">"
fo.writeline "        <IconStyle>"
fo.writeline "            <scale>1.1</scale>"
fo.writeline "            <Icon>"
fo.writeline "                <href>root://icons/palette-4.png</href>"
fo.writeline "                <x>224</x>"
fo.writeline "                <y>224</y>"
fo.writeline "                <w>32</w>"
fo.writeline "                <h>32</h>"
fo.writeline "            </Icon>"
fo.writeline "        </IconStyle>"
fo.writeline "        <LabelStyle>"
fo.writeline "            <scale>1.1</scale>"
fo.writeline "        </LabelStyle>"
fo.writeline "        <LineStyle id=""khLineStyle989_copy1"">"
fo.writeline "            <color>7f0000ff</color>"
fo.writeline "            <width>4</width>"
fo.writeline "        </LineStyle>"
fo.writeline "    </Style>"
fo.writeline "    <Folder>"
fo.writeline "        <name>Lieux temporaires</name>"
fo.writeline "        <open>1</open>"
fo.writeline "        <Folder>"
fo.writeline "            <name>2007-06-09:06:22:06</name>"
fo.writeline "            <open>1</open>"
fo.writeline "            <Placemark>"
fo.writeline "                <name>TrackPoints</name>"
fo.writeline "                <description>2007-06-09:06:22:06</description>"
fo.writeline "                <styleUrl>#default+nicon=0x467+hicon=0x477</styleUrl>"
fo.writeline "            </Placemark>"


end sub

function pt(xy)
ixy=instr(xy,",")
if ixy>0 then 
  pt=mid(xy,1,ixy-1) & "." & mid(xy,ixy+1)
else
 pt=xy
end if
end function 

function jnstr(dans,a,quoi)
www=mid(dans,a)
jnstr=instr(www,quoi)+a
end function