Page 1 sur 1

[R] Liste trop longue, Unterminated string.

Posté : jeu. 08 avr. 2010 22:49
par julienduhavre
Bonjour, j'ai enfin fini la liste de mes prénoms, mais voila , je souhaite qu'un prénom soit sélectionner au hasard .

J'ai déja fait
► Afficher le texte
Mais sans succès, il me donne l'erreur suivante: Error: Unterminated String.

Comment puis-je faire? :cry:

Je vous remercie d'avance.

Re: [..] Liste trop longue, Unterminated string.

Posté : jeu. 08 avr. 2010 22:54
par GMib
Le plus simple serai de les garder dans le fichier txt. ;)

fait un random entre 1 et le nombre de ligne du fichier puis lit la ligne retourné par le random.

fonction utile :
_FileCountLines
FileReadLine

Re: [..] Liste trop longue, Unterminated string.

Posté : jeu. 08 avr. 2010 23:04
par julienduhavre
Pourrait-tu m'éclairé plus car je débute :? .

Re: [..] Liste trop longue, Unterminated string.

Posté : jeu. 08 avr. 2010 23:07
par Tlem
Ceci serait plus simple à mettre à jour. ;)

Re: [..] Liste trop longue, Unterminated string.

Posté : jeu. 08 avr. 2010 23:15
par julienduhavre
Je te remercie infiniment, grâce a toi je comprend mieux le fonctionnement ;).


Merci encore.

Re: [R] Liste trop longue, Unterminated string.

Posté : jeu. 08 avr. 2010 23:18
par GMib
Ah oui c'est encore plus simple avec _FileReadToArray ;)

Re: [R] Liste trop longue, Unterminated string.

Posté : jeu. 08 avr. 2010 23:32
par Tlem
Juste pour info car j'avais oublié de donner l'explication du problème, il faut savoir que l'attribution d'une chaine comme vous l'avez fait à une limite.
Une ligne de code ne doit pas dépasser 4095 caractères (http://www.autoitscript.fr/autoit3/docs ... faults.htm).

Si vous voulez faire une ligne trééééééééééééés lonnnnnnngue, alors vous devez utiliser des astuces tel que le fait de couper une ligne avec le caractère de continuation '_' ou tout simplement lors d'attribution de variable, coupé la chaine en plusieurs parties, puis en additionnant les morceaux bout par bout. ;)

Re: [R] Liste trop longue, Unterminated string.

Posté : mer. 14 avr. 2010 00:55
par jchd
Taille des lignes AutoIt :

Il n'y a plus de limite depuis, un certain temps. J'ai fortement contribué à violer Jon (heu, à distance, hein !) pour qu'il s'y colle et c'est fait depuis la AutoIt v3.3.3.2 (Beta) du 08/01/2010.

Pour la petite histoire, la limite ne s'appliquait pas aux lignes d'éditeur, mais à la ligne d'instruction présentée à l'intrepréteur. Donc l'astuce de la continuation n'y changeait rien et c'est précisément pour cette raison que la chose était particulièement gênante (initialiser une array un peu grosse, par exemple).

Donc je constate qu'il y a peu de bons élèves qui font leurs gammes avec du matériel aux normes, ici ! :lol:

Re: [R] Liste trop longue, Unterminated string.

Posté : mer. 14 avr. 2010 01:57
par Tlem
Si vraiment il n'y à plus de limite sur la ligne de commande, il faudra donc encore violer Jon un petit peut. :lol:
Car la doc n'est pas à jour dans ce cas : http://www.autoitscript.com/autoit3/doc ... faults.htm
Y compris dans le fichier d'aide. :P
jchd a écrit :Donc je constate qu'il y a peu de bons élèves qui font leurs gammes avec du matériel aux normes, ici ! :lol:
Si le matériel fournit n'est pas à jour, il est difficile de faire les gammes correctement. :roll:

De plus je ne parle pas de la continuation de ligne comme une solution pour résoudre le problème, mais plutôt comme une solution d'écriture/lecture de ligne 'trééééééééééééés lonnnnnnngue' totalement imbuvable si écrite en une seule fois (ce qui est le cas dans le premier message de julienduhavre). ;)

Edit : Étant par nature assez curieux, je me suis 'amusé' avec le code de julienduhavre afin de vérifier certaines choses.
Je joint un fichier à ce message afin d'illustrer mes constatations :
1 - Si le code de julienduhavre est mis de telle sorte que pas une ligne de code ne dépasse 4095 caractères , et bien ce code fonctionne.

2 - Si je crée une ligne de code de 4096 caractères, alors celle ci produite une erreur : Missing right bracket ')' in expression. (le crochet étant le caractère 4096, il n'est donc pas reconnu).
Si dans le même temps, je crée une ligne de code de 4097 caractères, alors celle ci produite une erreur : Unterminated string. (Hé ben voui, il manque le guillemet et le crochet :roll: ).
Amusez vous avec la ligne 12 du code joint. Modifiez le dernier mot (hé oui Jean Pierre ...) qui se nomme 'Timxx' en enlevant ou ajoutant des caractères afin de voir le résultat.

Re: [R] Liste trop longue, Unterminated string.

Posté : mer. 14 avr. 2010 06:46
par jchd
Wouha, va falloir encore batailler un peu alors. 'Goude catch', comme on dit sur certains rings.

Ceci dit, la limite que l'on rencontre ici est plus cosmétique qu'autre chose car on peut (maintenant) couper et continuer à la ligne suivante. Par contre, je doute fortement de faire aboutir la demande car elle n'apporte rien en pratique (je ne vois pas comment créer un token insécable et réaliste de plus de 4095 caractères, ou même octets).

Jon, descend de ton cheval mécanique flambant neuf et viens voir par ici !

Pour la doc, certes, c'est un souci car elle demande beaucoup de temps et d'attention et, malheureusement, le temps ne s'achète pas.
Par contre la doc est correcte sur ce point, parlant de ligne de script et non pas de longueur d'instruction ! Et du coup, plus de raisons de ne pas travailler son solfège (et disant cela, je ne vise pas Thierry, que ça soit clair).

On se rattrape comme on peut, hein...

Re: [R] Liste trop longue, Unterminated string.

Posté : mer. 14 avr. 2010 09:41
par Tlem
jchd a écrit :Ceci dit, la limite que l'on rencontre ici est plus cosmétique qu'autre chose
Cela aurait été bien, mais même sans passer par Scite (en lançant le script directement), on retrouve les mêmes erreurs.
jchd a écrit :je ne vois pas comment créer un token insécable et réaliste de plus de 4095 caractères, ou même octets).
Et si tout simplement la longueur de chaine était analysée pour retourner un message plus explicite tel que : 'String too long (4095 chars)'.
jchd a écrit :Pour la doc, certes, c'est un souci car elle demande beaucoup de temps et d'attention et, malheureusement, le temps ne s'achète pas.
Ca s'est sur et j'en sait quelque chose. ;)
jchd a écrit :Par contre la doc est correcte sur ce point, parlant de ligne de script et non pas de longueur d'instruction !
Oui, c'est bien ce que j'avais dit. ;)
Tlem a écrit :Une ligne de code ne doit pas dépasser 4095 caractères
jchd a écrit :On se rattrape comme on peut, hein...
Attention aux branches. :P