Page 1 sur 1

[..] problème avec des array

Posté : mer. 18 nov. 2009 18:25
par coke
Bonjour,

Je ne comprend pas pourquoi j'ai le message d'erreur suivant "Array variable has incorrect number of subscripts or subscript dimension range exceeded.:"

dans le code suivant

Code : Tout sélectionner

#include <string.au3>
#include <array.au3>

$file = FileOpen(@ScriptDir & "\complet.xml", 0)


If $file = -1 Then
    MsgBox(0, "Erreur", "Fichier introuvable !")
    Exit
EndIf

$chars = FileRead($file)
$array = _StringBetween($chars, '<programme start="2009111720', "</programme>")
 _ArrayDisplay($array)
 
$search = "C1.telerama.fr"
;$search = "2009"
$result= _ArrayFindAll($array, $search,0,0,0,1)
_ArrayDisplay($result)
$nbcol = UBound($result)


for $i=0 to $nbcol step 1
$tmp = $result[$i]
;~ MsgBox (0,"infos", "ligne :" & $tmp)
$test = StringSplit($array[$tmp]," ")
Next
_ArrayDisplay($test) 
Merci de m'eclairer

Re: [..] problème avec des array

Posté : mer. 18 nov. 2009 19:23
par sylvanie

Code : Tout sélectionner

for $i=0 to $nbcol[color=#FF0000]-1[/color] step 1
un array de dimension n s'étale de l'indice 0 à n - 1

Re: [..] problème avec des array

Posté : jeu. 19 nov. 2009 09:36
par coke
Merci beaucoup sa marche nikel. une autre petit question dans ma boucle je voudrais qu'il integre dans l'array $test l'enssemble des donnees de $array mais specifié par l'index de l'array $result or dans ma boucle il ne me met qu'un enregistrement il ne cumul pas il remplace.
Merci d'avance pour votre aide

Re: [..] problème avec des array

Posté : jeu. 19 nov. 2009 10:08
par sylvanie
indice : utiliser _ArrayInsert dans une boucle

Re: [..] problème avec des array

Posté : dim. 22 nov. 2009 10:26
par coke
Je reviens vers vous car g avancé dans mon code mais la je bloque et je comprend pas pourquoi

Code : Tout sélectionner

#include <string.au3>
#include <array.au3>
#include <array2D.au3>
#include <datefr.au3>
local $finish[1][3]

$file = FileOpen(@ScriptDir & "\complet.xml", 128)

If $file = -1 Then
    MsgBox(0, "Erreur", "Fichier introuvable !")
    Exit
EndIf

$chars = FileRead($file)
;~ $array = _StringBetween($chars, '<programme start="2009111720', "</programme>")
$array = _StringBetween($chars, '<programme', "</programme>")
;~  _ArrayDisplay($array)
 
$search = "C1.telerama.fr"
;$search = "2009"
$result= _ArrayFindAll($array, $search,0,0,0,1)
;~ _ArrayDisplay($result)
$nbcol = UBound($result)
$datenow=_NowDate()
$timenow=_NowTime()

for $i=0 to $nbcol-1 step 1
$tmp = $result[$i]
;~ MsgBox (0,"infos", "ligne :" & $tmp)
$test = StringSplit($array[$tmp],">")
$a=$test[3]
$dateprog=(StringTrimLeft(StringLeft($test[1],23),8))
$annee = stringleft($dateprog,4)
$mois = stringmid($dateprog, 5,2)
$jour= stringmid($dateprog, 7,2)
$hh= stringmid($dateprog, 9,2)
$mm=stringmid($dateprog, 11,2)
$ss=StringRight($dateprog,2)
_Array2D_Add($finish, StringTrimRight($a,7))
$finish[$i+1][1] = $jour&'/'&$mois&'/'&$annee
$finish[$i+1][2] = $hh & ":" & $mm & ":" & $ss

Next
_Array2D_Display($finish)
;~ MsgBox (0,"infos", "ligne :" & $datenow & $finish[1][1])
$prepa1= _ArrayFindAll($finish, $datenow,0,0,0,2)
_ArrayDisplay($prepa1)
 
alors je ne comprends pas pourquoi _arraydisplay($prepa1) ne s'affiche pas
je recherche une valeur dans la colonne 2 de l'array $finish mais rien ne marche je devient fou
Merci pour votre aide

Re: [..] problème avec des array

Posté : dim. 22 nov. 2009 19:12
par Tlem
Bonsoir.

Si _ArrayDisplay($prepa1) n'affiche rien, c'est que vraisemblablement $prepa1 n'est pas un tableau.

Vous devez donc vérifier si $finish est bien un tableau et si la fonction _ArrayFindAll() est bien formatée pour votre recherche.

Re: [..] problème avec des array

Posté : dim. 22 nov. 2009 19:27
par coke
je pense que oui car _arraydisplay($finish) m'affiche bien mon tableau a 3 colonne
et mon premier _arrayfindall au début du script fonctionne et c sa que je ne comprend pas, il ne fait pas de recherche dans ma colonne (Col1)
Merci

Re: [..] problème avec des array

Posté : dim. 22 nov. 2009 19:31
par Tlem
La fonction est celle-ci :

Code : Tout sélectionner

_ArrayFindAll(Const ByRef $avArray, $vValue[, $iStart = 0[, $iEnd = 0[, $iCase = 0[, $iPartial = 0[, $iSubItem = 0]]]]])
Mais il semble que dans cette ligne :

Code : Tout sélectionner

$prepa1= _ArrayFindAll($finish, $datenow,0,0,0,2)
vous n'indiquez pas $iSubItem. :roll:

Re: [..] problème avec des array

Posté : dim. 22 nov. 2009 20:12
par coke
g effectivement corriger cet oubli mais sa na rien changé :roll: :roll:
sa ne s'affiche toujours pas

Re: [..] problème avec des array

Posté : dim. 22 nov. 2009 21:20
par Tlem
Vous ne donnez pas assez d'éléments pour qu'on puisse vous aider correctement.
Vous devrez donc chercher par vous même votre erreur. :mrgreen: