Page 1 sur 1
[R] Changer les chiffres par d'autres aléatoire
Posté : lun. 26 août 2013 23:04
par silvere
Bonjours
Je fait la requête d'un scripte qui permettrais, dans un fichier texte de modifier les chiffre par d'autres aléatoire.
Merci d'avance a cette âme charitable qui répondra a cette requête.
Bonne nuit au couche tard :p
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : lun. 26 août 2013 23:09
par yohan8
Il faut lire ces chiffres dans tes fichiers textes ou peut-on les modifier directement ?
Dans ce cas tu n'as qu'a supprimer tes fichiers et en créer de nouveau en utilisant FileWrite avec un Random pour écrire tes chiffres aléatoire
Ce sont des fichiers txt ou ini ?
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : lun. 26 août 2013 23:19
par silvere
On peut les modifier directement

Fichier txt
Bah non car il y a pas que des chiffre il y a également des lettres et j'aimerais que les chiffre conserve leur place entre les lettres tout en les changeant aléatoirement
Merci

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : lun. 26 août 2013 23:28
par yohan8
silvere a écrit :j'aimerais que les chiffre conserve leur place entre les lettres tout en les changeant aléatoirement
En voila une autre demande non précisé dans le premier post :p
Est-ce que tu connais la place exact de chaque lettre ? du genre [2 chiffres]A[3 chiffres]Z[1 chiffres]
T'as pas un exemple concret ?

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : lun. 26 août 2013 23:46
par silvere
Sa me paraissais logique
Non je ne connais pas les emplacement des chiffre ils changent a chaque fichier
Exemple :
► Afficher le texteFichier texte Entré
► Afficher le texteFichier texte Sotie
(ca) = chiffre aléatoire
Comprend-tu ?

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mar. 27 août 2013 00:05
par yohan8
J'étais pas très optimiste au début mais finalement c'est pas trop mal
Code : Tout sélectionner
FileWrite("test.txt","cducjnjfvoln2dsi5sd7ed8ed9ef5ef4ef2"&@CRLF)
$text = FileRead("test.txt")
For $i = 0 To 9
$text = StringReplace($text,String($i),"*")
Next
Do
$text = StringReplace($text,"*",Random(0,9,1),1)
Until @extended=0
FileWriteLine("test.txt",$text)
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mar. 27 août 2013 02:07
par jchd
Je me planque maintenant, vais encore me faire enguirlander moi !
► Afficher le texte
FileWrite("test.txt", "cducjnjfvoln2dsi5sd7ed8ed9ef5ef4ef2" & @CRLF)
$text = FileRead("test.txt")
$text = Execute("'" & StringRegExpReplace($text, "\d", "' & Random(0, 9, 1) & '") & "'")
ConsoleWrite($text & @LF)
FileWrite("testout.txt", $text)
Quel est le but, sans indiscrétion ?
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mar. 27 août 2013 09:21
par yohan8
Whaou la fonction customisé qui règle le problème en une ligne
Code : Tout sélectionner
$text = Execute("'" & StringRegExpReplace($text, "\d", "' & Random(0, 9, 1) & '") & "'")
J'ai jamais su exploiter ces fonction StringRegExp..

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mar. 27 août 2013 09:33
par jchd
Il ne tient qu'à toi d'apprendre.
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mar. 27 août 2013 09:41
par jguinch
@jchd : franchement excellent !
C'est super simple, mais fallait y penser.
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mar. 27 août 2013 21:18
par jchd
C'est un peu devenu une seconde nature avec le temps, une verrue au cerveau en quelque sorte.
Plus sérieusement -et Thierry ne peut qu'acquiescer- les expressions régulières ont un défaut majeur, c'est leur aspect cryptique qui fait gémir le néophyte.
Bon, c'est un défaut très relatif quand on considère que c'est un langage de programmation fort spécialisé et qu'on le compare à APL ou Forth.
Leur expressivité et les possibilité de manipulation sont très appréciables et sont d'ailleurs un pillier fondamental d'un langage tel que Perl (et pour cause !), et il est difficile de nier que Perl a eu une influence importante.
Sous une notation concise et parfaitement précise, elle permettent souvent de réaliser des manipulations non triviales ou des filtrages stricts, dont l'équivalent en langage hôte (AutoIt ou autre) s'avère souvent pénible. Cependant il faut éviter de vouloir tout faire avec car on peut facilement créer une usine à gaz fragile, mais cette remarque s'applique aussi bien à de nombreux contextes.
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mer. 28 août 2013 17:34
par Tlem
jchd a écrit :et Thierry ne peut qu'acquiescer- les expressions régulières ont un défaut majeur, c'est leur aspect cryptique qui fait gémir le néophyte.
Certes, mais au delà de cet effet de bord, il est un effet encore plus pervert. C'est celui de la maitrise globale du motif en fonction de la donnée.
En effet, la puissance des expressions permet de faire en une ligne ce qu'il faudrait faire en plusieurs lignes avec les fonctions de traitement par chaîne.
Celui qui a la maitrise de réglage du motif de l'expression arrivera sans nul doute à se dépatouiller plus ou moins rapidement des exceptions liées aux données à traiter.
Maintenant, celui qui sait faire ca ne passera probablement pas ici pour demander de l'aide sur ce type de traitement.
Malheureusement, ce nest pas le cas de la très grande majorité des demandes du forum et surtout, je trouverais un peu limite "d'obliger" un membre à ce mettre à l'expression régulière sous prétexte que celle ci est bien supérieure au traitement par chaîne. C'est un peu comme si je donnais comme conseil de passer au C++ au lieu de AutoIt car ce dernier est lent le fichier compilé est peu sécurisé !!!
Le traitement par chaîne a pour avantages de bien cerner chaque étape du traitement de la donnée. Une fois celle ci déterminée et maîtrisée dans tous ses aspects, alors oui, la transformation du traitement par un expression régulière permettra un gain de temps sur une grosse masse de données.
Maintenant, si le traitement est réalisé sur une quantité limitée de données, est ce que le temps de réflexion et de mise au point et d'adaptation d'un motif d'une expression régulière sera plus rapide qu'un traitement pas a pas que lon maîtrisera plus facilement, là j'en suis nettement moins sûr. ^^
Je précise bien que cette réflexion est valable pour des traitements plus ou moins lourds. Il est clair qu'en la circonstance, le traitement est tellement simplement qu'il ne laisse pas beaucoup de place à l'anicroche (quoi que ...).
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mer. 28 août 2013 22:42
par yohan8
Peut-être que la rédaction d'un tutoriel pourrais nous aider à nous lancer dans l'utilisation de cette fonction.
Il est vrai que dans la plupart des cas on se débrouille avec les fonctions de traitement par chaîne mais lorsque je vois que certains réussissent à synthétiser mon code par une simple ligne, je n'ai que l'envie de maitriser à mon tour ces expressions régulières.
Il ne tient qu'à moi d'apprendre. Mais très peu de sujet l'aborde et la doc anglaise n'est pas très parlante.
Avec un peu de temps et beaucoup de volonté il serait possible d'en arriver à une telle maîtrise.
Mais avec un coup de pouce de ceux qui possède le savoir et la maitrise du sujet, nous serions beaucoup plus à nous lancer dans la découverte, l'apprentissage et la perfection de l'utilisation de cette fonction.
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mer. 28 août 2013 22:55
par mikell
Même si je suis globalement d'accord avec toi les "je sais ce qui est bon pour vous" ont toujours eu tendance à me faire dresser les poils des bras (tu t'en doutes) et priver les gens de la possibilité de découvrir la puissance des expressions régulières n'est pas forcément un choix judicieux
En effet l'utilisateur accrochera ou n'accrochera pas, mais ce sera son choix à lui
L'intérêt d'un topic comme celui-ci est justement de proposer les 2 solutions, puisque la solution 'classique' de yohan8 marche très bien
EDIT
@yohan8
Il ya de très bon tutoriels déjà existants comme
http://www.rexegg.com/ ou
http://www.regular-expressions.info/tutorial.html
Après quand on tombe sur des exemples dans le forum il ne faut pas hésiter à exiger des explications

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mer. 28 août 2013 22:58
par jguinch
@yohan8 : tu peux commencer par lire le
tutode notre ami mikell.
Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mer. 28 août 2013 23:01
par Tlem
mikell a écrit :les "je sais ce qui est bon pour vous" ont toujours eu tendance à me faire dresser les poils des bras (tu t'en doutes) et priver les gens de la possibilité de découvrir la puissance des expressions régulières n'est pas forcément un choix judicieux
Même réflexion pour moi mais dans l'autre sens. Comment veux tu maîtriser un expression régulière si déjà tu ne maîtrise pas la réflexion en version chaîne.

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mer. 28 août 2013 23:21
par mikell
Ah, mais ya les fonctions et puis ya leur usage, donc en fait ça dépend surtout du niveau de difficulté de la question posée
Par exemple la réponse de yohan8 c'est une certaine gymnastique intellectuelle, + le fait de penser à utiliser @extended
Quelqu'un capable de pondre un code comme ça, AMHA il est mûr pour les regex

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mer. 28 août 2013 23:59
par Tlem
Les futures questions de yohan8 nous montreront ce qu'il en est.

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : jeu. 29 août 2013 16:04
par yohan8
La rentré qui arrive et déjà du travail d'imposé :p
Si le temps me le permet, c'est promis je m'y mettrais

Re: [..] Changer les chiffres par d'autres aléatoire
Posté : mer. 04 sept. 2013 20:49
par silvere
Merci a tous !
Ca me conviens très bien

Désolé pour la réponse tardive je n'avais plus accès a internet

Pour les curieux comme @jchd (

) cela me sert pour modifier des exercice types de maths
afin de révisé avant la rentrée