Pour les utilisateurs du logiciel de guidage GPS Sygic Aura, je vous propose un petit script qui retravaille les fichiers plats ASC de POI fournis par GPSPASSION.com (http://www.gpspassion.com/forumsen/topi ... C_ID=98498) en fichiers exploitables par l'utilitaire de conversion de l'éditeur Sygic :
http://support.sygic.com/sygic/topics/a ... ion-11ybt7
Ce script sera utile à la communauté Sygic utilisant les POI de GPSPASSION.
J'en décris l'utilisation complète ici :
http://www.gpspassion.com/forumsen/post ... RUM_ID=181
Voici le code :
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version : 3.3.6.1
Auteur: Sieurcoug
Fonction du Script :
Convertir les fichier ASC de GPSPASSION en TXT afin de les transférer
sur Sygic Aura
#ce ----------------------------------------------------------------------------
#include <GUIConstants.au3>
#Include <GuiButton.au3>
#include <GuiTreeView.au3>
#include <GuiEdit.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <String.au3>
#include <array.au3>
#Include <File.au3>
Opt("TrayIconHide", 0) ;0=show (default), 1=hide tray icon
Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
Opt("SendCapslockMode", 1) ;1=store and restore, 0=don't
Opt("SendKeyDelay", 0) ;5 milliseconds
Global $szDrive, $szDir, $szFName, $szExt
Dim $NbEnregistrements
$NbEnregistrements = 0
$sFichierASC = FileOpenDialog("Sélectionnez le fichier ASC à traiter", @ScriptDir & "\", "Fichiers asc (*.asc)", 1)
If @error=1 Then Exit
$fichierASC = FileOpen($sFichierASC, 0)
If $fichierASC = -1 Then
MsgBox(16, "Erreur", "Impossible d'ouvrir le fichier ASC (" & $sFichierASC & ") en lecture" & @CRLF & @CRLF & "Ce programme va se fermer.")
Exit
EndIf
$szPath = $sFichierASC
_PathSplit($szPath, $szDrive, $szDir, $szFName, $szExt)
$sFichierTXT = $szFName & ".txt"
If FileExists($szDir & "\" & $szFName & ".txt") Then
$res = MsgBox(48 + 3, @ScriptName, "Attention ! " & @CRLF & "Un fichier " & $szFName & ".txt" & " existe déjà dans le répertoire " & @CRLF & $szDrive & $szDir & @CRLF & @CRLF & "Continuer la procédure va effacer le fichier actuel. Voulez-vous continuer ?")
If $res <> 6 Then Exit
EndIf
$fichierTXT = FileOpen($sFichierTXT, 2)
If $fichierTXT = -1 Then
MsgBox(16, "Erreur", "Impossible d'ouvrir le fichier TXT (" & $sFichierTXT & ") en écriture. Vérifiez qu'il n'est pas déjà ouvert par une autre application." & @CRLF & @CRLF & "Ce programme va se fermer.")
Exit
EndIf
FileWriteLine($fichierTXT, "delimiter=|")
While 1
$ligne = FileReadLine($fichierASC)
If @error = -1 Then ExitLoop
$NbEnregistrements += 1
$ligne = StringReplace($ligne, ", ", "|", 1) ; remplace la 1ere ","
$ligne = StringReplace($ligne, ", ", "|", 1) ; remplace la 2e ","
$ligne = StringReplace($ligne, '"', "") ; supprime tous les guillements
FileWriteLine($fichierTXT, $ligne)
Wend
FileClose($sFichierASC)
FileClose($fichierTXT)
MsgBox(64, @ScriptName, "Le conversion est terminée." & @CRLF & @CRLF & $NbEnregistrements & " enregistrements du fichier " & $sFichierASC & @CRLF & " ont été converties dans le fichier de de sortie " & $sFichierTXT)