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 :
LEGO Icons 10331 – Le martin-pêcheur
35 €
Voir le deal

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
Bonjour, je viens vous présenter mon nouveau petit projet :"P'tit Texte". Il s'agit d'un petit traitement de texte.

Voici la version 0.6:
- [url=Notes de version][/url]

Code:

P'tit Texte :

("Spécification :
1.
2.
2")
("version :
0.
6")
("Auteur :
momo112")

Grands rôles :

("Fenêtre principale")
Form est un formulaire, hauteur vaut 450, largeur vaut 500, titre vaut "P'tit Texte"
T est un boite, hauteur vaut 335, largeur vaut 490, texte vaut "", visible vaut "oui", x vaut 5, y vaut 80
NF est un champ, taille vaut 25, texte vaut "Sans titre", x vaut 5, y vaut 30
T1 est une étiquette, texte vaut "Nom de votre texte :
", x vaut 5, y vaut 10
T2 est une étiquette, texte vaut "Rentrez votre texte ci-dessous :
", x vaut 5, y vaut 65
Format est un sélecteur, valeur vaut ".
odt", valeurs vaut ".
odt|.
txt|.
html|.
liv", x vaut 300, y vaut 30
("Menus")
m1 est un menu, texte vaut "Fichier"
m1s1 est un sousmenu, texte vaut "Nouveau"
m1s2 est un sousmenu, texte vaut "Ouvrir .
.
.
"
m1s3 est un sousmenu, texte vaut "Enregistrer"
m1s4 est un sousmenu, texte vaut "Enregistrer et fermer"
m1s5 est un sousmenu, texte vaut "Fermer"
m3 est un menu, texte vaut "Externe"
m3s1 est un sousmenu, texte vaut "Ouvrir le fichier avec le logiciel adapté"
m4 est un menu, texte vaut "?"
m4s1 est un sousmenu, texte vaut "Vérifier la version"
m4s2 est un sousmenu, texte vaut "À propos"
("Fenêtre avertissement Nouveau")
Fnouveau est un formulaire, hauteur vaut 130, largeur vaut 425, titre vaut "Créer un nouveau fichier .
.
.
"
BOnouveau est un bouton, texte vaut "Continuer", x vaut 295, y vaut 100
BNnouveau est un bouton, texte vaut "Annuler", x vaut 25, y vaut 100
("Fenêtre Ouvrir")
Fouvrir est un formulaire, hauteur vaut 150, largeur vaut 400, titre vaut "Ouvrir .
.
.
"
BOouvrir est un bouton, texte vaut "Ouvrir le fichier", x vaut 250, y vaut 120
BNouvrir est un bouton, texte vaut "Annuler", x vaut 25, y vaut 120
OSF est un sélecteur, valeur vaut ".
odt", valeurs vaut ".
odt|.
txt|.
html|.
liv", x vaut 310, y vaut 60
ONF est un champ, taille vaut 25, texte vaut "", x vaut 15, y vaut 60
("Fenêtre avertissement Externe")
Fexterne est un formulaire, hauteur vaut 105, largeur vaut 425, titre vaut "Attention .
.
.
"
BOexterne est un bouton, texte vaut "Sauvegarder avant d'ouvrir", x vaut 225, y vaut 75
BNexterne est un bouton, texte vaut "Annuler", x vaut 25, y vaut 75
TAE est une étiquette, texte vaut "le fichier risque de ne pas être complet lors de l'ouverture.
", x vaut 10, y vaut 25
("Texte d'avertissement Terminer")
Fterminer est un formulaire, hauteur vaut 75, largeur vaut 425, titre vaut "Attention .
.
.
"
BOterminer est un bouton, texte vaut "oui", x vaut 350, y vaut 50
BNterminer est un bouton, texte vaut "non", x vaut 385, y vaut 50
("Fenêtre de l'à propos")
Fapropos est un formulaire, hauteur vaut 200, largeur vaut 450, titre vaut "À propos"
Bapropos est un bouton, texte vaut "Fermer l'à propos", x vaut 150, y vaut 160
("Texte d'avertissement")
TA1 est une étiquette, texte vaut "Le fichier actuellement en cour d'édition n'a pas été sauvegardé,", x vaut 10, y vaut 5
TA2 est une étiquette, texte vaut "en continuant, vous risquez de perdre une partie ou la totalité", x vaut 10, y vaut 25
TA3 est une étiquette, texte vaut "de votre fichier.
", x vaut 10, y vaut 45
TA4 est une étiquette, texte vaut "Voulez-vous continuer ?", x vaut 10, y vaut 75
("Autres")
vl est un nombre valant 6
vapropos est un texte valant "0.
6"
Tsauv est un texte vide
passage est un casier de texte

Principal :

Rôles :

Actions :

Tu explores "coloriser com.
sun.
java.
swing.
plaf.
nimbus.
NimbusLookAndFeel"
Tu projettes Form
Tu ajoutes T & NF & T1 & T2 & Format & m1 & m3 & m4 dans Form
Tu ajoutes m1s1 & m1s2 & m1s3 & m1s4 & m1s5 dans m1
Tu ajoutes m3s1 dans m3
Tu ajoutes m4s1 & m4s2 dans m4
Tu fais réagir m1s1 à "clic souris" pour Nouveau
Tu fais réagir m1s2 à "clic souris" pour Ouvrir
Tu fais réagir m1s3 à "clic souris" pour Sauvegarder
Tu fais réagir m1s4 à "clic souris" pour EnregistrerFermer
Tu fais réagir m1s5 à "clic souris" pour Fermer
Tu fais réagir m3s1 à "clic souris" pour Externe
Tu fais réagir m4s1 à "clic souris" pour màj
Tu fais réagir m4s2 à "clic souris" pour apropos
tant que 1 est différent de 2, lis
temporise
ferme

Nouveau :

Rôles :

Actions :

Si texte de T est différent de Tsauv alors tu vas vers AvertissementNouveau
Sinon, tu vas vers ActionNouveau

PassageNouveau :

Rôles :

Actions :

Tu ajoutes "nouveau" dans passage
Tu ajoutes TA1 & TA2 & TA3 & TA4 & BOnouveau & BNnouveau dans Fnouveau
Tu fais réagir BOnouveau à "clic souris" pour ActionNouveau
Tu fais réagir BNnouveau à "clic souris" pour FermerNouveau
Tu reviens

AvertissementNouveau :

Rôles :

Actions:

visible de Fnouveau vaut "oui"
Si passage contient "nouveau" alors Tu reviens
Sinon, tu vas vers PassageNouveau

ActionNouveau :

Rôles :

Actions :

Texte de NF vaut ""
Texte de T vaut ""
Tsauv vaut ""
Tu vas vers FermerNouveau

FermerNouveau :

Rôles :

Actions :

visible de Fnouveau vaut "non"
Tu reviens

Ouvrir :

Rôles :

Actions :

Si texte de T est différent de Tsauv alors tu affiches "Le fichier actuellement en cour d'édition n'a pas été sauvegardé,
en continuant, vous risquez de perdre une partie ou la totalité
de votre fichier.
"
Tu vas vers AfficherOuvrir

PassageOuvrir :

Rôles :

OE1 est une étiquette, texte vaut "Quel est le nom du fichier à ouvrir ?", x vaut 15, y vaut 5
OE2 est une étiquette, texte vaut "Le fichier doit être dans le dossier 'Documents' à la racine du livre.
", x vaut 15, y vaut 30
Actions :

Tu ajoutes "ouvrir" dans passage
Tu ajoutes BOouvrir & BNouvrir & OE1 & OE2 & OSF & ONF dans Fouvrir
Tu fais réagir BOouvrir à "clic souris" pour ActionOuvrir
Tu fais réagir BNouvrir à "clic souris" pour FermerOuvrir
Tu reviens

AfficherOuvrir :

Rôles :

Actions :

visible de Fouvrir vaut "oui"
Si passage contient "ouvrir" alors tu reviens
Sinon, tu vas vers PassageOuvrir


ActionOuvrir :

Rôles :

to est un texte
Fo est un fichier
§temp est un texte
Actions :

Essaie, lis
Tu ouvres Fo avec "lecture" depuis "Documents"+texte de ONF+valeur de OSF
Essaie, lis
Tant que 1 est différent de 2, lis
Tu décharges temp depuis Fo
Tu ajoutes temp dans to
Tu ajoutes "
" dans to
Ferme
Ferme
Tu fermes Fo
Texte de T vaut to
Tsauv vaut to
Texte de NF vaut texte de ONF
Tu vas vers FermerOuvrir
Ferme
Sinon, lis
Si texte de ONF est égal à "" alors tu affiches "Veuillez rentrez un nom de fichier !"
Sinon, "Désolé, le fichier " + texte de ONF + valeur de OSF +" n'existe pas ! " !
Ferme

FermerOuvrir :

Actions :

visible de Fouvrir vaut "non"
Tu reviens

Sauvegarder :

Rôles :

FS est un fichier
Actions :

Tu ouvres FS avec "écrasement" depuis "Documents/"+texte de NF+valeur de Format
Tu charges Texte de T dans FS
Tu fermes FS
Tsauv vaut texte de T
Tu reviens

EnregistrerFermer :

Rôles :

Actions :

Tu appelles Sauvegarder
Tu attends 1 seconde
Tu vas vers Fermer

Fermer :

Rôles :

Actions :

Tu termines

Externe :

Rôles :

Actions :

Si texte de T est différent de Tsauv alors tu vas vers AvertissementExterne
Sinon, tu vas vers ActionExterne

PassageExterne :

Rôles :

Actions :

Tu ajoutes "externe" dans passage
Tu ajoutes TA1 & TAE & BOexterne & BNexterne dans Fexterne
Tu fais réagir BOexterne à "clic souris" pour préActionExterne
Tu fais réagir BNexterne à "clic souris" pour AnnulerExterne
Tu reviens

AvertissementExterne :

Rôles :

Actions :

visible de Fexterne vaut "oui"
Si passage contient "externe" alors tu reviens
Sinon, tu vas vers PassageExterne

préActionExterne :

Rôles :

Actions :

Tu appelles Sauvegarder
Tu attends 1 secondes
Tu vas vers ActionExterne

ActionExterne :

Rôles :

Actions :

Tu explores "ouvrir Documents/"+texte de NF+valeur de Format
Tu vas vers AnnulerExterne

AnnulerExterne :

Rôles :

Actions :

visible de Fexterne vaut "non"
Tu reviens

màj :

Rôles :

vi est un nombre depuis "http:
//ptittexte.
perso.
sfr.
fr/versionptittexte.
txt"
Actions :

Si vl est plus petit que vi alors tu affiches "Votre livre n'est pas à jour !"
Sinon, tu affiches "Votre livre est à jour !"
Si vl est plus petit que vi alors tu explores "internet http:
//ptittexte.
perso.
sfr.
fr/last.
html"
Tu reviens

PassageApropos :

Rôles :

Eapropos est une étiquette, texte vaut "Je tiens à remercier :
", x vaut 10, y vaut 50
Lapropos est une liste, valeur vaut "", valeurs vaut "Ronan Mounes pour la création du langage linotte|Et tous les membres du forum qui m'ont aidé par leurs remarques.
", x vaut 10, y vaut 75
Eversion est une étiquette, texte vaut "Version du livre :
"+vapropos, x vaut 150, y vaut 20
Actions :

Tu ajoutes "apropos" dans passage
Tu ajoutes Eapropos & Lapropos & Bapropos & Eversion dans Fapropos
Tu fais réagir Bapropos à "clic souris" pour Fermerapropos
Tu reviens

apropos :

Rôles :

Actions :

visible de Fapropos vaut "oui"
Si passage contient "apropos" alors tu reviens
Sinon, tu vas vers PassageApropos

Fermerapropos :

Actions :

visible de Fapropos vaut "non"
Tu reviens

Note : Pour obtenir les anciennes version : [url=c'est ici][/url].
Note² : D'autre formats sont possibles mais peuvent être inutile (comme les formats d'image, son, vidéo qui serai vides), ou propriétaire (comme le .doc de Microsoft Word), il ne sont donc pas proposés, pour tout autre format, merci de demander.

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
Passage en 0.2 avec ajout de la vérification de mise-à-jour.

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
Salut momo112,

Excellent début ! Bonne continuation ! Coïncidence, je prépare aussi un petit livre (pour me changer de SuissBox) en rapport avec le « traitement de textes »…

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
Merci, en tous cas, j'ai hâte de voir ton livre, il risque d'être bien.

-----

Sinon passage en 0.3 :
- Permet d'enregistrer en html
- Permet d'ouvrir des fichiers en odt, txt, html et liv (ils doivents être dans le répertoire du livre)
/!\ Utilise la version 1.2.2 alpha build 338 de linotte.

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
Passage en 0.4 :

-Meilleure gestion des problèmes à l'ouverture de fichiers

Problème connu :

-L'ouverture de fichier n'affiche que la première ligne de ce dernier, si vous avez une solution, ça m'aiderai beaucoup.

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
En fait, le tube écrit/lit ligne par ligne, voici une correction :

Code:

P'tit Texte :

("Spécification :
1.
2.
2")
("version :
0.
4")
("Auteur :
momo112")

Grands rôles :

Form est un formulaire, hauteur vaut 450, largeur vaut 500, titre vaut "P'tit Texte"
Fapropos est un formulaire, hauteur vaut 200, largeur vaut 450, titre vaut "À propos"
Fouvrir est un formulaire, hauteur vaut 150, largeur vaut 400, titre vaut "Ouvrir .
.
.
"
T est un boite, hauteur vaut 335, largeur vaut 490, texte vaut "", visible vaut "oui", x vaut 5, y vaut 80
NF est un champ, taille vaut 25, texte vaut "", x vaut 5, y vaut 30
T1 est une étiquette, texte vaut "Nom de votre texte :
", x vaut 5, y vaut 10
T2 est une étiquette, texte vaut "Rentrez votre texte ci-dessous :
", x vaut 5, y vaut 65
Format est un sélecteur, valeur vaut ".
odt", valeurs vaut ".
odt|.
txt|.
html|.
liv", x vaut 300, y vaut 30
Bapropos est un bouton, texte vaut "Fermer l'à propos", x vaut 150, y vaut 160
BOouvrir est un bouton, texte vaut "Ouvrir le fichier", x vaut 250, y vaut 120
BFouvrir est un bouton, texte vaut "Annuler", x vaut 25, y vaut 120
m1 est un menu, texte vaut "Fichier"
m1s1 est un sousmenu, texte vaut "Nouveau"
m1s2 est un sousmenu, texte vaut "Ouvrir .
.
.
"
m1s3 est un sousmenu, texte vaut "Sauvegarder"
m1s4 est un sousmenu, texte vaut "Terminer"
m3 est un menu, texte vaut "?"
m3s1 est un sousmenu, texte vaut "Vérifier la version"
m3s2 est un sousmenu, texte vaut "À propos"
OSF est un sélecteur, valeur vaut ".
odt", valeurs vaut ".
odt|.
txt|.
html|.
liv", x vaut 310, y vaut 60
ONF est un champ, taille vaut 25, texte vaut "", x vaut 15, y vaut 60

Principal :

Rôles :

Actions :

Tu projettes Form
Tu ajoutes T & NF & T1 & T2 & Format & m1 & m3 dans Form
Tu ajoutes m1s1 & m1s2 & m1s3 & m1s4 dans m1
Tu ajoutes m3s1 & m3s2 dans m3
Tu fais réagir m1s1 à "clic souris" pour Nouveau
Tu fais réagir m1s2 à "clic souris" pour Ouvrir
Tu fais réagir m1s3 à "clic souris" pour Sauvegarder
Tu fais réagir m1s4 à "clic souris" pour Terminer
Tu fais réagir m3s1 à "clic souris" pour màj
Tu fais réagir m3s2 à "clic souris" pour apropos
tant que 1 est différent de 2, lis
temporise
ferme

Nouveau :

Rôles :

Actions :

Texte de NF vaut ""
Texte de T vaut ""
Tu reviens

Ouvrir :

Rôles :

OE1 est une étiquette, texte vaut "Quel est le nom du fichier à ouvrir ?", x vaut 15, y vaut 5
OE2 est une étiquette, texte vaut "Le fichier doit être dans le dossier du livre.
", x vaut 15, y vaut 30
Actions :

visible de Fouvrir vaut "oui"
Tu ajoutes BOouvrir & BFouvrir & OE1 & OE2 & OSF & ONF dans Fouvrir
Tu fais réagir BOouvrir à "clic souris" pour ActionOuvrir
Tu fais réagir BFouvrir à "clic souris" pour FermerOuvrir
Tu reviens

ActionOuvrir :

Rôles :

to est un texte
Fo est un fichier
§temp est un texte
Actions :

Essaie, lis
Tu ouvres Fo avec "lecture" depuis texte de ONF+valeur de OSF
Essaie, lis
Affiche 1
Tant que 1 est différent de 2, lis
Tu décharges temp depuis Fo
tu ajoutes temp dans to
tu ajoutes "
" dans to
Ferme
Ferme
Tu fermes Fo
Texte de T vaut to
Texte de NF vaut texte de ONF
Tu vas vers FermerOuvrir
Ferme
Sinon, lis
Si texte de ONF est égal à "" alors tu affiches "Veuillez rentrez un nom de fichier !"
Sinon, "Désolé, le fichier " + texte de ONF + valeur de OSF +" n'existe pas ! " !
Ferme

FermerOuvrir :

Actions :

visible de Fouvrir vaut "non"
Tu reviens

Sauvegarder :

Rôles :

FS est un fichier
Actions :

Tu ouvres FS avec "écrasement" depuis texte de NF+valeur de Format
Tu charges Texte de T dans FS
Tu fermes FS
Tu affiches "Fichier sauvegardé.

Vous le trouverez dans le dossier du livre.
"
Tu reviens

Terminer :

Rôles :

Actions :

Tu termines

màj :

Rôles :

vl est un nombre valant 04
vi est un nombre depuis "http:
//ptittexte.
perso.
sfr.
fr/versionptittexte.
txt"
Actions :

Si vl est plus petit que vi alors tu affiches "Votre livre n'est pas à jour !"
Sinon, tu affiches "Votre livre est à jour !"
Si vl est plus petit que vi alors tu explores "internet http:
//ptittexte.
perso.
sfr.
fr/last.
html"
Tu reviens

apropos :

Rôles :

Eapropos est une étiquette, texte vaut "Je tiens à remercier :
", x vaut 10, y vaut 50
Lapropos est une liste, valeur vaut "", valeurs vaut "Ronan Mounes pour la création du langage linotte|Et tous les membres du forum qui m'ont aidé par leurs remarques.
", x vaut 10, y vaut 75
Eversion est une étiquette, texte vaut "Version du livre :
0.
2", x vaut 150, y vaut 20
Actions :

visible de Fapropos vaut "oui"
Tu ajoutes Eapropos & Lapropos & Bapropos & Eversion dans Fapropos
Tu fais réagir Bapropos à "clic souris" pour Fermerapropos
Tu reviens

Fermerapropos :

Actions :

visible de Fapropos vaut "non"
Tu reviens

En tout cas, ton livre est sympa.ça va me motiver à enrichir cette partie swing !

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
merci, j'aurai appris quelque chose aujourd'hui.

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
PASSAGE EN VERSION 0.5

Nouveauté :
- Vérifie si le livre en cours a été modifié après sa dernière sauvegarde pour éviter de perdre son travail lors de la création d'un nouveau fichier ou de l'ouverture d'un autre fichier.

Problèmes connu :
- Le curseur clignotant se met tout seul à la fin du texte en cours d'édition ce qui empêche son édition.
- Impossible de terminer le livre avec le verbe "Terminer" dans deux cas :
1 : Lorsque le fichier à été modifier mais pas enregistré et que l'on choisit de fermer le livre malgré l'avertissement
2 : Lorsque le fichier à été modifier mais pas enregistré et que l'on choisit d'enregistrer puis de fermer le livre sur le message d'avertissement.

Si vous avez une solution pour ces problèmes, merci d'avance

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
[quote=momo112]- Impossible de terminer le livre avec le verbe "Terminer" dans deux cas :
1 : Lorsque le fichier à été modifier mais pas enregistré et que l'on choisit de fermer le livre malgré l'avertissement
2 : Lorsque le fichier à été modifier mais pas enregistré et que l'on choisit d'enregistrer puis de fermer le livre sur le message d'avertissement.[/quote]
je n'avais pas lu ça !

descriptionP'tit Texte EmptyP'tit Texte

more_horiz
C'est un problème qui n'est que dans la 0.5, je vais résoudre ça dans la version suivante en mettant deux menus "Enregistrer et fermer" et "Fermer" à la place de la boite de dialogue (le formulaire), ce qui semble régler le problème. C'est encore due à ma façon bizarre de coder.

-----

Passage en 0.6

- Contournement du problème de fermeture.
- Ajout de la possibilité d'ouvrir le document en cours d'édition avec le logiciel adéquate.
- Ajout de paragraphes "PassageXxxxx" pour éviter d'appeler plusieurs fois les évènements.

descriptionP'tit Texte EmptyRe: P'tit Texte

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