Bonjour,

J'ai décidé de revoir la gestion des "flux" dans Linotte. Pour cela, je vais passer par une nouvelle espèce : le tuyau.

Un tuyau permet de manipuler des "flux" de données avec Linotte :
on peut l'ouvrir, le fermer, déposer des données, retirer des données.

Dans le cas d'un fichier, avec un tuyau, on peut ouvrir un fichier, fermer le fichier, déposer des données ou y retirer des données.
On peut également, ouvrir une connexion vers une base de données pour déposer (INSERT) ou retirer des données de la bases (SELECT).
On peut imaginer ensuite d'ouvrir un tuyau vers une connexion réseau, etc etc !

Voici un exemple de tuyau pour lire un fichier :

Le fichier contient :

Code:

Nicolas
14

Code:

Rôles :

mon fichier est un tuyau valant "fichier"
nom est un texte
age est un nombre

Actions :

ouvre fichier en "lecture" depuis "c:
/eleves.
txt"
dépile nom depuis fichier
affiche nom
dépile age depuis fichier
affiche age
ferme fichier

Maintenant essayons d'écrire dans un fichier :

Code:

Rôles :

mon fichier est un tuyau valant "fichier"
nom est un texte valant "coucou"
age est un nombre valant 14

Actions :

ouvre fichier en "lecture" depuis "c:
eleves.
txt"
empile nom dans fichier
empile age dans fichier
ferme fichier

Et si nous voulons récupérer des données depuis une base de donnnées :

Code:

Rôles :

ma connexion est un tuyau valant "sql"
prenom est un texte
age est un nombre

Actions :

ouvre connexion en "mysql" depuis "url=msysql.
free.
fr;
login=titipassword=toto"
dépile prenom depuis connexion avec "select prenom from eleves where nom = 'dupond'"
affiche prenom
dépile age depuis connexion avec "select age from eleves where nom = 'dupond'"
affiche age
empile age + 1 dans connexion avec "insert age into eleves where nom = 'dupond'"
ferme fichier

Tout ça n'est que théorie pour l'instant.... Je veux avoir votre retour et savoir si c'est n'est pas trop compliqué.

Merci

J'ai ajouté ce texte dans le wiki :
http://langagelinotte.free.fr/wiki/inde ... itle=Tuyau

Vous pouvez apporter vos idées !