2016-03-08 3 views
1

Je fais un mod Scratch 1.4 en utilisant Smalltalk (du MIT) et la recherche de ceci m'a absolument nulle part.Pharo: Comment convertir un caractère ASCII en décimal ASCII

Convertir des caractères ASCII semble facile, mais comment le faites-vous dans Smalltalk?

Si vous n'avez pas la moindre idée, le nombre ASCII de 65 devrait vous donner « A » (ne me citez pas là-dessus.)

Si cela semble tout à fait stupide de demander, il m'a fallu 2 jours vaut le temps de rechercher et de savoir comment ajouter une fonction dans Smalltalk. C'est à quel point j'ai eu des difficultés à ce sujet, car je sais très peu de choses sur Smalltalk, mais je prévois d'étendre cette connaissance.

+1

Dans Pharo, il existe un outil _Finder_ dans lequel vous pouvez entrer '$ A. 65', demandez à trouver des exemples et il vous montrera tous les messages qui renvoient '65' quand ils sont envoyés' '$ A'. Je n'ai pas pu trouver cela dans Squeak, mais comme l'exemple de recherche est assez vieux, je suppose qu'ils le cachent bien – Uko

+0

Smalltalk est un langage simple, mais un système très vaste et complexe. La clé pour trouver votre chemin est de comprendre lequel des nombreux outils et navigateurs pourrait vous aider à obtenir une réponse. Les smalltalkers expérimentés regardent comment les choses sont implémentées (implémenteurs), ou utilisées (expéditeurs et références) –

Répondre

4

Si vous ne recevez pas une réponse plus précise pour Scratch, voici ce qui fonctionne dans Pharo (qui était en forme de fourche de Squeak, qui est ce que Scratch est basé sur):

Pour convertir d'un personnage à son valeur ascii, tout comme pour son ... vous l'avez deviné, asciiValue:

$A asciiValue (qui évalue à 65)

pour convertir un nombre entier/valeur ascii à un personnage, il suffit de créer un nouvel objet de caractère avec cette valeur:

Character value: 65 (qui évalue à $A)

Je ne pense pas que ce soit Pharo spécifique, doivent donc travailler dans Squeak (et donc en Scratch) ainsi.

+0

Merci. 45 minutes de recherche pour cela n'ont rien. Je vous en suis reconnaissant! – ipodlover3354

+3

Vous êtes le bienvenu. Et il semble que vous fouilliez dans le mauvais sens, ou au mauvais endroit ... Un bon point de départ aurait été la classe 'Character' dans votre image, où vous auriez vu les deux méthodes que je mentionne (' asciiValue' du côté de l'instance, et 'value' du côté de la classe). Si vous cherchez à démarrer avec Smalltalk en général, [Pharo by example] (http://pharobyexample.org/) devrait être très utile. –

+0

Aussi, juste par curiosité, comment pourrais-je faire en arrière? Par exemple, entrez 65 pour obtenir A? – ipodlover3354