Aide Applescript

Y'a pas de problème… ;)

Tu peux tout de même avoir des doutes sur sa qualité, je suis très loin d'être un pro, je ne suis pas JackJr300… :D
Ote moi d'un doute.

Il cherche si j'ai bien compris que le nom de ça petite maison ne soit pas pris en compte.

Cet ajout à ton script est-il correct?

Bloc de code:
set nom_Session to (system attribute "USER")
	set folderNames to {"Users", "Library", "Desktop", "Downloads", "Movies", "Music", "Pictures", nom_Session}
	set folderNamesOk to {"Utilisateurs", "Bibliothèque", "Bureau", "Téléchargements", "Séquences", "Musique", "Images", "Maison"}

Maison étant remplacé par le mot de votre choix.

La première ligne pour être utilisable sur plusieurs sessions.

JackJr300 je suis par apport a lui en taille, juste a la hauteur de la plante de ces pieds pour mes connaissances sur AppleScript.

@+
 
merci à vous 2

j'ferai ma tambouille editor et je vous tiens au courant


ps il fait quelle taille en chaussures le JackJr300?
du 54?
:D
 
Ote moi d'un doute.

Il cherche si j'ai bien compris que le nom de ça petite maison ne soit pas pris en compte.

Cet ajout à ton script est-il correct?

Bloc de code:
set nom_Session to (system attribute "USER")
	set folderNames to {"Users", "Library", "Desktop", "Downloads", "Movies", "Music", "Pictures", nom_Session}
	set folderNamesOk to {"Utilisateurs", "Bibliothèque", "Bureau", "Téléchargements", "Séquences", "Musique", "Images", "Maison"}

Maison étant remplacé par le mot de votre choix.

La première ligne pour être utilisable sur plusieurs sessions.

JackJr300 je suis par apport a lui en taille, juste a la hauteur de la plante de ces pieds pour mes connaissances sur AppleScript.

@+
Si on modifie comme ci-dessus, le code est effectivement valable quel que soit la session ou le mac…

@Pascalformac, 54 ? Je crois que tu es bien au-dessous de la réalité…:D
J'avais même fait un gif rien que pour lui…
Jacky.gif
 
merci à vous 2

j'ferai ma tambouille editor et je vous tiens au courant


ps il fait quelle taille en chaussures le JackJr300?
du 54?
:D
Si tu veut bien utiliser AppleScript, il faut fréquenter cette personne.

C'est très souvent qu'il a des réponses simplement pour lui dire MERCI.

Il y a même un fan club qui s'était créé a une époque.

La preuve, même zacromatafalgar qui a créé une pancarte de remerciement.

J'ai eu besoin de ces services sur certains code du terminal à ajouter a mon code, et aucune modifications ,c'est du parfait.

@+
 
salut à tous,

je voulais justement créer une application du type (voir ce sujet: http://forums.macg.co/developpement-sur-mac/aide-a-la-programmation-237566.html) !

Est-ce que je pourrais réutiliser ce code à ma sauce, pour une utilisation personnelle bien sûr?

Pourriez-vous faire un rappel du code complet qui marche, parce que là je suis un peu perdu je dois dire... chez moi cette portion
Bloc de code:
property messFrom : "xxx @ xmail.com"
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
    set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
    try
        thefile as alias
    on error
        do shell script "touch " & (quoted form of thefile)
    end try
    set theDate to (current date)
    set messSub to ("Rapport Traceroute du : " & theDate)
    set messTo to readFile(thefile)
    set rapport to do shell script "/usr/sbin/traceroute google.fr"
    
    
    do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom
    
end run

on readFile(PathFile)
    try
        set foo to (open for access (PathFile))
        set theAddress to (read foo)
        close access foo
    on error
        close access foo
        set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "[email protected]" buttons "OK" default button 1)
        writeFile(PathFile, theAddress)
    end try
    return theAddress
end readFile

on writeFile(PathFile, theData)
    set x to open for access file (PathFile as Unicode text) with write permission
    try
        set eof x to 0
        write theData to x
        close access x
    on error
        close access x
    end try
end writeFile
me dit que la variable foo n'est pas définie...

Merci d'avance,
BS0D
 
Bonjour BS0D,

Je n'ai pas le code final sous la main, mais je vais essayer de te l'envoyer ce soir.

Il a bien évolué, depuis le code que tu as posté.

Encore merci de l'intéret que tu porte au logiciel,
 
salut à tous,

Merci Macman31 pour ta réponse ;)

voilà, j'expose mon problème parce que j'ai aucune réponse et je suis en train de me prendre le chou sur un truc tout bete, mais pour lequel je trouve ni exemple, ni solution.

Je cherche à compter les occurences d'un caractere (défini par l'utilisateur à l'ouverture, par ex: "a") dans un fichier texte.

j'arrive donc bien à lancer l'ouverture du fichier, à ouvrir un prompt dialogbox pour rentrer le caractere dont on veut trouver le nombre d'occurences, mais pour la suite...

Voici mon code (soyez pas surpris si ça n'a pas de sens, je le triture depuis hier sans relache et je ne sais plus par où m'y prendre!):

Bloc de code:
set mon_Fichier to choose file with prompt "Choisissez un document TEXT" default location ((path to desktop folder) as alias) of type {"TEXT", "EPSF", "XLS8", "RTF"} with multiple selections allowed and invisibles

[COLOR=Red]read mon_Fichier
set le_caractere to {e:"e", a:"a", h:"h"}
set la_reponse to ""

on nombre_caractere(le_caractere)
    set nb_caractere to 0
    repeat until last item of document ((count) & le_caractere)
    end repeat
end nombre_caractere[/COLOR]

try
    set la_reponse to display dialog "Quel est le caractère recherché?" default answer "a"
    display dialog "Il y a \"" & text returned of la_reponse & "\" occurences dans votre texte" buttons "OK" default button "OK"
on error
    display dialog "Opération annulée..." buttons "OK" default button "OK"
end try
La partie en rouge est bien sûr du n'importe quoi et pas fini ni retravaillé. J'ai simplement essayé de créer une fonction pour calculer les occurences de la lettre rentrée par l'utilisateur mais je bloque complètement.
Je dois dire aussi que le code que j'avais hier soir avait beaucoup plus de sens et que j'étais 10 fois plus proche du but que là !!

merci d'avance...


PS: je m'aide de ça pour la lecture du fichier, dans mon code rien n'apparait mais j'en tiens compte ;)
 
OK, bon, j'ai déjà trouvé une bonne façon de m'assurer que mon fichier est lu:

Bloc de code:
    set mon_Fichier to choose file with prompt "Choisissez un document TEXT" default location ((path to desktop folder) as alias) of type {"TEXT", "EPSF", "XLS8", "RTF"} without multiple selections allowed and invisibles
    
    open for access mon_Fichier with write permission
    set contenu_lu to read mon_Fichier
    close access mon_Fichier
Ça au moins je suis sur que ça marche... on s'en apercoit si on rajoute sous ce code " display dialog contenu_lu "

mais au niveau de l'isolation d'un caractere en particulier et du comptage d'occurences de celui-ci, je sais pas trop comment m'y prendre
 
Salut,

Je t'ai fait le script suivant qui fonctionne :
Bloc de code:
on run
	set mon_Fichier to choose file with prompt "Choisissez un document TEXT"
	set theText to readFile(mon_Fichier)
	set theChar to text returned of (display dialog "Quel est le caractère recherché?" default answer "a")
	set occNbr to findLr(theText, theChar)
	
	display dialog "occNbr : " & occNbr
	
end run

on readFile(PathFile)
	try
		set foo to (open for access PathFile)
		set theData to read foo
		close access foo
	on error
		close access foo
	end try
	return theData
end readFile

on findLr(the_string, charTF)
	set AppleScript's text item delimiters to charTF
	set the_list to text items of the_string
	set charNbr to ((count of the_list) - 1)
	set AppleScript's text item delimiters to ""
	return charNbr
end findLr
;)
 
  • J’aime
Réactions: BS0D
Mwaaaah, tu me dégoutes !!

C'est trop facile pour toi ;)


Merci beaucoup en tous cas, je vais essayer de déméler et d'étudier pour voir ce que je faisais de travers... :D
 

Nan je plaisante. C'est juste que pour toi c'est facile, moi j'aurais préféré que tu me pointes dans la bonne direction au lieu de me cracher le résultat, car j'ai rien appris pour le coup.
j'ai tellement peu de logique pour la programmation que j'essaie de m'entrainer sur des petits trucs dans le genre, masi c'est assez peu concluant ... :rose:
 
Oui, j'avais bien compris que tu plaisantais, j'ai mis quelques commentaires dans le code pour me faire pardonner… :D
Bloc de code:
on run
	set mon_Fichier to choose file with prompt "Choisissez un document TEXT"
	set theText to readFile(mon_Fichier) --on fait appel à la fonction readFile pour lire le fichier
	set theChar to text returned of (display dialog "Quel est le caractère recherché?" default answer "a")
	set occNbr to findLr(theText, theChar) --on fait appel à la fonction findLr pour compter le nombre de caractères ou de mot recherché suivant le texte retourné à la ligne précédente
	
	display dialog "occNbr : " & occNbr
	
end run

on readFile(PathFile) --fonction de lecture
	try --bloc "try - on error - end try" permet de lancer une action sans faire planter le script en cas d'erreur
		set foo to (open for access PathFile) --ouverture du fichier
		set theData to (read foo) --lecture
		close access foo --fermeture
	on error --en cas d'erreur…
		close access foo --on referme le fichier
	end try
	return theData --on retourne le texte dans une variable afin de le remettre à la fontion suivante dans le corps du script
end readFile

on findLr(the_string, charTF)
	set AppleScript's text item delimiters to charTF --on utilise le caractère recherché pour séparé les bouts de texte
	set the_list to text items of the_string --on met chaque morceau de texte dans une liste
	set charNbr to ((count of the_list) - 1) --on compte le nombre de morceaux, nombre auquel on soustrait 1*
	set AppleScript's text item delimiters to "" --on remet le séparateur par défaut
	return charNbr --on retourne le résultat afin de l'afficher
end findLr

(*
si on recherche le nombre d'occurences du chiffre 8 dans le string suivant : 7786538421
on constate que le 8 apparaît 2 fois or nous avons compté les morceaux séparés par des 8 qui sont au nombre de 3, il faut donc soustraire 1
*)
;)
 
chouette code]
Le code est vraiment intéressant... par contre surprise... je l'ai testé sur du TXT et sur du RTF avec le même bout de texte : là ou en txt il me répond 6 (bonne réponse) en RTF il me répond 22...

Pourquoi?

PS : je ne cherche pas spécialement a avoir ce script opérationnel sur du rtf... juste à comprendre...
Quels sont le formats de texte sur lesquels on peut s'attendre à le voir fonctionner correctement...
 
Salut,

Dans un fichier rtf, il y a les metadatas qui comprennent la couleur du texte, la police utilisée, les marges du documents et quelques autres choses. Pour le voir exécute le code suivant en choisissant un fichier rtf vide :
Bloc de code:
on run
	set theFile to choose file
	set theText to readFile(theFile)
	log theText
end run

on readFile(PathFile)
	try
		set x to open for access PathFile
		set theData to read x
		close access x
	on error
		close access x
	end try
	return theData
end readFile
Choisi l'onglet Hist. des événements au bas de la fenêtre de l'éditeur de script pour voir le texte… ;)

Ce script ne fonctionnera donc que sur des documents contenant du texte brut.
 
Le code est vraiment intéressant... par contre surprise... je l'ai testé sur du TXT et sur du RTF avec le même bout de texte : là ou en txt il me répond 6 (bonne réponse) en RTF il me répond 22...

Pourquoi?

PS : je ne cherche pas spécialement a avoir ce script opérationnel sur du rtf... juste à comprendre...
Quels sont le formats de texte sur lesquels on peut s'attendre à le voir fonctionner correctement...
Bonjour

Le fichier RTF avec TextEdit est fait pour être utilisé en bundle.

Si une image avec le texte = bundle, texte seul fichiers.

Fait un contrôle de ce qui se trouve dans la variable theData

Grillé

@+
 
Bonjour,

Texte en *.txt, ouvert avec TextEdit : lol

Le même texte, mais ouvert avec la commande terminal "pico /pathtotext/" :

lol


Jusque là, pas de soucis.

Mais maintenant :

Texte en *.rtf, ouvert avec TextEdit : lol

Le même texte, mais ouvert avec la commande terminal "pico /pathtotext/" :

{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx62$

\f0\fs24 \cf0 lol}


Voilà la différence :D

Après, je ne sais pas avec quels formats ça marche …
 
Bonsoir

J'ai testé le code de zacromatafalgar qui marche parfaitement pour des fichiers en mode text.

En RTF il marche aussi (avec quelques modifications) mais je lui fait croire que c'est un fichier text.

Ou alors faire du RTF --> text.

Souvent on nous trompe, alors pourquoi pas tromper un fichier (en plus il se rebelle pas donc aucun risque pour notre personne)

Bon code, félicitations. :up: :up:

@+