Bonjour,
Etant débutant sous AutoIt, je me permets de vous poser une petite question:
Est-il possible de dire à un programme de créer des variables tout seul?
Je m'explique:
J'ai un fichier .csv comportant 3 colonnes:
- Catégorie Article
- Code Article
- Valeur Article
Mon but est de trier dans un nouveau fichier excel, le tableau précédent.
Dans l'idée je dois trier par Catégorie d'articles, calculer le nombre d'articles existant pour chaque catégorie et établir la valeur totale des articles d'une même catégorie.
Le problème, c'est que les catégories varient d'un mois à l'autre, certaines peuvent disparaîtrent et d'autres se créer.
C'est pourquoi je vous demande, est-il possible avec du code de créer une variable à chaque fois que mon programme rencontre une nouvelle catégorie?
Dans l'attente de vos réponses...
[R] Créer des variables automatiquement dans un programme
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
GaRydelaMer
- Niveau 7

- Messages : 450
- Enregistré le : mer. 18 mars 2009 22:12
- Localisation : Montpellier
- Status : Hors ligne
Re: [...] Créer des variables automatiquement dans un programme
Bonjour
un truc vite fait, pour ouvrir et faire les calculs
Fichiers "c:\un dossier avec des fichiers csv\zz.csv"
Il te faut créer un fichier "c:\un dossier avec des fichiers csv\Schema.ini"
Ensuite une fois fait ca, avec les possibilité du SQL:
Résultat dans la console:
catégorie "aa", 2 articles, somme des 2 articles 29
catégorie "bb", 2 articles, somme des 2 articles 12
catégorie "zz", 1 articles, somme des 1 articles 10
un truc vite fait, pour ouvrir et faire les calculs
Fichiers "c:\un dossier avec des fichiers csv\zz.csv"
Code : Tout sélectionner
Catégorie Article;Code Article;Valeur Article
zz;1;10
aa;5;14
bb;9;11
aa;6;15
bb;8;1
Code : Tout sélectionner
[zz.csv]
ColNameHeader=True
Format=Delimited(;)
MaxScanRows=0
CharacterSet=ANSI
Col1="CATÉGORIE ARTICLE" Char
Col2="CODE ARTICLE" Long
Col3="VALEUR ARTICLE" long
Code : Tout sélectionner
Local $oConn = ObjCreate("ADODB.Connection")
With $oConn
.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=csv;Dbq=c:\un dossier avec des fichiers csv\;"
.Open
EndWith
Local $_oRS = ObjCreate("ADODB.Recordset")
Local $sql = "SELECT [Catégorie Article], Count([Code Article]) AS Nb, Sum([Valeur Article]) AS Somme " & _
"FROM zz.csv " & _
"GROUP BY [Catégorie Article] " & _
"ORDER BY [Catégorie Article]"
$_oRS.Open($sql, $oConn, 3, 3)
While Not $_oRS.EOF
Local $cat = $_oRS.Fields(0).Value
Local $nb = $_oRS.Fields(1).Value
Local $somme = $_oRS.Fields(2).Value
ConsoleWrite($cat & " " & $nb & " " & $somme & @LF)
$_oRS.MoveNext
WEnd
Code : Tout sélectionner
aa 2 29
bb 2 12
zz 1 10
catégorie "bb", 2 articles, somme des 2 articles 12
catégorie "zz", 1 articles, somme des 1 articles 10
Re: [...] Créer des variables automatiquement dans un programme
Merci pour ton aide.
Cependant, malgré le fait que j'ai bien suivi tes instructions, j'ai un message d'erreur:
Line -1:
Error: The requested action with this object has failed
J'ai du faire quelque chose de travers je pense...
Le code avec la requête SQL, il fallait le mettre dans un fichier au3 n'est-ce pas?
Merci encore pour ton aide.
Cependant, malgré le fait que j'ai bien suivi tes instructions, j'ai un message d'erreur:
Line -1:
Error: The requested action with this object has failed
J'ai du faire quelque chose de travers je pense...
Le code avec la requête SQL, il fallait le mettre dans un fichier au3 n'est-ce pas?
Merci encore pour ton aide.
-
GaRydelaMer
- Niveau 7

- Messages : 450
- Enregistré le : mer. 18 mars 2009 22:12
- Localisation : Montpellier
- Status : Hors ligne
Re: [...] Créer des variables automatiquement dans un programme
Bonjour
Oui tu mets la dernière partie dans un fichier au3.
Il te faut modifier la ligne:
.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=csv;Dbq=c:\un dossier avec des fichiers csv\;"
Mets le dossier ou se trouve ton fichier CVS.
Oui tu mets la dernière partie dans un fichier au3.
Il te faut modifier la ligne:
.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=csv;Dbq=c:\un dossier avec des fichiers csv\;"
Mets le dossier ou se trouve ton fichier CVS.
Re: [...] Créer des variables automatiquement dans un programme
J'avais modifié le chemin t'inquiètes. J'ai tout placé dans un dossier à la racine comme tu m'as dit et maintenant quand je lance le .exe, rien ne se passe... Le bon côté des choses c'est qu'il n'y a plus d'erreurs au moins xd
En réalité il semble qu'il se lance puis 1 seconde plus tard se coupe. J'arrive à voir dans le gestionnaire de tâches Windows le script.exe qui apparait puis disparait :s
En réalité il semble qu'il se lance puis 1 seconde plus tard se coupe. J'arrive à voir dans le gestionnaire de tâches Windows le script.exe qui apparait puis disparait :s
-
GaRydelaMer
- Niveau 7

- Messages : 450
- Enregistré le : mer. 18 mars 2009 22:12
- Localisation : Montpellier
- Status : Hors ligne
Re: [...] Créer des variables automatiquement dans un programme
Bonjour
pour voir le résultat depuis Scite, au lieu de faire F7 ou ctrl+F7 (compiler le programme cad créer le .exe), fais simplement F5 tu auras les résultat dans la console de scite, ou remplce consolewrite() par un msgbox().
Chris
pour voir le résultat depuis Scite, au lieu de faire F7 ou ctrl+F7 (compiler le programme cad créer le .exe), fais simplement F5 tu auras les résultat dans la console de scite, ou remplce consolewrite() par un msgbox().
Chris

