Page 1 sur 1

[R] Manipulation d'Array

Posté : dim. 28 sept. 2014 21:10
par locos974
Bonjour,

Voilà tout, étant sur un petit projet pour une entreprise, je rencontre un légé soucis sur la gestion des Array en AutoIt.

J'ai donc mon Array :

Code : Tout sélectionner

Dim $Annonces[10000][4]
Qui peut contenir 10 000 éléments de 4 colonnes chacun.
Je voudrais y mettre des valeurs (String/Int) mais je me retrouve confronté à ce problème avec des erreurs quand j'essaye de stocké les valeurs..

J'ai regardé l'UDF "Containers' mais reste trop poussé pour se dont j'ai besoin.
Google ne m'a pas plus aidé.

Merci d'avance !

Re: [..] Manipulation d'Array

Posté : dim. 28 sept. 2014 21:38
par mikell
locos974 a écrit :... mais je me retrouve confronté à ce problème avec des erreurs quand j'essaye de stocké les valeurs..
Heu oui mais encore ? confronté à quel problème ?

Re: [..] Manipulation d'Array

Posté : dim. 28 sept. 2014 22:51
par locos974
J'ai un certains id qui correspond à une annonce, et j'aimerais lui stocké 5 valeurs, titre, description, ..
Je ne voie pas la manière de comment procédé :mrgreen: .

Re: [..] Manipulation d'Array

Posté : dim. 28 sept. 2014 23:11
par TommyDDR
locos974 a écrit :quand j'essaye de stocké les valeurs
Peut être qu'en fournissant votre code + message d'erreur, votre problème se résoudrait plus rapidement ;)

Re: [..] Manipulation d'Array

Posté : lun. 29 sept. 2014 19:00
par locos974
Y'a pas vraiment besoin de code mais si vous insistez et si cela peut conduire à la résolution du sujet le voici :

Code : Tout sélectionner

Dim $Annonces[10000][4]
 
J'ai essayé ça pour stocké mes valeurs :

Code : Tout sélectionner

$Annonces[$Id] = [IniRead($Path, "ANNONCE", "titre", ""), IniRead($Path, "ANNONCE", "categorie", ""), IniRead($Path, "ANNONCE", "rubrique", ""), IniRead($Path, "ANNONCE", "description", "")]
 
Et aussi ça :

Code : Tout sélectionner

$Annonces[$Id][1] = IniRead($Path, "ANNONCE", "titre", "")
$Annonces[$Id][2] = IniRead($Path, "ANNONCE", "categorie", "")
$Annonces[$Id][3] = IniRead($Path, "ANNONCE", "rubrique", "")
$Annonces[$Id][4] = IniRead($Path, "ANNONCE", "description", "")
 
Et je me retrouve avec :
==> Subscript used with non-Array variable.:
Je peux pas faire plus clair..
J'ai regardé avant de posté comment faire pour les stockés mais il s'avère qu'il y est plusieurs façon de procédé. Faut-il trouvé laquelle ?

Re: [..] Manipulation d'Array

Posté : lun. 29 sept. 2014 19:19
par mikell
En supposant que $Id soit bien un nombre ...

Code : Tout sélectionner

Dim $Annonces[10000][4]

$Annonces[$Id][0] = IniRead($Path, "ANNONCE", "titre", "")
$Annonces[$Id][1] = IniRead($Path, "ANNONCE", "categorie", "")
$Annonces[$Id][2] = IniRead($Path, "ANNONCE", "rubrique", "")
$Annonces[$Id][3] = IniRead($Path, "ANNONCE", "description", "")

Re: [..] Manipulation d'Array

Posté : lun. 29 sept. 2014 19:36
par locos974
Bien sûr.. La petite correction ( si ça en est une :roll: ) ne marche pas et me retourne la même erreur, quelque chose de manquant ? Initialisation ou autre ?

Ou sinon en regardant de plus près le wiki de AutoitScript.com j'ai pu voir ce genre de chose :

https://www.autoitscript.com/wiki/Array ... _in_Arrays

Mais j'aimerais mieux la manière dont je l'exprime actuellement.

Re: [..] Manipulation d'Array

Posté : lun. 29 sept. 2014 21:06
par mikell
Apparemment comme TommyDDR l'a laissé entendre la cagade vient d'une autre partie du code, peut-être d'une boucle ou d'une discrète erreur de syntaxe

Re: [..] Manipulation d'Array

Posté : lun. 29 sept. 2014 21:34
par jguinch
En regardant tes deux codes, deux choses m'interpellent...

$Annonces[$Id] = [IniRead($Path, "ANNONCE", "titre", ""), IniRead($Path, "ANNONCE", "categorie", ""), IniRead($Path, "ANNONCE", "rubrique", ""), IniRead($Path, "ANNONCE", "description", "")]
On ne peut pas faire comme ça, on est obligé de le faire en plusieurs fois (comme dans ton deuxième exemple).



$Annonces[$Id][1] = IniRead($Path, "ANNONCE", "titre", "")
$Annonces[$Id][2] = IniRead($Path, "ANNONCE", "categorie", "")
$Annonces[$Id][3] = IniRead($Path, "ANNONCE", "rubrique", "")
$Annonces[$Id][4] = IniRead($Path, "ANNONCE", "description", "")

La c'est mieux, mais il ne faut pas oublier que les index de tableaux commencent à 0, pas à 1...

Re: [..] Manipulation d'Array

Posté : lun. 29 sept. 2014 21:58
par locos974
mikell a écrit :Apparemment comme TommyDDR l'a laissé entendre la cagade vient d'une autre partie du code, peut-être d'une boucle ou d'une discrète erreur de syntaxe
A croire que non ? :shock:
De même pour vous Jguinch.
Je vérifie bien. Mais non, il y a un problème..

Il s'avère que j'exploite l'Array dans une function et qui ne la reconnait pas :twisted: ..
Donc le problème est trouvé..

Au point de paraître con, la variable été déjà utilisé..

Problème finalement résolu, merci de votre aide !

Re: [..] Manipulation d'Array

Posté : lun. 29 sept. 2014 23:14
par TommyDDR
locos974 a écrit :Au point de paraître con, la variable été déjà utilisé..
C'est bien pourquoi à partir de maintenant je me refuse de répondre à toute personne ne postant pas son code !