Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Programmation _ changer un caractere

Écrit par : Tordek 4 Aug 2004, 12:46

Salut a tous je voudrais savoir comment on pourais changer un caractere dans le nom d'un dossier par un autre caractere et etc avec les autre caractere.Merci

Écrit par : schlum 4 Aug 2004, 13:02

QUOTE(Tordek @ 4 Aug 2004, 13:46)
Salut a tous je voudrais savoir comment on pourais changer un caractere dans le nom d'un dossier par un autre caractere et etc avec les autre caractere.Merci
[right][snapback]799109[/snapback][/right]

Euh tu pourrais préciser un peu ? huh.gif Dans un programme ? Quel langage ? Qu'est-ce que tu veux faire exactement ? Comprends rien sad.gif

Écrit par : Tordek 4 Aug 2004, 13:12

A ouai c'est vrai ce n'est pas parceque c'est clair dans ma tete que ce le sera dans la votre.Dans applescript je veut pouvoir changer les caractère du nom d'un dossier par d'autre caractere mais cela sans changer directement le nom c'est a dire changer par example le caractere 1 pui le dernier caractere et tans que j'y suis comment changer les caractere d'un fichier avec la commande Open for acces toujour dans applescript

Écrit par : f_cam 4 Aug 2004, 13:22

Donc tu veux récupérer le nom d'un dossier et ensuite manipuler cette chaîne de caractères?

Écrit par : Tordek 4 Aug 2004, 13:31

Voila c'est axactement sa

Écrit par : Tordek 4 Aug 2004, 19:17

En fait il me faudrais celement connaitre une commande pour ne pas changer le nom mais juste un caractere dans le nom d'un dossier

Écrit par : Fredo d;o) 4 Aug 2004, 23:07

QUOTE(Tordek @ 4 Aug 2004, 19:17)
En fait il me faudrais celement connaitre une commande pour ne pas changer le nom mais juste un caractere dans le nom d'un dossier

Tel que tu le demandes, ça n'existe pas en AS pur (peut-être avec du shell, mais je ne suis pas calé pour l'affirmer), en somme, pour changer un caractère pour un autre dans le nom d'un dossier (ou fichier d'ailleurs) tu es obligé de manipuler la chaîne de caractères puis de changer entièrement le nom du dossier par le nouveau...

Heu... huh.gif ché-pas-si-chui-clair-là blink.gif

Au fait, plus clairement, il faut faire un simple "chercher/remplacer"... voici une piste :
CODE

tell application "Finder"
set Doss to (choose folder) --On choisi un dossier
set Nom to name of Doss --On récupère son nom
--On note le caractère à remplacer
set CarOld to text returned of (display dialog "Indiquez le caractère à remplacer :" default answer "")
--On note le caractère de remplacement
set CarNew to text returned of (display dialog "Indiquez le caractère de remplacement :" default answer "")
--On fait le chercher/remplacer
set text item delimiters of AppleScript to CarOld
set Lst to text items of Nom
set text item delimiters of AppleScript to CarNew
set Nom to Lst as text
set name of Doss to Nom --On applique le nouveau nom au dossier
end tell

wink.gif

Écrit par : Tordek 5 Aug 2004, 10:15

Merci mais je pence avoir presceque trouvé le moyen pour le faire il suffi de déterminer une variable qui est le debut du mot (donc qui s'arete avan le caractere en question) de déterminer le nouveau caractere pui de déterminer la fin.Mais je pence que je ne me suis pas exactement bien exprimé en fait je veut pouvoir changer tous les caractere du nom d'un dossier chaqun leur tour dans un repeat.Hier soir j'ai presque trouvé comment faire mais mon script ne change que les 2 premier caractere puis me dit "Imposssible de rendre les donné dnas le type atendu" en surlignan la ligne ou j'indique le nom de mon dossier et j'en ai eu marre je trouverais bien un moyen auter que dans applescript merci quand meme

Écrit par : Fredo d;o) 5 Aug 2004, 10:29

Et si tu postait ici ton bout de code ?
On pourrais peut-être te donner un coup de main, non ?
wink.gif

Écrit par : Tordek 5 Aug 2004, 10:34

Ouais c'est vrais donc voici mon code :

CODE

property NR : 1
set x to choose folder
tell application "Finder"
set y to name of x
set w to ("" & y)
set z to count y
repeat z times
 set y to name of x
 set z to count y
 set w to ("" & y)
 set C to character NR of y
 set n to ASCII number C
 set ajouter to 10
 set NC to ASCII character (n + ajouter)
 if NR = 1 then
  set debu to "$"
 else
  set debu to get text of characters 1 thru NR of w
 end if
 set lz to (z - 1)
 if NR = lz then
  set fin to "$"
 else
  set fin to get text of characters (NR + 1) thru z of w
 end if
 set name of x to debu & NC & fin
 set NR to NR + 1
end repeat
end tell
set NR to NR - NR + 1

Vous l'aurez compris en fait sa change un caractere pas un caractere aléatoire dans le nom du dossier.C'est pour cripter le nom d'un dossier si on a pas de mot de passe

Écrit par : Fredo d;o) 5 Aug 2004, 12:39

QUOTE(Tordek @ 5 Aug 2004, 10:34)
C'est pour cripter le nom d'un dossier si on a pas de mot de passe

Et bein alors, il fallait le dire plus tôt smile.gif biggrin.gif

Bon, pas trop bien compris ce que ton code cherchait à faire (prend l'habitude de nommer tes variables d'une manière un peu plus explicite que des simples lettres, j'ai passé une démi heure à essayer de comprendre dry.gif )...

Enfin, voici une petite solution que je viens de faire (vite fait, je n'ai malheureusement pas trop le temps de fignoler aujourd'hui) : http://fredomkb.free.fr/projets/EncryptDecrypt/EncryptDecrypt.sit (9 ko).

Mais l'essentiel du code, c-à-d les routines d'encryptage et de décryptage, ont été faites par quelqu'un d'autre, il s'agit de Serge S., et tu peut trouver ses routines, et bien d'autres, dans l'espace dédié à AppleScript sur son site web : http://wirinum.free.fr/.

Quant à l'utilisation de ce petit script, c'est assez simple :

1. Fait un glisser/déposer des éléments que tu veux crypter sur l'icône du script :

user posted image

2. Une boîte de dialogue va apparaître te demandant d'inscrire la clef de cryptage (choisi quelque chose de pas trop compliqué, ça serait bête que tu l'oublies par la suite) :

user posted image

3. Enfin, clique sur le bouton "Encrypter", et voilà le résultat :

user posted image

Pour décrypter les noms, c'est exactement la même opération mais en cliquant sur le bouton "Décrypter" et en fournissant bien-sûr exactement la même clef de cryptage (ça me paraît tellement évident que je me demande pourquoi je le dis !? huh.gif )...

En tout cas, si tu veut utiliser le script d'une autre manière, pas de problème, le code est OpenSource, c-à-d que tu peut l'éditer et l'utiliser, l'adapter, etc. dans tes propres projets...
Seule condition, c'est que tu fasse mention dans le code de ton script des auteurs originaux (Merci smile.gif ).

Voilô wink.gif

Écrit par : Tordek 5 Aug 2004, 13:03

Merci beaucoup sa m'evitera de perdre mon temps a chercher le script pour les variable c'est parceque je ne soulias pas tro perdre de temps a écrire des variable super longue.En tous cas cela m'aide bien.

Écrit par : f_cam 5 Aug 2004, 13:21

Tu gagnes peut-être quelques secondes à taper des noms plus court, mais là prochaine fois tu perdra bien plus de temps en essayant de comprendre ton code.

Écrit par : Fredo d;o) 5 Aug 2004, 13:51

QUOTE(f_cam @ 5 Aug 2004, 13:21)
Tu gagnes peut-être quelques secondes à taper des noms plus court, mais là prochaine fois tu perdra bien plus de temps en essayant de comprendre ton code.

Je ne l'aurais pas dit mieux !

Donc, conseil à suivre smile.gif

wink.gif

Écrit par : Tordek 5 Aug 2004, 14:59

Je sais maintenant je définit bien mes variable.Pour le code je n'aurais en fait pas pencé a utiliser une routine (car je ne savais pas les faire!!!!) je vais peut etre me créer ma propre routine pour me simplifier la chose

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)