Page 1 sur 1

Scripts VijeoDesigner et chaines de textes

Posté : 28 juil. 2016, 10:43
par lerieur
Bonjour à tous.

Je suis en train de développer (enfin j'essaie) un script java sous Vijeo Designer pour extraire les données issues d'une chaine de texte.
La chaine est un truc du genre "#Libellé#0,12#1,00#0,723#Nom#".
L'idée était de réccupérer les données de production de type réel dans des variables distinctes.
Mais visiblement il n'y a pas d'instruction de conversion string vers réel (ni même string vers entier) dans les scripts de VijeoDesigner.

Je suis donc parti dans l'idée de passer par des tableaux d'octets que je vais analyser ensuite.

J'utilise la méthode GetBytes sur une partie de la chaine de la manière suivante
bytes[] DATA=maChaineSource.getBytes();

(la variable maChaineSource contient la chaine "0,12")

Mais à chaque fois j'obtiens une erreur "Erreur de script d'application. Traitement code barre java.lang.ArrayIndexOutOfBoundsException: 4"

Ca ressemble à un dépassement des bornes du tableau.
Mais là où ça me chagrine, c'est que la chaine que je teste ne fais que 4 caractères de longueur.
Le code n'est exécuté qu'une fois...

Je sèche complètement là.

Re: Scripts VijeoDesigner et chaines de textes

Posté : 28 juil. 2016, 11:13
par itasoft
slts,
il faut extraire la valeur avec l'instruction substring(int beginIndex,int endIndex)

et convertir avec le write de la variable REAL
ex:
String sValue="123.456";
REAL01.write(sValue);

JE te met un exemple ci dessous pour extraire la valeur #0.12# à toi de continuer dans le même principe pour extraire les autres valeurs
script


//variable locale
String sVAL1="";
//Ton texte
String texte="#Libellé#0,12#1,00#0,723#Nom#";

int index=0,index1=0,index2=0;

//Remplacer les virgule par un point
texte=texte.replace(',','.');

//Extraire la valeur #0.12#
index=texte.indexOf('#',0);
index1=texte.indexOf('#',index+1);
index2=texte.indexOf('#',index1+1);
sVAL1=texte.substring(index1+1,index2);
//résultat affecté à la variable REAL01
REAL01.write(sVAL1);

Re: Scripts VijeoDesigner et chaines de textes

Posté : 28 juil. 2016, 12:15
par lerieur
Nickel !!!!!

T'es un chef itasoft !
Je commençais sérieusement à me prendre le choux sur ce problème depuis 2 jours ...
J'ai posé la question à 2 REA qui n'avaient pas de solution à me proposer et fait une demande à Chorus (toujours sans réponse depuis hier matin).

Et toi tu me règles ça en 30 minutes ... :p

J'avais pas vu la deuxième partie de ton message.
J'avais constaté le problème de la virgule qu'il fallait remplacer par un point.

Merci !!!!!!!

Re: Scripts VijeoDesigner et chaines de textes

Posté : 28 juil. 2016, 14:25
par sinced
itasoft est tres fort. Je pense qu'il doit arreter en automatisme et se lancer dans le programmation/amelioration des logiciels d'automatismes (Unity, Siemens etc).