J'ai trouvé sur le forum autoit un script permettant de reformatter un fichier poi au format ov2 (tomtom) vers un tableau.
Pour une raison X , le tableau ne se rempli pas .
► Afficher le texte
Code : Tout sélectionner
#include<GUIConstants.au3>
#include<Array.au3>
#include<GuiListView.au3>
$sFilename = FileOpenDialog("Select .ov2 file...", @ScriptDir, "ov2 files (*.ov2)", 1)
$hFile = FileOpen($sFilename, 16)
$i = 0
$iPOI = 0
$str = ""
Do
$type = FileRead($hFile, 1)
If @error Then ExitLoop
$type = Int($type)
Switch $type
Case 0, 3
$len = Dec(Hex(ByteSwap(FileRead($hFile, 4))))
FileRead($hFile, $len-5)
Case 1
FileRead($hFile, 20)
Case 2
$len = Dec(Hex(ByteSwap(FileRead($hFile, 4)))) - 14
$lon = Dec(Hex(ByteSwap(FileRead($hFile, 4)))) / 100000
$lat = Dec(Hex(ByteSwap(FileRead($hFile, 4)))) / 100000
$data = BinaryToString(FileRead($hFile, $len))
FileRead($hFile, 1)
$iPOI += 1
$str &= $type & "|" & $lon & "|" & $lat & "|" & $data & @CRLF
Case Else
MsgBox(0,"Error", "Unknown OV2 type encountered." & @CRLF & "File reading terminated.")
ExitLoop
EndSwitch
Until 0
FileClose($hFile)
;GUI listview with sortable columns
GUICreate("Simple POIs in this file: " & $iPOI, 500,500)
$listview = GUICtrlCreateListView("Type|Longitude|Latitude|Description", 0,0, 500,500)
_GUICtrlListView_SetColumnWidth($listview, 3, 320)
$aPOIs = StringSplit(StringTrimRight($str, 2), @CRLF, 1)
For $i = 1 to $aPOIs[0]
_GUICtrlListView_InsertItem($listview, -1, $aPOIs[$i])
Next
Dim $B_DESCENDING[_GUICtrlListView_GetColumnCount($listview)]
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $listview
_GUICtrlListView_SimpleSort($listview, $B_DESCENDING, GUICtrlGetState($listview))
EndSwitch
WEnd
Func ByteSwap($bin)
Return Binary(BitOr(String($bin), 0))
EndFuncJe joins un fichier ov2 au script .
Merci de votre aide



