Bonjour Tlem,
Merci encore une fois de votre aide .
J'ai du modifier la variable $i par $k car tel quel cela ne marchait pas .
Une fois cette modification faite, le filtre ne marchait pas bien .
J'ai donc plutôt fait le test par rapport à $level3 (2eme partie du 4eme champ)
ce qui me donne :
Code : Tout sélectionner
Func _DoIt3($aRadars3, $Level3 )
Local $k, $Var, $Var2, $Longitude3, $Latitude3, $Vitesse3, $sRadar3
For $k = 1 To $aRadars3[0]
If $aRadars3[$k] <> "" And Not StringIsSpace($aRadars3[$k]) Then ; Si la chaine n'est pas vide ou que des espaces.
$Var = StringSplit($aRadars3[$k], ',') ; Split de la chaine pour traitement.
; Début de traitement
$Longitude3 = $Var[2]
$Latitude3 = $Var[1]
$TypeRadar3 = $Var[3]
$Var2 = StringSplit($Var[4],' ')
$Level3 = $Var2[2]
; Fin de traitement
Switch $setuptrapsterFilter ; Utilisation de la commande switch.
Case "HIGH CONFIDENCE" ; Si le choix du combo est ...
If $level3 = "high" Then ; On sélectionne seulement les chaines avec "high"
$sRadar3 = $sRadar3 & "|" & $Longitude3 & ',' & $Latitude3 & ',TRAPSTER,' & $TypeRadar3 & ',' & $Level3 & ','
EndIf
Case "MEDIUM CONFIDENCE" ; Si le choix du combo est ...
If $level3 = "medium" Then ; On sélectionne seulement les chaines avec "medium"
$sRadar3 = $sRadar3 & "|" & $Longitude3 & ',' & $Latitude3 & ',TRAPSTER,' & $TypeRadar3 & ',' & $Level3 & ','
EndIf
Case "LOW CONFIDENCE" ; Si le choix du combo est ...
If $level3 = "low" Then ; On sélectionne seulement les chaines avec "low"
$sRadar3 = $sRadar3 & "|" & $Longitude3 & ',' & $Latitude3 & ',TRAPSTER,' & $TypeRadar3 & ',' & $Level3 & ','
EndIf
Case Else ; Sinon ...
$sRadar3 = $sRadar3 & "|" & $Longitude3 & ',' & $Latitude3 & ',TRAPSTER,' & $TypeRadar3 & ',' & $Level3 & ','
EndSwitch
EndIf
Next
$sRadar3 = StringTrimLeft($sRadar3, 1) ; Permet de supprimer le caractère "|" de la première boucle.
$aRadars3 = StringSplit($sRadar3, "|") ; On remplace le tableau $aRadars3 par les nouvelles valeurs.
_ArrayDelete($aRadars3, 0) ; On supprime le nombre d'élément du tableau
Return $aRadars3
EndFunc ;==>_DoIt3
Désolé mais je ne comprend pas bien ce que vous me proposez de faire pour accélérer mes boucles .
Pouvez vous me donner un exemple ?
Dans un autre ordre d'idée je voudrais effacer la première ligne d'un fichier à traiter :
exemple de mon format:
Code : Tout sélectionner
X,Y,TYPE,SPEED,DIRTYPE,DIRECTION
-4.686443,48.494891,5,0,0,0
-4.678124,48.490313,5,0,0,0
-4.675299,48.565418,5,0,0,0
-4.641619,48.376346,5,0,0,0
-4.621839,48.382675,5,0,0,0
-4.619771,48.437929,5,0,0,0
-4.609389,48.381809,5,0,0,0
-4.575684,48.385673,5,0,0,0
-4.574177,48.518223,5,0,0,0
Je pensais à ces lignes mais ça ne marche pas :
Code : Tout sélectionner
Func _DoItSPD($aRadars, $TypeRadar)
Local $i, $Var, $Var2, $Longitude, $Latitude, $Vitesse
For $i = 1 To $aRadars[0]
[color=#FF0000]If Not StringInStr($aRadars[$i], "X,Y,TYPE,SPEED,DIRTYPE,DIRECTION") Then ; On ne sélectionne pas si X,Y,TYPE,SPEED,DIRTYPE,DIRECTION
EndIf[/color]
$Var = StringSplit($aRadars[$i], ",")
$Longitude = $Var[1]
$Latitude = $Var[2]
$TypeRadar = $Var[3]
$Vitesse = $Var[4]
If $TypeRadar = "1" Then $TypeRadar = "SPEED_CAMERA"
If $TypeRadar = "2" Then $TypeRadar = "RED_LIGHT_CAMERA"
If $TypeRadar = "5" Then $TypeRadar = "SPEED_TRAP"
$aRadars[$i] = $Latitude & ',' & $Longitude & ',SPEEDCAMPOI,' & $TypeRadar & ',' & 'high,'
Next
_ArrayDelete($aRadars, 0) ; On supprime le nombre d'élément du tableau
Return $aRadars
EndFunc ;==>_DoItSPD
Merci