Page 1 of 1

manipulation de chaîne de + de 10 caractères

Posted: 31 Oct 2006, 13:18
by p_apanoel1
Bonjour,

Je cherche à manipuler des chaînes de caractère de grande taille :
- chargement d'un fichier de 10 Ko dans une variable en raison de la gestion des fin de ligne
- éclatement en sous-chaînes pour alimenter un robot de saisie
- boucle de progression dans la chaîne initiale jusqu'à la fin de chaîne.

Je rencontre un problème : dans la version utilisée l'ordre substr se plante dans 2 cas :
1) la position de départ est > 10
2) la longueur extraite est > 10

voici un exemple de code posant le problème (ordre substr({$test10},11,1)})

Code: Select all

ACT
v[1.0.0.8]
n[9]
s[windows]
p[actionaz]
e[2.0.5.0]
r[1024#768]
u[p_apanoel]
l[fr]
i[1000]
t[1]
a[10#test10#1#1234567890abcdef#0]
a[10#l-ssch1#0#{##strlen({$test10})}#0]
a[13#{$l-ssch1}#l-ssc1#0#0#0#null#0#null#9000]
a[10#ssc1#1#{##substr({$test10},0,1)}#0]
a[13#{$ssc1}#ssc1#0#0#0#null#0#null#9000]
a[10#ssc2#1#{##substr({$test10},11,1)}#0]
a[13#{$ssc2}#ssc2#0#0#0#null#0#null#9000]
a[10#concat#1#{$ssc1}&{$ssc2}#0]
a[13#{$concat}#concat#0#0#0#null#0#null#9000]
1) existe-t'il une limite à 10 caractères dans la taille des chaînes ?
2) si oui, existe-t'il une solution de contournement (copier coller,etc.) ?

Merci d'avance,

Posted: 31 Oct 2006, 17:37
by Jmgr
Je vais voir ce que je peux faire, mais à priori je n'ai pas fixé de limite, il doit donc s'agir d'un bug.

Posted: 11 Nov 2006, 15:47
by Jmgr
Bon en fait ce n'est pas un bug : tu as fait une erreur dans ton script.
En effet la fonction substr contient 3 paramètres, le premier : la chaîne à analyser, le second : le caractère de début où couper et le troisième le caractère de fin de la coupure.

Donc le deuxième paramètre doit être inférieur au troisième, ce qui n'était pas le cas.

Voici le script corrigé :

Code: Select all

ACT
v[1.0.0.9]
n[9]
s[windows]
p[actionaz]
e[2.0.6.0]
r[1280#1024]
u[Jmgr]
l[fr]
i[1000]
t[1]
a[10#test10#1#1234567890abcdef#0]
a[10#l-ssch1#0#{##strlen({$test10})}#0]
a[13#{$l-ssch1}#l-ssc1#0#0#0#null#0#null#9000]
a[10#ssc1#1#{##substr({$test10},0,1)}#0]
a[13#{$ssc1}#ssc1#0#0#0#null#0#null#9000]
a[10#ssc2#1#{##substr({$test10},11,13)}#0]
a[13#{$ssc2}#ssc2#0#0#0#null#0#null#9000]
a[10#concat#1#{$ssc1}&{$ssc2}#0]
a[13#{$concat}#concat#0#0#0#null#0#null#9000]
Cela dit merci car tu m'as permis de trouver quelques bugs :p