[R] Split Intelligent !
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.
[R] Split Intelligent !
Bonjour,
Aujourd'hui je suis confronter a un problème de Split, pas la fonction mais pour découpé un texte spéciale.
Je veux séparé ceci :
500, 1000, [[968, 1], [948, 5]], [11, 10], [27, 47], [453, 3, 437]
De façon a l'avoir en morceaux comme ça :
500
1000
[[968, 1], [948, 5]]
[11, 10]
[27, 47]
[453, 3, 437]
Merci d'avance. Locos974.
Aujourd'hui je suis confronter a un problème de Split, pas la fonction mais pour découpé un texte spéciale.
Je veux séparé ceci :
500, 1000, [[968, 1], [948, 5]], [11, 10], [27, 47], [453, 3, 437]
De façon a l'avoir en morceaux comme ça :
500
1000
[[968, 1], [948, 5]]
[11, 10]
[27, 47]
[453, 3, 437]
Merci d'avance. Locos974.
Modifié en dernier par locos974 le ven. 28 juin 2013 20:24, modifié 1 fois.
Cordialement Locos974.
Re: [..] Split Intelligent !
Je t'aurais bien proposé d'utiliser la famille split mais le chat vert risque de passer ici avec une solution bien plus simple 
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Re: [..] Split Intelligent !
Salut.
Avant que le chat vert ne pointe son museau, voilà une possibilité :
Avant que le chat vert ne pointe son museau, voilà une possibilité :
Code : Tout sélectionner
#Include <Array.au3>
$line = "500, 1000, [[968, 1], [948, 5]], [11, 10], [27, 47], [453, 3, 437]"
$split = StringRegExp( $line, "\A(\d+),\s*(\d+),\s*(\[\[.*\]\]),\s*(\[.*?\]),\s*(\[.*?\]),\s*(\[.*?\])" , 1)
_ArrayDisplay($split)Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] Split Intelligent !
Le problème reste que la ligne change ( 740 lignes comme celle-ci différente :/ ). J'ai oublié de le préciser..
C'est à dire que des fois elle peut être comme je l'ai donné et elle peut être :
1200, null, null, null, null, null
Ou :
null, 500, null, null, null, null
Les 2 premiers sont des chiffres entiers.
Les 4 derniers sont des groupes dont le 1er :
[[x,y], [z,w], ..]
Et les 3 derniers, comme ceci :
[x,y,z,w,..]
Donc ce qui nous donne un truc aléatoire avec :
chiffre, chiffre, [[x,y], [z,w], ..], [x,y,z,w,..], [x,y,z,w,..], [x,y,z,w,..]
Quand il n'y a rien, cela vaux null.
C'est à dire que des fois elle peut être comme je l'ai donné et elle peut être :
1200, null, null, null, null, null
Ou :
null, 500, null, null, null, null
Les 2 premiers sont des chiffres entiers.
Les 4 derniers sont des groupes dont le 1er :
[[x,y], [z,w], ..]
Et les 3 derniers, comme ceci :
[x,y,z,w,..]
Donc ce qui nous donne un truc aléatoire avec :
chiffre, chiffre, [[x,y], [z,w], ..], [x,y,z,w,..], [x,y,z,w,..], [x,y,z,w,..]
Quand il n'y a rien, cela vaux null.
Cordialement Locos974.
Re: [..] Split Intelligent !
OK, alors essayes avec ça :
Code : Tout sélectionner
#Include <Array.au3>
$line = "500, 1000, [ [968, 1], [948, 5], [122,2] ], [11, 10], [27, 47], [453, 3, 437]"
$split = StringRegExp( $line, "\A(\d*|null)\s*,\s*(\d*|null)\s*,\s*(\[\s*\[.*\]\s*\]|null)\s*,\s*(\[.*?\]|null)\s*,\s*(\[.*?\]|null)\s*,\s*(\[.*?\]|null)" , 1)
_ArrayDisplay($split)Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] Split Intelligent !
Je ne saurais pas comment vous remerciez ! La chose qui me sera très utile qui me manquait en Autoit niveau tâche rapide ! Merci bien !
Cordialement Locos974.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Split Intelligent !
@jguinch
Quand même un peu optimisable
Quand même un peu optimisable
Code : Tout sélectionner
#Include <Array.au3>
$line = "null, 1000, [ [968, 1], [948, 5], [122,2] ], [11, 10, null], [27, 47, ], [453, 3, 437]"
$split = StringRegExp(StringStripWS($line, 8), '(.*),(.*),(\[\[.*\]\]),(\[.*\]),(\[.*\]),(\[.*\])', 1)
_ArrayDisplay($split)" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Split Intelligent !
@mikell : ah oui là c'est optimisé
J'avais utilisé (\d*|null) pour ne pas traiter les lignes qui contiendraient des mauvaises valeurs dans les 2 premiers champs (je pense toujours aux cas tordus.... )
A+
J'avais utilisé (\d*|null) pour ne pas traiter les lignes qui contiendraient des mauvaises valeurs dans les 2 premiers champs (je pense toujours aux cas tordus.... )
A+
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Split Intelligent !
C'est pas faux ... mais
AMHA une 'mauvaise' valeur dans un champ peut être récupérée quand même à fin d'analyse, le script se contentant de classer le contenu des champs et le tri des données récupérées étant fait secondairement avec une gestion d'erreur adaptée
M'enfin bon on sort un brin du sujet là
DimVar a écrit : le chat vert risque de passer ici
je ne pouvais PAS ne pas répondrejguinch a écrit :Avant que le chat vert ne pointe son museau
AMHA une 'mauvaise' valeur dans un champ peut être récupérée quand même à fin d'analyse, le script se contentant de classer le contenu des champs et le tri des données récupérées étant fait secondairement avec une gestion d'erreur adaptée
M'enfin bon on sort un brin du sujet là
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )



