Programmer avec le langage Linotte
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Programmer avec le langage LinotteConnexion

Besoin d'un conseil sur la programmation en Linotte ?

-34%
Le deal à ne pas rater :
-34% LG OLED55B3 – TV OLED 4K 55″ 2023 – 100Hz HDR 10+, ...
919 € 1399 €
Voir le deal

descriptionObtenir le code d'un caractère ? EmptyObtenir le code d'un caractère ?

more_horiz
Bonsoir,

Existe-t-il un verbe renvoyant le code ascii d’un caractère donné (et vice-versa) ?

Autre chose, la possibilité d’interagir avec le presse-papiers est-t-elle prévue pour une prochaine version ?

Merci.

descriptionObtenir le code d'un caractère ? EmptyObtenir le code d'un caractère ?

more_horiz
Bonjour Pat,

Dans la version 1.3, il y aura les méthodes : ascii et chr :

Code:

Livre :
?
Paragraphe :
?
Rôles :

k est un nombre
Actions :

pour k de 0 à 255, lis
ferme
affiche ascii("È")
affiche chr(200)

Et pour le copier/coller, on pourra faire :

Code:

Presse Papier :


Démonstration :

Rôles :

presse :
:
pressepapier
information :
:
texte <
- "Texte copié depuis le langage Linotte !"
entrée :
:
texte
Actions :

affiche "Vous avez dans votre presse-papier le texte suivant :
" + presse.
coller()
affiche "Je vais maintenant modifier le presse-papier !"
évoque presse.
copier(information)
affiche "Vérifier votre presse-papier maintenant !"
demande entrée
affiche "Maintenant, je vais stocker la toile dans le presse-papier"
évoque presse.
copiertoile()
affiche "Vérifier votre presse-papier maintenant avec un logiciel manipulant les images (Gimp par exemple)!"

voili !

descriptionObtenir le code d'un caractère ? EmptyObtenir le code d'un caractère ?

more_horiz
Merci bien,
Une question bête toutefois, pour le copier-coller dans le presse-papiers pourquoi devoir utiliser « évoquer presse.copier(info) » et pas simplement « presse.copier (info) » ?
Sinon, pourquoi ne pas permettre un syntaxe « plus linottienne » soit « copier information dans presse" par analogie avec « ajouter xxx dans yyy » ?

Ps : sur le forum quant un code est affiché entre les balises code, comment faire pour le copier ?

descriptionObtenir le code d'un caractère ? EmptyObtenir le code d'un caractère ?

more_horiz
Cette syntaxe vient du fait que l'espèce PressePapier est un greffon auquel j'ai ajouté des méthodes fonctionnelles.

« presse.copier (info) » renvoie un acteur car c'est une fonction.

En linotte, on ne peut pas écrire une ligne avec seulement un acteur. Il faut l'associer à un verbe :

On pourrait écrire « Affiche presse.copier (info) » ou « retour vaut presse.copier (info) »
Mais dans notre cas, la valeur de retour n'est jamais utilisée d'où l'arrivér de ce nouveau verbe Evoquer :
« évoque presse.copier (info) »
Il mange le retour de la méthode copier() !

descriptionObtenir le code d'un caractère ? EmptyObtenir le code d'un caractère ?

more_horiz
Explication limpide, merci.

descriptionObtenir le code d'un caractère ? EmptyObtenir le code d'un caractère ?

more_horiz
J'ai ajouté un nouvel exemple, Asciinotte qui permet d'affiche la table des caractères ASCII.

Asciinotte affiche un formulaire avec un sélecteur de polices.
On peut copier un caractère avec la bonne police pour le coller dans Word par exemple !

Le code source et une copie d'écran :

Code:

Asciinotte :

Espèces :

lettre :
:
texte
l'espèce box hérite de rectangle et contient lettre
Grands rôles :

info :
:
graffiti, x vaut 233, y vaut 540, couleur vaut "bleu turquin"
infoc :
:
graffiti, x vaut 170, y vaut 562, couleur vaut "rouge", texte vaut ""
couleur off :
:
texte <
- "noir"
couleur on :
:
texte <
- "menthe à l'eau"
toile :
:
toile
police :
:
texte
lettres :
:
casier de graffiti vide
form est un formulaire, titre vaut "Le sélecteur de polices", largeur vaut 200, hauteur vaut 100
s1 est un sélecteur, valeurs vaut "", x vaut 20, y vaut 50
l1 est une étiquette, texte vaut "Choisissez la police:
", x vaut 20, y vaut 20
presse est un pressepapier
aide est un parchemin, texte vaut "Asciinotte 1.
0

Survolez un caractère pour dévoiler sa valeur ASCII :

- Un clic gauche sur le caractère copie la lettre dans le presse-papier.

- Un clic droit sur le caractère copie la valeur ASCII dans le presse-papier.


- Utilisez le sélecteur pour changer de police d'affichage.
", x vaut 50, y vaut 350, largeur vaut 500, taille vaut 2, couleur vaut "capucine"

Principal :

Rôles :

k & i :
:
nombre
§ tmp :
:
texte vide
Actions :

efface la toile
pour k de 0 à 10, lis
pour i de 0 à 24, lis
si (i + k*25) <
= 255 alors lis
§g :
:
graffiti
§r :
:
box
fais réagir r à "souris entrante" pour afficher ascii
fais réagir r à "souris sortante" pour assombrir
fais réagir r à "clic souris" pour copier la lettre
fais réagir r à "clic droit souris" pour copier ascii
y@g vaut 20 + (k * 30)
x@g vaut 25 + (i * 22)
taille@g vaut 12
texte@g vaut chr (i + k*25)
position@g vaut 2
couleur@g vaut "argile"
ajoute g dans lettres
y@r vaut 5 + k * 30
x@r vaut 25 + i * 22
hauteur@r vaut 21
largeur@r vaut 21
couleur@r vaut couleur off
plein@r vaut "oui"
position@r vaut 1
lettre@r vaut chr (i + k*25)
projette r & g
ferme
ferme
ferme
projette info & infoc & aide & toile
ajoute s1& l1 dans form
fais réagir s1 à "clic souris" pour changer la police
fais réagir form à "clic souris" pour fermer la fenêtre
couleur@toile vaut "noir"

("Construction de la liste des polices :
")
pour chaque polices, lis
tmp vaut tmp + joker + "|"
ferme
valeurs@s1 vaut tmp

("Boucle infinie")
tant que vrai, lis
temporise
ferme

Afficher ascii :

Rôles :

* b est une box
Actions :

texte@info vaut lettre@b + ", valeur ascii :
" + ascii (lettre@b)
couleur@b vaut couleur on
reviens

Assombrir :

Rôles :

* b est une box
Actions :

attends .
2 seconde
couleur@b vaut couleur off
reviens

Changer la police :

Rôles :

*s est une sélecteur
Actions :

police vaut valeur@s
pour chaque lettres, lis
police@joker vaut police
ferme
Reviens

Fermer la fenêtre :

Rôles :

*f est une formulaire
Actions :

Termine

Copier la lettre :

Rôles :

*f est une box
§texte est un texte
Actions :

évoque presse.
copierhtml("<
font face='" + police + "'>
" + lettre@f + "<
/font>
")
texte vaut "Le caractère '" + lettre@f + "' est copié dans le presse-papier !"
texte@infoc vaut texte
attends 5 secondes
si (texte@infoc) == texte alors vide texte@infoc
reviens

Copier ascii :

Rôles :

*f est une box
§texte est un texte
Actions :

évoque presse.
copier(ascii(lettre@f))
texte vaut "Le numéro ASCII '" + ascii(lettre@f) + "' est copié dans le presse-papier !"
texte@infoc vaut texte
attends 5 secondes
si (texte@infoc) == texte alors vide texte@infoc
reviens

descriptionObtenir le code d'un caractère ? EmptyRe: Obtenir le code d'un caractère ?

more_horiz
privacy_tip Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
power_settings_newSe connecter pour répondre