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 ?

Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

descriptionGlossaire : (Espèce) Fichier (tube) : EmptyGlossaire : (Espèce) Fichier (tube) :

more_horiz
[size=125:2zu1c02y]Glossaire : (Espèce) Fichier (tube) :

[align=justify]Le fichier tube est un tuyau virtuel, dans lequel circulent des informations, permettant de faire communiquer plusieurs processus entre eux. On distingue les deux processus par leur action :
[/align]

• soit le tube est en écriture de données : c’est l’entrée du tube ;

• soit le tube est en lecture de données : c’est la sortie du tube.

[align=justify]Le processus qui écrit ne peut pas lire les données, et inversement. Il faut donc s’imaginer un tube virtuel qui permet le dialogue entre deux processus. Par exemple, on commence par ouvrir l’entrée du tube en écriture, pour écrire (ou charger) les données du tube virtuel dans le "fichier B" ou dans un autre processus informatique ;
puis, on ferme l’entrée du tube, afin de pouvoir ouvrir la sortie du tube en lecture, pour lire (ou décharger) les données depuis le "fichier A" ;
et, enfin on referme la sortie du tube.[/align]

Nous verrons, successivement, les différents états de l’espèce fichier (I) ;
la conjugaison des verbes Linotte avec le fichier (tube) (II).

[size=125:2zu1c02y]I/ L’État du fichier tube : Le fichier tube ne peut connaître que deux états différents, qui sont l’état en lecture et l’état en écriture :

1) L’état en lecture : se caractérise par le fait d’ouvrir en lecture un fichier tube, afin de simplement lire ou d’afficher les données du dit fichier. Sa syntaxe est : "lecture".

Exemple : voir ci-dessus.

[align=justify]
2) L’état en écriture : se caractérise de manière générale par le fait d’ouvrir en écriture un fichier tube, afin d’y écrire des données. Mais, si ce fichier n’existe pas préalablement, alors il a aussi pour conséquence de créer le fichier tube dans lequel il écrit ses données. En outre, il se subdivise en écriture d’ajout et en écriture d’écrasement.[/align]

a) L’état en écriture d’ajout :

[align=justify]Comme son nom l’indique, il ajoute simplement des données dans un fichier tube. Plus exactement, cet état en écriture permet, en fait, d’ajouter un casier texte à la suite des données du fichier. Sa syntaxe est : "ajout".[/align]

Exemple : voir ci-dessus.

b) L’état en écriture d’écrasement :

[align=justify]
De la même manière, il ouvre un fichier en écriture. Mais ici, au lieu de commencer à ajouter des données dans le fichier, il commence par effacer toutes les données préexistantes dans le fichier tube ;
puis, il ajoute des données dans le fichier tube vidé de toutes ses données. Sa syntaxe est : "écrasement".[/align]

Exemple : voir ci-dessus.

[size=125:2zu1c02y]II/ La conjugaison des verbes Linotte avec le fichier tube :

[align=justify]Le fichier tube se conjugue avec les verbes Linotte comme : ouvrir ;
afficher ;
charger ;
décharger ;
mesurer ;
ajouter ;
et, fermer. C’est-à-dire, que ces verbes Linotte vont entrer en interaction avec le fichier tube, afin de lire ou de modifier ses données pour interagir notamment avec les acteurs de Linotte.

Cette interaction permet, ainsi, une communication entre le fichier tube et les différents acteurs de linotte intervenant dans le programme. Ces acteurs sont notamment les variables : texte ;
nombre ;
casier de textes ;
casier de nombres ;
espèce ;
casier d'espèce.

1) Ouvrir un fichier : permet d’ouvrir le fichier en écriture ou en lecture : (voir aussi le Glossaire du verbe ouvrir) :

Sa syntaxe est en général : ouvre Fichier avec "état" depuis "localisation du fichier.txt"[/align]

• Ouvrir un fichier en écriture :

[php]
Écriture en écrasement fichier démonstration :
F est un fichier
valeur est un texte
début
"Donnez une valeur" !
valeur ?
ouvre F avec "écrasement" depuis "d:/temp/fichier_démonstration.txt"
charge valeur dans F

/* =>
écriture en écrasement, où toutes les données sont regroupées sur la même ligne (c’est-à-dire dans le même casier de texte). */
[/php]

[php]
Écriture en ajout fichier démonstration :
F est un fichier
valeur est un texte
début
"Donnez une valeur" !
valeur ?
ouvre F avec "ajout" depuis "d:/temp/fichier_démonstration.txt"
charge valeur dans F
ferme F
[/php]

• Ouvrir un fichier en lecture :

[php]
Lecture fichier démonstration :
F est un fichier
c est un casier de texte
début
ouvre F avec "lecture" depuis "d:/temp/fichier_démonstration.txt"
décharge c depuis F
ferme F
affiche c
[/php]

2) Charger un fichier : signifie que l’on entre des données dans un fichier tube :

[align=justify]On peut charger la valeur d’une variable directement dans un fichier situé sur son ordinateur.

Sa syntaxe est :
- Ligne1 : ouvre Fichier avec "ajout/écrasement" depuis "d:/répertoire/nom du fichier"
- Ligne2 : charge variable dans Fichier[/align]

[php]
Charger un fichier en écriture :
F est un fichier
Prénom est un texte valant "Ronan"
Nom est un texte valant "Dupond"
début
ouvre F avec "écrasement" depuis "d:/temp/fichier_démonstration.txt"
// variante : ouvre F avec "ajout" depuis "d:/temp/fichier_démonstration.txt"
charge prénom dans F
charge nom dans F
ferme F
[/php]

[align=justify]
N.B. I : L’« écriture » du fichier depuis internet provoque une erreur dans le greffon. Tout comme, lorsque l’on protège en écriture un fichier.
N.B. II : La protection en écriture du fichier, sur ordinateur, provoque une erreur dans le greffon. Pour la retirer, allez dans « propriété » du fichier et désélectionnez « lecture seule ».

3) Décharger un fichier : signifie que l’on sort les données stockées depuis un fichier tube :

Décharger un fichier : On peut décharger un fichier en lecture situé sur son ordinateur.

Sa syntaxe est :
- Ligne1 : ouvre Fichier avec "lecture" depuis "d:/répertoire/nom du fichier"
- Ligne2 : décharge variable depuis Fichier
[/align]

[php]
Décharger un fichier en lecture :
F est un fichier
c est un casier de texte
début
ouvre F avec "lecture" depuis "d:/temp/fichier_démonstration.txt"
décharge c depuis F
ferme F
affiche c
[/php]

[align=justify] N.B. : La « lecture » du fichier depuis internet semble provoquer une erreur dans le greffon.

Déchargement implicite d’un fichier : On peut décharger implicitement des données depuis un fichier stocké sur un ordinateur. Sa syntaxe est : T est un casier de texte depuis "d:/répertoire/mon du fichier".[/align]

[php]
Décharger depuis un fichier sur ordinateur :
C est un casier de texte depuis "d:/temp/fichier_démonstration.txt"

// Si on utilise une variable texte, alors il s’affichera uniquement la 1er ligne du texte.
début
affiche C // affichage par casier
termine
[/php]

[align=justify] N.B. I : que dans ce cas, l’on n’affiche pas directement le fichier "bonjour.txt". En fait, on affecte la valeur texte du fichier "bonjour.txt", au casier de texte "dernière version" ;
puis, on affiche la variable casier. Ainsi, on décharge implicitement le fichier « depuis » internet, mais sans utiliser explicitement le verbe « décharger ».
N.B. II : Mais si on utilise un casier de casier, cela provoque un bogue.

Déchargement implicite d’un fichier depuis internet : Il est aussi possible de décharger des données depuis un fichier stocké sur un site internet.

Sa syntaxe est la suivante : T est un casier de texte depuis "http:// + site internet + répertoire + mon du fichier".[/align]

[php]
Décharger depuis un fichier sur internet :
Dernière version est un casier de texte depuis "http://langagelinotte.free.fr/bonjour.txt"
début
affiche dernière version
termine
[/php]

[align=justify] 4) Mesurer : permet de comptabiliser le nombre de certains éléments d’un fichier dans un compteur, ou d’une variable dans un fichier :

a) Mesurer un fichier : permet de comptabiliser le nombre de caractères d’un fichier et d’affecter ce nombre dans une variable qui servira de compteur.

• Mesure d’un texte depuis un fichier : le compteur contiendra le nombre de caractères, mais seulement de la première ligne (c’est-à-dire du 1er casier) du fichier :
[/align]

[php]
Exemple mesure d’un fichier depuis un texte :
Message est un texte depuis "d:/temp/fichier_démonstration.txt"
Compteur est un nombre
début
mesure message dans compteur

/* variante : mesure message {0} dans compteur =>
indique la présence d’un caractère sur la 1ère case de la ligne, le compteur affiche alors « 1 » pour indiquer la présence d’un caractère. Mais, en l’absence de caractère, un message d’erreur apparaît, au lieu de « 0 ». Ce qui l’empêche de l’utiliser comme drapeau.*/

affiche compteur
termine

/* =>
mesure le nombre de caractères du 1er casier (et non le nombre de tous les caractères). */
[/php]

[align=justify] N.B. : la variante : mesure message {joker} dans compteur =>
un message d’erreur : « L'acteur est inconnu de la fonction et du livre : joker ».

• Mesure d’un casier de texte (ou d’un casier de casier) depuis un fichier : le compteur contiendra le nombre total de casier du fichier :
[/align]

[php]
Exemple 1 mesure d’un fichier : // depuis un casier de texte :
Message est un casier de texte depuis "d:/temp/fichier_démonstration.txt"
Compteur est un nombre
début
mesure message dans compteur

/* variantes, avec l’utilisation d’un pointeur de position :
- mesure message {1} dans compteur =>
indique le nombre de caractères du 2ème casier (un message d’erreur n’apparaît que si la ligne n’existe pas).
- mesure message {1,0} dans compteur =>
indique la présence d’un caractère sur la 1ère case du 2ème casier. Mais, en l’absence de caractère, un message d’erreur apparaît.
- mesure message {joker,joker} dans compteur =>
indique un message d’erreur : « L'acteur est inconnu de la fonction et du livre : joker ».*/

affiche compteur
termine
// =>
résultat qui mesure le nombre de casier.
[/php]

[php]
Exemple 2 mesure d’un fichier : // depuis un casier de casier :
Message est un casier de casier depuis "d:/temp/fichier_démonstration.txt"
Compteur est un nombre
début
mesure message dans compteur

/* Les variantes, avec l’utilisation d’un pointeur de position, provoquent soit des bogues, soit des messages d’erreurs.*/

affiche compteur
termine

/* =>
mesure le nombre de casier (et non le nombre de caractères de tous les casiers).*/
[/php]

[align=justify]• Mesure du nombre total de caractères d’un fichier : stocké sur ordinateur, ou sur internet :[/align]

[php]
Exemple mesure du nombre total des caractères d’un fichier :
Message est un casier de texte depuis "d:/temp/fichier_démonstration.txt"
// variante : Message est un casier de texte depuis "http://langagelinotte.free.fr/bonjour.txt"
Compteur casier est un nombre
Compteur fichier est un nombre
n est un nombre
début
pour chaque message, lis
mesure message {n} dans compteur casier
// mesure le nombre de caractère du casier n
affiche "Casier ${n + 1} : " + compteur casier
// affiche le nombre de caractère par casier
n = n + 1 // ajoute 1 au nombre du casier nommé n
compteur fichier = compteur fichier + compteur casier
ferme
affiche "Le nombre total de caractère dans le fichier est de : " + compteur fichier
termine
[/php]

[align=justify]b) Mesurer une variable dans un fichier : est aussi possible de comptabiliser le nombre de caractères d’un acteur et de l’affecter dans un fichier :

• Si acteur est un texte, le fichier contiendra le nombre de caractères de l’acteur :[/align]

[php]
Exemple d'utilisation du verbe mesurer :
Message est un texte valant "Voici mon message!"
Compteur est un nombre
F est un fichier
début
mesure message dans compteur
ouvre F avec "ajout" depuis "d:/temp/compteur.txt"
// variante : ouvre F avec "écrasement" depuis "d:/temp/compteur.txt"
charge compteur dans F
affiche "Le nombre total de caractères du texte est de : " + compteur
// =>
affiche le nombre total de caractères du texte
termine
[/php]

[align=justify]
• Si acteur est un casier, le fichier contiendra le nombre de casier de l’acteur :[/align]

[php]
Exemple d'utilisation du verbe mesurer :
Message est un casier de texte valant "Voici", "mon", "message!"

/* variante : Message est un casier de casier valant {"Voici", "mon", "message!"}, {1, 25}
=>
ce qui donnera en résultat le nombre total de casier, soit 2. */

Compteur est un nombre
F est un fichier
début
mesure message dans compteur
ouvre F avec "ajout" depuis "d:/temp/compteur.txt"
// variante : ouvre F avec "écrasement" depuis "d:/temp/compteur.txt"
charge compteur dans F
affiche "Le nombre total de casiers du texte est de : " + compteur
// =>
affiche le nombre total de casiers du texte, soit 3.
termine
[/php]

[align=justify] N.B. : L’« écriture » du fichier depuis internet provoque une erreur dans le greffon. Tout comme, lorsque l’on protège en écriture un fichier.

5) Ajouter : Le verbe ajouter se conjugue avec un fichier, de la même manière que le verbe mesurer.
[/align]

[php]
Exemple 1 d'utilisation du verbe ajouter :
F est un casier de texte depuis "d:/temp/fichier_démonstration.txt"
T est un casier de texte valant "a" , "b" , "c"
début
ajoute F dans T // ajoute la valeur du fichier dans la variable T
affiche T
// =>
affiche T + F
termine
[/php]

[php]
Exemple 2 d'utilisation du verbe ajouter :
F est un casier de texte depuis "d:/temp/fichier_démonstration.txt"
T est un casier de texte valant "a" , "b" , "c"
début
ajoute T dans F
affiche F
// =>
affiche F + T, mais sans ajouter T dans le fichier
termine
[/php]

6) Afficher un fichier :

[align=justify]A la déclaration de l’acteur, il faut ajouter "depuis + chemin du fichier + nom du fichier ".
[/align]

[php]
Exemple affichage d'un fichier :
Message est un casier de texte depuis "d:/temp/fichier_démonstration.txt"
début
affiche message // affichage par casier

/* variantes :
- affiche message {0} =>
affiche le 1er casier du fichier.
- affiche message {0,2} =>
affiche le 3ème caractère du 1er casier du fichier. */

termine
[/php]

[align=justify] N.B. I : Il serait être intéressant, dans le futur, de pouvoir afficher un fichier d’un seul tenant.
N.B. II : Si on utilise un casier de casier, cela provoque un bogue.

7) Fermer : est le verbe qui permet de fermer tous les tubes fichiers, qui ont été ouverts en écriture ou en lecture. En ce sens, il est donc essentiel dans la manipulation correcte de l'espèce fichier.

Source : Observation des exemples testés sur l’Atelier Linotte ;
Le verbe ouvrir du glossaire Linotte ;
Exemples du tutoriel de l’Atelier Linotte ;
La documentation Linotte version 2.1.5 ;
http://langagelinotte.free.fr/wiki/inde ... onFichiers (Spécification syntaxe 1.0).
[/align]

descriptionGlossaire : (Espèce) Fichier (tube) : EmptyRE: Glossaire : (Espèce) Fichier (tube) :

more_horiz
Bravo XP Rico,

Je vais ajouter un forum glossaire directement à la racine du forum.

descriptionGlossaire : (Espèce) Fichier (tube) : EmptyRE: Glossaire : (Espèce) Fichier (tube) :

more_horiz
Aussi, ce que je propose, c'est une bonne idée d'ajouter des propositions mais tu devrais les mettre dans un autre post sous la rubrique "Suggestions et améliorations".

ça me permet de mieux suivre les évolutions et surtout, je pense que ça permet d'améliorer la lecture pour un "petit" nouveau qui va se concentrer seulement sur ton glossaire.

Qu'en penses-tu ?

descriptionGlossaire : (Espèce) Fichier (tube) : EmptyRE: Glossaire : (Espèce) Fichier (tube) :

more_horiz
D'accord...

J'y avais pensé au début, mais je pensais que cela ferait doublon.
Je m'en occupe de suite.

descriptionGlossaire : (Espèce) Fichier (tube) : EmptyRe: Glossaire : (Espèce) Fichier (tube) :

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