Fonction ARRAY en Javasript

Vous voulez de l'aide ? Postez ici :)
Post Reply
MDLE46
Posts: 108
Joined: 11 Nov 2016, 19:06

Fonction ARRAY en Javasript

Post by MDLE46 »

Bonjour,


J'ai un petit problème.



Je traite des données d'un tableau excel en csv.

Ma manip :

Je traite ligne par ligne. Donc, dans ma boucle, j'envoie une ligne dans une variable en ajoutant au début une donnée fixe (WXZY), et j'envoie cette variable dans le presse papier. Ce qui me permet de récolter mes données en utilisant un excellent script trouvé sur ce site que j'ai légèrement adapté et que je place ci-dessous. Je pense que vous allez le reconnaitre.

==============================================

var clavier= new Keyboard();
var souris=new Mouse()
var presse_papier=new Clipboard();

//=========================
//=> Récupérer le clipboard
//=========================
Execution.pause(300);
presse_pap =presse_papier.text;
//=========================


//=== Début localisaion de la donnée
//=========================
//=>
//=> zone_1= "WXZY";
//=> "WXZY" positionne, détermine la phrase. ---> A paramétrer
//=>
//=> decoupage = t_lignes.substr(77-1,10).trim() ;
//=> avec (77 = position sur la ligne) et (1,10 = longueur de 10 caractères) ---> A paramétrer
//=>
//========================= Début Script
zone_1= WXZY ; //=> A paramétrer

fin_ligne =String.fromCharCode(10);
t_lignes =presse_pap.split(fin_ligne);

for (i=0;i<t_lignes.length;i++)
{
pos_1 = t_lignes.search(zone_1) ;

if (pos_1 >= 0 )
{
pos_2= pos_1 + zone_1.length +1;
decoupage = t_lignes.substr(77-1,10).trim() ; //==> A paramétrer
break;
};
};
//========================= Fin localisaion de la donée



//==== Début résultat dans var
//=========================
//=> Résultat dans la variable :
//=> ¤ entre " " pour faire apparaitre une phrase perso
//=> ¤ entre ( ) si groupement de plusieurs valeurs
//=> ¤ soluce : resultat = (decoupage) ;
//=>
//========================= Début Script
if (typeof decoupage === 'string')
{
resultat = (decoupage) ;
}
//========================= Fin résultat dans var

====================================================================

Et ça passe très bien car mes tableaux csv possèdent des valeurs qui ont toujours le même nombre de caractères. Si le nombre de caractères change un peu, je joue sur 2 colonnes ce qui me donne un tableau facilement remaniable.

ET ça me convient parfaitement.


Par souci de perfectionnement et en vue d'un cas plus complexe, j'ai essayé de traiter un de ces tableaux csv avec un code en javascript. Les valeurs sont fictives.

Donc, Je traite toujours ligne par ligne. Donc, j'ai réussi à envoyer une ligne du tableau sous la forme "PS000", "ADV", "Clos","12/06/2017" dans une variable. Et j'essaye d'appliquer le code suivant :


//====================================================== Début script
//=> "PS000", "ADV", "Clos","12/06/2017"
//=> est la ligne du tableau excel csv que j'ai réussi a mettre dans ma vaiable.

array = ["PS000", "ADV", "Clos","12/06/2017"];
console.print(array [0]);

//=>console.print(array[0]); // affiche "PS000"
//=>console.print(array[1]); // affiche "ADV"
//=> et ainsi de suite.

J'essaye sans succès de reconstituer ce code en utilisant les actions d'actiona.

Avez vous une solution pour que cela fonctionne. (une solution assez simple, autrement, laissez tomber).

Je me pose également une question un peu simpliste peut être (je possède très peu de conaissance en code).

Ne serait il pas possible de créer dans Actiona des ressources type code ce qui permettraient de reconstituer des scripts code dans un fichier texte ou autre ? Cela rséoudraient peut être non cas. Je vous l'avait dit ! Question un peu simpliste.

Cordialement.

MDLE46
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Fonction ARRAY en Javasript

Post by francois »

Bonjour,

Pour ton besoin, je ne passerais pas par un copier-coller mais par une exploitation directe du fichier csv :

Code: Select all

fin_ligne =String.fromCharCode(10);
dlm_variable=","

var fich_in = new File();
rep_fichier_in= "C:/temp"
nom_fichier_in= "aa.csv"

fich_in_chemin_complet= rep_fichier_in + "/" + nom_fichier_in
fich_in.open(fich_in_chemin_complet,File.ReadOnly| File.Text);

au_km = fich_in.readText();
t_ligne =au_km.split(fin_ligne);
     
for (i=0;i<t_ligne.length;i++)
{
tableau_variables =t_ligne[i].split(dlm_variable);
}
Je reste un fan d'Actiona le logiciel qu'a conçu et réalisé JMGR.
MDLE46
Posts: 108
Joined: 11 Nov 2016, 19:06

Re: Fonction ARRAY en Javasript

Post by MDLE46 »

Bonjour François,

Juste, je n'aurais pas du passer par le copier/coller. Avec mon script, comme je récupère ligne par ligne les données du tableau csv, j'aurais du passer directement la ligne dans une variable avec l'action "Lire fichier texte".
J'aurais du et je vais le faire. Çà sera plus court, plus fiable et je sais faire.

J'ai également travaillé sur ton script.
Si j'ai bien compris, il travaille directement sur le tableau csv et doit récupérer le tableau ligne par ligne.
Donc, jai fait un boucle sur ton script et après, chaque lecture, avec l'action " Boîte de dialogue", j'essaye de visualiser la variable "tableau_variables" pour y voir la ligne csv. Mais choux blanc. Rien entre les crochets. Donc, je pense que j'ai mail saisi. Mais je vais persister.

Et pour mon petit problème, as tu une idée pour écrire :

var array = ["le premier élément", "le second élément"];
console.print(années[0]);

en

var ligne_csv = ["le premier élément", "le second élément"];
var array = [ligne_csv];
console.print(ligne_csv[0]);

//=>console.log(arr[0]); // affiche "le premier élément"
//=>console.log(arr[1]); // affiche "le second élément"

Voilà, je crois que j'ai assez parlé.

Merci pour ton sript et de ton aide.

Cordialement. MDLE46

PS : Je me rallie sous ta bannière : "Je reste un fan d'Actiona le logiciel qu'a conçu et réalisé JMGR."
MDLE46
Posts: 108
Joined: 11 Nov 2016, 19:06

Re: Fonction ARRAY en Javasript

Post by MDLE46 »

Re bjr François,

J'ai testé mon script sans le copier/coller (direct dans variable). La macro ronronne. Merci du conseil.

Bon, maintenant, j'essaye de faire avec ton script.

Cdlt. MDLE.
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Fonction ARRAY en Javasript

Post by francois »

Bonjour,

Pour afficher le résultat, tu peux utiliser Console.print(tableau_variables);.
(Il y a affichage de toutes les occurrences de tableau_variables).

Code: Select all

for (i=0;i<t_ligne.length;i++)
{
tableau_variables =t_ligne[i].split(dlm_variable);
Console.print(tableau_variables);
}
Cordialement
MDLE46
Posts: 108
Joined: 11 Nov 2016, 19:06

Re: Fonction ARRAY en Javasript

Post by MDLE46 »

Bonjour François,

OK, maintenant que j'ai visualisé le tableau dans la console, a moi de chercher pour aboutir à mes fins.
Ça prendra du temps, mais c'est le jeu et c'est comme ça que l'on progresse.

Encore merci et merci à Actiona.

Cordialement.

MDLE46
MDLE46
Posts: 108
Joined: 11 Nov 2016, 19:06

Re: Fonction ARRAY en Javasript

Post by MDLE46 »

Bonjour François,

Ça y est. J'ai terminé ma macro avec ton script.

Mais je ne t'avais pas tout dit.

Ma macro sert à :
Je reçoit un tableau de données en csv.
- j'extraie des données.
- avec l'une des données (un N° commande), avec Actiona macro clavier souris,
je vais dans une appli pour vérifier l'état (terminé ou en cours). Et je relève cet état.
- et je refais un tableau avec l'ensemble des données récoltées.

C'est pour cela que je traite le tableau initial ligne par ligne.

Bon, maintenant c'est fait. Ben je croyais. Car en parcourant les cours de javascript, j'ai vu vu qu'il était plus facile de modifier un tableau que d'en créer un autre (quand on sait faire bien sur). Toutefois, je vais avancer vers cette direction.

Encore merci François. Pour moi, cette finition de macro était compliqué. Pourtant, avec ton script, il n'y avait pas grand chose à faire. On peut dire que je progresse petit à petit. Mais j'étoffe ma bibliothèque de scripts utiles.

Je laisse en pièce-jointe mon tuto perso.

Cordialement.

MDLE46
Attachments
extrait données dans tableau csv.ascr
Extraction, ligne par ligne, de données d'un tableau csv
(13.95 KiB) Downloaded 110 times
MDLE46
Posts: 108
Joined: 11 Nov 2016, 19:06

Re: Fonction ARRAY en Javasript

Post by MDLE46 »

Re bjr
Le même tuto mais avec plus d'explication.
Cdlt.
Attachments
extrait données dans tableau csv.ascr
Extrait données dans tableau csv ligne par ligne.
(16.57 KiB) Downloaded 110 times
MDLE46
Posts: 108
Joined: 11 Nov 2016, 19:06

Re: Fonction ARRAY en Javasript

Post by MDLE46 »

Bjr,

tjrs le même tuto. Mais cette fois, spécialisé pour tableau.csv ; donc avec séparateur point-virgule.

Pour l'utiliser avec un fichier avec séparateur virgule ou autre, une modif est nécessaire dans l'action code.
(Pas de souci, tout est indiqué dans le script). Cdlt à tous. MDLE46.
Attachments
extrait données dans tableau csv.ascr
(18.06 KiB) Downloaded 130 times
Post Reply