IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

une fonction qui ne retourne rien


Sujet :

AppleScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    assistant informatique
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Points : 20
    Points
    20
    Par défaut une fonction qui ne retourne rien
    Bonsoir,

    je travaille sur un applescript qui servira à créer un utilisateur qui aura le même nom que le mac. Le nom des ordinateurs sur lesquels je vais utiliser ce script ont une majuscule sur le 1er caractère. Pour créer l'utilisateur, il faut avoir en + du nom de l'ordi tel quel, ce même nom en minuscule.

    J'ai donc trouvé ce code sur un site:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    set nomDuMac to "Lilou"
    set nomDuMacMinuscule to nomDuMac
    --display dialog nomDuMacMinuscule & " " & nomDuMac
     
    renommer(nomDuMacMinuscule)
     
    display dialog nomDuMacMinuscule & " " & nomDuMac
     
    on renommer(texte)
    	set leNB to count of word of texte
    	set leChar to first character of texte
    	set leNum to ASCII number of leChar
    	--	display dialog leChar & leNum
    	if leNum < 91 and leNum > 64 then
    		set leNum to leNum + 32
    		--		display dialog leNum
    		set NewChar to (ASCII character leNum)
    		set NBChar to count of character of texte
    		set LeMotFinal to NewChar & text 2 thru NBChar of texte
    		--		display dialog NewChar & NBChar & LeMotFinal
    		searchReplaceText(texte, LeMotFinal, texte)
    		set texte to result
    		--		display dialog texte
    	end if
    	display dialog texte
    	return texte
    end renommer
     
     
    on searchReplaceText(searchTerm, replaceTerm, theText)
    	set oldTID to AppleScript's text item delimiters
    	set AppleScript's text item delimiters to searchTerm
    	set theText to theText's text items
    	set AppleScript's text item delimiters to replaceTerm
    	set theText to theText as text
    	set AppleScript's text item delimiters to oldTID
    	--	display dialog theText
    	return theText
    end searchReplaceText
    Ce code fonctionne super bien sauf jusqu'à la dernière étape. J'ai placé des display dialog tout du long pour vérifier la bonne exécution de chaque étape.
    Mais j'ai l'impression que renommer n'arrive pas à retourner texte comme il devrait.

    Merci à celui qui saura me dire ce que j'ai oublié.

    Bonne soirée.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 603
    Points : 1 240
    Points
    1 240
    Par défaut
    Bonsoir Blackvicking,

    Voici 2 petites routines qui permettent de convertir un texte quelconque en majuscules ou en minuscules.
    Chaque routine ne fait que 2 lignes de code, donc on ne peut guère faire plus simple ! (lignes 16 à 26)

    Pour que tu puisses tester, j'ai ajouté devant un programme exemple qui boucle en demandant de saisir un texte avec conversion possible en majuscules, ou minuscules, et qui fait appel à ces routines.

    Dans ton cas, il faut donc que tu passes le nom d'ordinateur en paramètre de la routine "minuscule" pour avoir le nom de l'utilisateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    repeat
    	set Reponse to display dialog "Entrer un texte à convertir" with title "Conversion majuscule/minuscule" default answer "" buttons {"Annuler", "MAJUSCULE", "minuscule"}
    	set Bouton to button returned of the Reponse
    	set Mon_texte to text returned of the Reponse
    	if Bouton is "Annuler" then return
    	if Bouton is "MAJUSCULE" then
    		set Texte_Converti to MAJUSCULE(Mon_texte)
    		display dialog "texte converti en majuscules: " & Texte_Converti
    	else
    		set Texte_Converti to minuscule(Mon_texte)
    		display dialog "texte converti en minuscules: " & Texte_Converti
    	end if
    end repeat
     
     
    -- routine de conversion en MAJUSCULE
    on MAJUSCULE(LT)
    	set T_Maj to do shell script "echo " & (ASCII character 34) & LT & (ASCII character 34) & " | tr '[:lower:]' '[:upper:]'"
    	return T_Maj
    end MAJUSCULE
     
    -- routine de conversion en minuscule
    on minuscule(LT)
    	set T_Min to do shell script "echo " & (ASCII character 34) & LT & (ASCII character 34) & " | tr '[:upper:]' '[:lower:]'"
    	return T_Min
    end minuscule
    Cordialement

  3. #3
    Membre à l'essai
    Homme Profil pro
    assistant informatique
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Bonsoir PBELL,
    tu es une vraie mine de solution, merci.

    Toutefois, j'ai essayé de mettre en pratique la routine minuscule et ca ne fonctionne toujours pas.
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    set nomDuMac to "Lilou"
    set nomDuMacMinuscule to nomDuMac
    --display dialog nomDuMacMinuscule & " " & nomDuMac
     
    minuscule(nomDuMacMinuscule)
    display dialog nomDuMacMinuscule
     
    -- routine de conversion en minuscule
    on minuscule(LT)
    	set T_Min to do shell script "echo " & (ASCII character 34) & LT & (ASCII character 34) & " | tr '[:upper:]' '[:lower:]'"
    	display dialog T_Min
    	return T_Min
    end minuscule
    Toujours le même soucis nomDuMacMinuscule ne prend pas la valeur renvoyée par la fonction minuscule.

  4. #4
    Membre à l'essai
    Homme Profil pro
    assistant informatique
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    je corrige:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    set nomDuMac to "Lilou"
    --display dialog nomDuMacMinuscule & " " & nomDuMac
     
    set nomDuMacMinuscule to minuscule(nomDuMac)
    display dialog nomDuMacMinuscule
     
    -- routine de conversion en minuscule
    on minuscule(LT)
    	set T_Min to do shell script "echo " & (ASCII character 34) & LT & (ASCII character 34) & " | tr '[:upper:]' '[:lower:]'"
    	return T_Min
    end minuscule

    Merci PBELL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction qui ne retourne rien, comment c'est possible ?
    Par lOeil dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2007, 00h51
  2. DLL:exporter une fonction qui retourne un pointeur
    Par ephemeride dans le forum C++
    Réponses: 2
    Dernier message: 29/09/2006, 11h42
  3. Réponses: 7
    Dernier message: 03/12/2004, 12h40
  4. Réponses: 14
    Dernier message: 09/04/2004, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo