Conduit

Un article de WikiLinotte.

(Différences entre les versions)
m (ajout d'un exemple)
(Passage en syntaxe 2 !)
Ligne 10 : Ligne 10 :
  Exemple :
  Exemple :
-
  Acteurs :
+
   c est un conduit
-
   c :: conduit
+
   début
-
   Actions :
+
   c.encodage("UTF-16")
-
   évoque c.encodage("UTF-16")
+
   c.sélectionneretouvrir()
-
   évoque c.sélectionneretouvrir()
+
   affiche c.lire()
   affiche c.lire()
-
  termine
 
*ouvrir
*ouvrir
Ligne 22 : Ligne 20 :
  Exemple :
  Exemple :
-
  Acteurs :
+
   c est un conduit
-
   c :: conduit
+
   début
-
   Actions :
+
   c.ouvrir("/mon/fichier.txt")
-
   évoque c.ouvrir("/mon/fichier.txt")
+
   affiche c.lire()
   affiche c.lire()
-
  termine
 
*sélectionneretouvrir
*sélectionneretouvrir
Ligne 33 : Ligne 29 :
  Exemple :
  Exemple :
-
  Acteurs :
+
   c est un conduit
-
   c :: conduit
+
   Actions :
   Actions :
-
   évoque c.sélectionneretouvrir()
+
   c.sélectionneretouvrir()
   affiche c.lire()
   affiche c.lire()
-
  termine
 
*lire
*lire
Ligne 44 : Ligne 38 :
  Exemple :
  Exemple :
-
  Acteurs :
+
   c est un conduit
-
   c :: conduit
+
   Actions :
   Actions :
-
   évoque c.sélectionneretouvrir()
+
   c.sélectionneretouvrir()
   affiche c.lire()
   affiche c.lire()
-
  termine
 
*nlire
*nlire
Retourner les n caractères suivant du fichier
Retourner les n caractères suivant du fichier
-
Exemple :
+
Exemple :  
-
+
   c est un conduit
-
acteurs :
+
  début
-
   c :: conduit
+
   c.sélectionneretouvrir()
-
  actions :
+
   essaie lis
-
   évoque c.sélectionneretouvrir()
+
   tant que vrai affiche "10 caractères : " + c.nlire(10)
-
   essaie, lis
+
-
   tant que vrai, affiche "10 caractères : " + c.nlire(10)
+
   ferme
   ferme
-
  termine
 
*enregistrer
*enregistrer
Ligne 68 : Ligne 57 :
Exemple :
Exemple :
-
+
   c est un conduit
-
acteurs :
+
  début
-
   c :: conduit
+
   c.enregistrer("c:/tmp/linotte.txt")
-
  actions :
+
   c.écrire("Voici un texte écrit depuis le langage Linotte !")
-
   évoque c.enregistrer("c:/tmp/linotte.txt")
+
   c.fermer()
-
   évoque c.écrire("Voici un texte écrit depuis le langage Linotte !")
+
-
   évoque c.fermer()
+
-
  termine
+
*sélectionneretenregistrer
*sélectionneretenregistrer
Ligne 81 : Ligne 67 :
Exemple :
Exemple :
-
+
   c est un conduit
-
acteurs :
+
  début
-
   c :: conduit
+
-
  actions :
+
   affiche "Sélectionnez un nouveau fichier que je vais créer"
   affiche "Sélectionnez un nouveau fichier que je vais créer"
-
   évoque c.sélectionneretenregistrer(
+
   c.sélectionneretenregistrer(
-
   évoque c.écrire("Voici un texte écrit depuis le langage Linotte !")
+
   c.écrire("Voici un texte écrit depuis le langage Linotte !")
-
   évoque c.fermer()
+
   c.fermer()
-
  termine
+
*ecrire
*ecrire
Ligne 95 : Ligne 78 :
Exemple :
Exemple :
-
+
   c est un conduit
-
acteurs :
+
   a est un texte valant "Bonjour,"
-
   c :: conduit
+
   b est un texte valant "Le monde !"
-
   a :: texte <- "Bonjour,"
+
   n est un nombre valant 777
-
   b :: texte <- "Le monde !"
+
  début
-
   n :: nombre <- 777
+
-
  actions :
+
   affiche "Sélectionnez un nouveau fichier que je vais créer"
   affiche "Sélectionnez un nouveau fichier que je vais créer"
-
   évoque c.sélectionneretenregistrer(
+
   c.sélectionneretenregistrer(
-
   évoque c.écrire(a)
+
   c.écrire(a)
-
   évoque c.écrire(b)
+
   c.écrire(b)
-
   évoque c.écrire(n)
+
   c.écrire(n)
-
   évoque c.fermer()
+
   c.fermer()
-
  termine
+
*Exemple complet
*Exemple complet
 +
global
 +
form est un formulaire, titre vaut "La boite à texte", largeur vaut 400, hauteur vaut 260
 +
boite est un boite,x vaut 30, y vaut 30, largeur vaut 200, hauteur vaut 100
 +
b1 est un menubouton, texte vaut "Afficher le texte dans le tableau"
 +
l1 est un étiquette, texte vaut "", x vaut 30, y vaut 200
 +
b2 est un menubouton, texte vaut "Ouvrir un fichier"
 +
c est un conduit
 +
principal :
-
Boite à texte :
 
-
Grands rôles :
 
-
form :: formulaire, titre vaut "La boite à texte", largeur vaut 400, hauteur vaut 260
 
-
boite :: boite,x vaut 30, y vaut 30, largeur vaut 200, hauteur vaut 100
 
-
b1 :: menubouton, texte vaut "Afficher le texte dans le tableau"
 
-
l1 :: étiquette, texte vaut "", x vaut 30, y vaut 200
 
-
b2 :: menubouton, texte vaut "Ouvrir un fichier"
 
-
c :: conduit
 
-
Début :
 
-
Actions :
 
  Ajoute boite & b1 & b2 & l1 dans form
  Ajoute boite & b1 & b2 & l1 dans form
  Fais réagir b1 à "clic souris" pour valeur
  Fais réagir b1 à "clic souris" pour valeur
  Fais réagir b2 à "clic souris" pour ouvrir
  Fais réagir b2 à "clic souris" pour ouvrir
-
  tant que 1 != 2, lis
+
  tant que 1 != 2 lis
  temporise
  temporise
  ferme
  ferme
  Valeur :
  Valeur :
-
  Rôles :
+
  *b est un menubouton
-
*b :: menubouton
+
  début
-
  Actions :
+
  texte@boite !
  texte@boite !
  Reviens
  Reviens
 +
  Ouvrir :
  Ouvrir :
-
Rôles :
+
*b et un menubouton
-
*b :: menubouton
+
retour et un drapeau
-
§retour :: drapeau
+
  début
-
  Actions :
+
  retour vaut c.sélectionneretouvrir()
  retour vaut c.sélectionneretouvrir()
-
  si retour alors lis
+
  si retour lis
  texte@boite vaut c.lire()
  texte@boite vaut c.lire()
  ferme
  ferme
Ligne 149 : Ligne 126 :
  Exemple Conduit :
  Exemple Conduit :
-
Enregistrer_sous :
+
   c est un conduit
-
  Rôles :
+
-
   c :: conduit
+
   chemin_sauvegarde est un texte
   chemin_sauvegarde est un texte
-
   ligne <- chr 13 + chr 10
+
   ligne valant chr 13 + chr 10
   Actions :
   Actions :
-
   évoque c.sélectionneretenregistrer()
+
   c.sélectionneretenregistrer()
   affiche  "répertoire + nom du fichier : " + c.nomfichiercomplet()
   affiche  "répertoire + nom du fichier : " + c.nomfichiercomplet()
   affiche  "répertoire : " + c.chemin()
   affiche  "répertoire : " + c.chemin()
-
   évoque c.fermer()
+
   c.fermer()
   chemin_sauvegarde vaut c.nomfichiercomplet()
   chemin_sauvegarde vaut c.nomfichiercomplet()
-
   si c.fichierexiste(chemin_sauvegarde) alors lis
+
   si c.fichierexiste(chemin_sauvegarde) lis
     "on sauvegarde !" !
     "on sauvegarde !" !
-
     évoque c.enregistrer(chemin_sauvegarde)
+
     c.enregistrer(chemin_sauvegarde)
-
     évoque c.écrire("ça marche")
+
     c.écrire("ça marche")
-
     évoque c.écrire(ligne)
+
     c.écrire(ligne)
-
     évoque c.écrire("l'autre ligne")
+
     c.écrire("l'autre ligne")
-
     évoque c.écrire(ligne)
+
     c.écrire(ligne)
-
     évoque c.écrire("encore une ligne !!!")
+
     c.écrire("encore une ligne !!!")
-
     évoque c.fermer()
+
     c.fermer()
-
     ("on va vérifier les informations sauvegardées :")
+
     //on va vérifier les informations sauvegardées :
-
     évoque c.ouvrir(chemin_sauvegarde)
+
     c.ouvrir(chemin_sauvegarde)
     affiche "1 : " + c.lireligne()
     affiche "1 : " + c.lireligne()
     affiche "2 : " + c.lireligne()
     affiche "2 : " + c.lireligne()
     affiche "3 : " + c.lireligne()
     affiche "3 : " + c.lireligne()
-
     évoque c.fermer()
+
     c.fermer()
   ferme
   ferme

Version du 9 février 2015 à 10:12

Image:Conduit.png‎

Ce greffon est intégré à l'Atelier Linotte.

Code source du greffon : https://code.google.com/p/langagelinotte/source/browse/trunk/Linotte/org/linotte/greffons/impl/Conduit.java

  • encodage

L'encodage par défaut du conduit est UTF-8. Il est conseillé d'utiliser cet encodage compatible avec l'Atelier Linotte. Plus d'information sur l'encodage : http://fr.wikipedia.org/wiki/Codage_de_caract%C3%A8res

Exemple :
  c est un conduit
 début
  c.encodage("UTF-16")
  c.sélectionneretouvrir()
  affiche c.lire()
  • ouvrir

Ouvrir le fichier en lecture

Exemple :
  c est un conduit
 début
  c.ouvrir("/mon/fichier.txt")
  affiche c.lire()
  • sélectionneretouvrir

Cette fonction ouvre le sélecteur de fichier du système d'exploitation et permet de sélectionner un fichier destiné à être ouvrir.

Exemple :
  c est un conduit
 Actions :
  c.sélectionneretouvrir()
  affiche c.lire()
  • lire

Retourner tous les caractères du fichier ouvert.

Exemple :
  c est un conduit
 Actions :
  c.sélectionneretouvrir()
  affiche c.lire()
  • nlire

Retourner les n caractères suivant du fichier Exemple :

 c est un conduit
début
 c.sélectionneretouvrir()
 essaie lis
  tant que vrai affiche "10 caractères : " + c.nlire(10)
 ferme
  • enregistrer

ouvrir le fichier destiné à l'enregistrement

Exemple :

 c est un conduit
début
 c.enregistrer("c:/tmp/linotte.txt")
 c.écrire("Voici un texte écrit depuis le langage Linotte !")
 c.fermer()
  • sélectionneretenregistrer

afficher le sélectionneur de fichiers et ouvre le fichier sélectionné en écriture

Exemple :

 c est un conduit
début
 affiche "Sélectionnez un nouveau fichier que je vais créer"
 c.sélectionneretenregistrer(
 c.écrire("Voici un texte écrit depuis le langage Linotte !")
 c.fermer()
  • ecrire

écrire la valeur de l'acteur dans le fichier

Exemple :

 c est un conduit
 a est un texte valant "Bonjour,"
 b est un texte valant "Le monde !"
 n est un nombre valant 777
début
 affiche "Sélectionnez un nouveau fichier que je vais créer"
 c.sélectionneretenregistrer(
 c.écrire(a)
 c.écrire(b)
 c.écrire(n)
 c.fermer()
  • Exemple complet
	global
		form est un formulaire, titre vaut "La boite à texte", largeur vaut 400, hauteur vaut 260
		boite est un boite,x vaut 30, y vaut 30, largeur vaut 200, hauteur vaut 100
		b1 est un menubouton, texte vaut "Afficher le texte dans le tableau"
		l1 est un étiquette, texte vaut "", x vaut 30, y vaut 200
		b2 est un menubouton, texte vaut "Ouvrir un fichier"
		c est un conduit
principal :
		Ajoute boite & b1 & b2 & l1 dans form
		Fais réagir b1 à "clic souris" pour valeur
		Fais réagir b2 à "clic souris" pour ouvrir
		tant que 1 != 2 lis
			temporise
		ferme
Valeur :
	*b est un menubouton
	début
		texte@boite !
		Reviens
Ouvrir :

*b et un menubouton retour et un drapeau

	début
		retour vaut c.sélectionneretouvrir()
		si retour lis
			texte@boite vaut c.lire()
		ferme
		Reviens


  • Exemple complet :
Exemple Conduit :
  c est un conduit
  chemin_sauvegarde est un texte
  ligne valant chr 13 + chr 10
 Actions :
  c.sélectionneretenregistrer()
  affiche  "répertoire + nom du fichier : " + c.nomfichiercomplet()
  affiche  "répertoire : " + c.chemin()
  c.fermer()
  chemin_sauvegarde vaut c.nomfichiercomplet()
  si c.fichierexiste(chemin_sauvegarde) lis
   "on sauvegarde !" !
   c.enregistrer(chemin_sauvegarde)
   c.écrire("ça marche")
   c.écrire(ligne)
   c.écrire("l'autre ligne")
   c.écrire(ligne)
   c.écrire("encore une ligne !!!")
   c.fermer()
   //on va vérifier les informations sauvegardées :
   c.ouvrir(chemin_sauvegarde)
   affiche "1 : " + c.lireligne()
   affiche "2 : " + c.lireligne()
   affiche "3 : " + c.lireligne()
   c.fermer()			
  ferme
Outils personnels