FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Compilateur FBPano - Page 4 Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Compilateur FBPano - Page 4 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Compilateur FBPano - Page 4 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Compilateur FBPano - Page 4 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Compilateur FBPano - Page 4 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Compilateur FBPano - Page 4 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Compilateur FBPano - Page 4 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Compilateur FBPano - Page 4 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Compilateur FBPano - Page 4 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Compilateur FBPano - Page 4 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Compilateur FBPano - Page 4 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Compilateur FBPano - Page 4 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Compilateur FBPano - Page 4 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Compilateur FBPano - Page 4 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Compilateur FBPano - Page 4 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Boutique Nike : -25% dès 50€ sur TOUT le ...
Voir le deal

 

 Compilateur FBPano

Aller en bas 
+11
Pedro
Ouf_ca_passe
RMont
Yannick
Klaus
papydall
pascal10000
Minibug
Jicehel
jpcr
jean_debord
15 participants
Aller à la page : Précédent  1, 2, 3, 4, 5 ... 9, 10, 11  Suivant
AuteurMessage
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 6 Jan 2016 - 11:44

là, le type serait le type définit par l'utilisateur "chaine de 10 caractères", avantage: dans dim a$10, le nom de la variable est a$10 et il faut l'écrire partout ainsi. Dans la définition par pseudo type, on utiliserait juste "a", même si cela est un peu ambigu par rapport au réels, mais c'est la même chose que pour Col de type RGBCol, pour lequel on a besoin de voir la déclaration pour savoir qu'il s'agit d'un élément de ce type.
Mais on pourrait supposer a terme tout comme <RGBCol> la définition d'autre type perso créé par l'utilisateur tel que <Monstre> avec <Monstre> définit quelque part dans le programme comme un type perso dont on accéderait aux éléments comme tu le fais pour RGBCol en utilisant le . Ce qui donnerait dans le cas de la variable Gobelin<Monstre>, si on veut accéder aux point de vie par exemple "Gobelin.PointDeVie".

Idéalement, selon moi, il faudrait mettre un petit identifiant après les variables de type définit par l'utilisateur pour améliorer la lisibilité, mais j’arrête de rebondir sur le sujet pour laisser les autres personnes ayant un avis sur le sujet répondre et proposer d'autres choses si elles le souhaitent.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 6 Jan 2016 - 16:23

Si je peux donner mon humble avis:
Je pense que
Code:
dim a$*10(15)
serait ma bonne syntaxe. a$*10 signifie "variable string a$ de longueur fixe de 10 caractères, et (15) transforme cela en tableau de 16 éléments. Et dans le code, on l'utiliserait comme
Code:
print a$(3)
tout à fait normalement, car a$ est justement défini comme tableau de chaînes de longueur constante. Nul besoin de répéter la longueur. Et je trouve que le "*" est un symbolisme approprié pour définir une longueur. C'est même similaire à ce que se fait dans d'autres langages, comme Fortran, avec ses I*4 etc.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 6 Jan 2016 - 17:20

Je comprends cette approche. On ne définit ps un type personnalisé mais on ajuste un type standard. Du coup toutes les opérations se font comme pour des chaines standards. Mais comment se gère les débordement dans le programme. Les résultats sont-ils bien tronqués sans risque de débordement sur les autres valeurs ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 6 Jan 2016 - 17:29

Si j'ai bien compris ce que Jean_Debord a dit, ce type de variable est implémenté par une variable FreeBasic déclarée comme longueur constante. Et donc, c'est FreeBasic qui se charge de tout. FBPano n'est qu'un pré-processeur traduisant le code source FBPano en Freebasic, et c'est ce code FreeBasic qui est compilé et exécute. Et avec certitude, FreeBasic sait gérer ses propres types de données correctement. Je pense donc pouvoir affirmer sans risque d'erreur qu'une variable de ce type aura toujours la même longueur constante, et la troncature ou le complément par des espaces se fera automatiquement, par FreeBasic. C'est un joli coup, qu'il a réussi là, Jean_Debord. Faudra juste confirmer au niveau de la syntaxe du DIM, car contrairement à lui, je pense que le "*" est important pour la clarté du code.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyJeu 7 Jan 2016 - 9:07

@Klaus : oui, c'est exactement cela Smile Je l'expliquerai plus en détail dans mon article.

Donc, je remets l'étoile pour la création des variables :

Code:

dim a$*10          ' Chaine de 10 caracteres
dim b$*10 (15)    ' Tableau de 15 chaines de 10 caracteres chacune

Ensuite on utilise a ou a$, b(1) ou b$(1). Le $ est facultatif.

@Jicehel : oui on peut définir autant de types que l'on veut (i'article donnera des exemples). Ton exemple de Monstre est déjà opérationnel.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyJeu 7 Jan 2016 - 11:22

Voilà, c'est fait Smile La nouvelle version de FBPano est en place sur le WebDav.

Cette version utilise la forme "étoilée" pour la déclaration des chaines de longueur fixe.

J'ai également déposé sur le WebDav de Ygeronimi, dans les articles à corriger, l'article n° 13 qui vous donnera toutes les précisions utiles sur ces nouveaux types, avec en prime une annexe sur la configuration des éditeurs.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyJeu 7 Jan 2016 - 12:48

Merci jean. Je regarde ce soir
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyJeu 25 Fév 2016 - 10:20

Nouvelle version disponible sur mon WebDav (dossier FBPano, archive FBPano.zip)

Principaux ajouts
-----------------

1) Des fonctions pour traiter les dates et les heures :

Code:

Notations :

- x   = nb de jours écoulés depuis le 30/12/1899 à 0h (nombre décimal, la partie fractionnaire correspond à l'heure)
- dh$ = chaîne de caractères contenant une date, une heure, ou les deux (ex. "1/1/2000", "3:10", "13/02/2016 10:15:30")

Les fonctions suivantes retournent la date et l'heure correspondant à un nombre de jours écoulés.
Le paramètre x est facultatif ; s'il est absent les fonctions retournent la date et l'heure courantes.

        fdate(x)      ' date au format français JJ/MM/AAAA
        ftime(x)      ' heure au format HH:MM:SS
        fdatetime(x)  ' date et heure

Les fonctions suivantes retournent le nombre de jours correspondant aux date et/ou heure données :

        str_to_date(dh$)
        str_to_time(dh$)
        str_to_datetime(dh$)

La fonction suivante retourne le jour de la semaine correspondant à une date, à partir de 1 = lundi :

        day_of_week(dh$)

Fonctions supplémentaires :

        date()   ' date du jour au format américain MM-JJ-AAAA
        time()   ' heure courante au format HH:MM:SS
        timer()  ' nombre de secondes écoulées depuis le démarrage de l'ordinateur

2) Des fonctions pour gérer les fichiers à accès aléatoire (random access files)

Code:

Les fonctions suivantes retournent TRUE ou FALSE selon que l'opération a réussi ou non :

        filerandom_open_read(n%, f$)    ' ouvre le fichier en lecture
        filerandom_open_write(n%, f$)   ' ouvre le fichier en écriture
        filerandom_close(n%)            ' ferme le fichier

Lecture / écriture d'un enregistrement (UDT) à la position i :

        filerandom_read  n%, i%, record
        filerandom_write n%, i%, record

Position dans le fichier (en numéro d'enregistrement, à partir de 1) :

        filerandom_position n%, p%     ' fixe la position
        filerandom_pos(n%) as integer  ' retourne la position

Longueur du fichier en octets :

        filerandom_size(n%)

Voici un exemple de programme utilisant ces fonctions :

Code:

' ***********************************************************************
' Exemple de fichier a acces aleatoire
' Liste des membres du forum PANORAMIC ayant participe
' au sujet "Compilateur FBPANO"
' Pour chaque membre on memorise :
'   - le nom (20 caracteres max.)
'   - l'age (0 si non indique)
'   - la date d'inscription
' La date est enregistree sous forme du nombre de jours
' ecoules depuis le 30/12/1899
' **********************************************************


' Definition d'un type
type t_membre = (nom$*20, age%, idate%)

' Definition d'une variable de ce type
dim membre <t_membre>

' Nombre de membres
const n_membres = 8

' Donnees des membres
data "jean_debord" , 61 , "21/09/2008"
data "jpcr"        , 49 , "06/05/2011"
data "Jicehel"     , 43 , "19/04/2011"
data "Minibug"     ,  0 , "10/02/2012"
data "pascal10000" ,  0 , "05/02/2011"
data "papydall"    , 65 , "03/03/2012"
data "cosmos70"    ,  0 , "07/08/2009"
data "Klaus"       , 66 , "29/12/2009"

' Variables intermediaires
' La date est lue sous forme de chaine de caracteres
dim i%, nom$, age%, idate$

' Ouverture du fichier en ecriture
filerandom_open_write 1, "membres.dat", len(membre)

' Lecture des donnees et ecriture des enregistrements
for i = 1 to n_membres
  read nom, age, idate
  with membre
    .nom = nom
    .age = age
    .idate = str_to_date(idate)
  end_with
  filerandom_write 1, i, membre
next i

filerandom_close 1

' Ouverture du fichier en lecture
filerandom_open_read 1, "membres.dat", len(membre)

' Lecture et affichage des enregistrements
for i = 1 to n_membres
  filerandom_read(1, i, membre)
  with membre
    print .nom,
    if .age > 0 then print .age, else print " ",
    print fdate(.idate)
  end_with
next i

filerandom_close 1

Comme d'habitude, tout cela sera présenté plus en détail dans un prochain article du magazine.


Modifications supplémentaires :
-----------------------------

1) Ebauche de fichier d'aide en HTML (fbpano.htm), encore très incomplet !

2) Nombreuses petites modifications dans les fonctions non graphiques de FBPano, visant principalement à rendre l'ensemble plus cohérent. Tout cela est décrit dans la documentation.

3) Code complet des programmes PANOMAND (répertoire exemples\fractal\panomand)

4) Mise à jour des listes de mot-clés dans l'archive editeurs.zip
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyJeu 25 Fév 2016 - 11:23

Super. Ca avance bien.
Je ne testerais pas pour le moment mais je lis les modifications avec intéret
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMar 1 Mar 2016 - 10:21

Un installateur a été ajouté pour la version Windows (fichier setup.exe dans le dossier FBPano)

Cet installateur installe automatiquement tout ce qu'il faut pour faire fonctionner FBPano, y compris une version allégée de FreeBASIC et toutes les bibliothèques nécessaires, dont FLTK.

Au démarrage, un programme de lancement start_fbpano.exe ouvre une superbe fenêtre de type "console", permettant de compiler tout programme écrit en FBPano :

Compilateur FBPano - Page 4 Start_10

Il est bien sûr possible d'installer un éditeur ; pour cela les fichiers de configuration pour les 3 éditeurs compatibles (FBIde, Geany, Synedit_Editor) sont inclus dans la distribution.

Pour ceux qui préfèrent une installation manuelle, ou qui veulent utiliser FBPano sous Linux, le fichier FBPano.zip est toujours là.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMar 1 Mar 2016 - 11:50

Super l'installateur mais je suis au boulot, je ne peux par regarder. Est il paramétrable (par exemple pour ne pas réinstaller les parties déjà installées ?) ou regarde-t-il si certaines parties sont déjà installées en écrasant ce qui est nécessaire ou en refaisant une installation complète si demandé ? C'est une question pour assouvir ma curiosité, et pour savoir si tu devrais faire 2 package: un nouvelle installation (complète) et une "mise à jour depuis la dernière version" plus light qui ne mettent à jour que les éléments nécessaires en demandant si besoin l'effacement de fichiers pouvant poser problèmes
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMar 1 Mar 2016 - 12:43

Je viens de faire l’installation : c’est OK.
Pour les tests, c’est pour plus tard à cause d’une pénurie de temps libre.

Après ta permission, Jean_Debord, j’aimerais bien partager l’astuce suivante,
A propos de la fenêtre de l’invite de commande :

La fenêtre de l'invite des commandes (console windows) est petite; le texte est blanc sur noir, donc pas forcement bien accueillante.
On peut la rendre plus sympa en modifiant la couleur du fond et du texte.
Pour cela, on utilise la commande color xy où x est la couleur du fond et y celle du texte.
Code couleur :
0 = Noir
1 = Bleu
2 =Vert
3 = Bleu ciel
4 = Rouge
5 = Violet
6 = Jaune
7 = Blanc
8 = Gris
9 = Bleu clair
A = Vert clair
B = Bleu vif
C =Rouge vif
D = Violet clair
E = Jaune vif
F =blanc vif.

Exemple : color 3F  < ---- donne  un fond bleu ciel et un texte blanc vif.

Pour agrandir la fenêtre de l’invite de commande, on dispose de la commande mode
Syntaxe :
MODE CON COLS=c  LINES=n avec c nombre de colonnes et n nombre de lignes.
Attention : il ne doit y avoir aucun espace dans COLS=c et dans LINES=n
Exemple :
Mode con cols=150 lines=50 < --- définit une fenêtre de 150 colonnes sur 50 lignes.

Ces modifications ne sont pas permanentes et dès qu’on quitte la fenêtre de l’invite de commande, cette dernière reprendra ses valeurs par défaut.

Pour personnaliser la fenêtre de l’invite de commande et conserver vos préférences :

• Ouvrez une fenêtre d’invite de commande
• Cliquez avec le bouton droit de la souris dans la barre de titre
• Cliquez sur Propriètés
• Ouvrez l’onglet Configuration
• Dans la zone Taille de la fenêtre, augmentez la largeur et la hauteur (colonnes et lignes), par exemple 150 et 50
• Validez par OK. La modification est immédiate et effective les fois suivantes.

C'est mieux, n'est-ce pas ?:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMar 1 Mar 2016 - 18:24

Très intéressant, Papydall !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMar 1 Mar 2016 - 18:47

Merci Maître Klaus
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 2 Mar 2016 - 9:00

Merci pour vos commentaires.

@Jicehel : Je n'ai encore rien prévu pour les mises à jour. C'est encore expérimental.

@Papydall : Merci pour ces précisions. J'en tiendra compte pour la prochaine version.

Le programme de lancement est encore très "basique". Sa principale fonction est d'ajouter le chemin du compilateur à la variable PATH (s'il n'y est pas déjà), pour qu'on puisse compiler depuis n'importe quel répertoire en tapant simplement "fbpano".
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 2 Mar 2016 - 9:17

Et c'est déjà une très bonne idée pour que les personnes puissent essayer facilement Wink
Après quand il y aura plus de monde dessus, la mise à jour sera un plus. Ca n'a rien de prioritaire.
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 16 Mar 2016 - 9:15

Je réfléchis à l'implémentation des DLIST dans FBPano.

Pour éviter toute confusion avec l'objet graphique LIST, les DLIST seront des variables d'un type particulier, déclarées par DIM.

La question, c'est comment identifier ces variables ? J'hésite entre :

- un suffixe particulier, p. ex. $$ (une super-chaîne de caractères en quelque sorte ...)

Code:
dim L$$     ' Crée la liste L

- une déclaration comme pour un UDT, avec DLIST comme nom de type :

Code:
dim L <dlist>     ' Crée la liste L

Qu'en pensez-vous ?
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 16 Mar 2016 - 9:23

Perso, je préfère la deuxième solution qui me semble plus standard avec les différents types de données.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 16 Mar 2016 - 9:36

Qu'est-ce qui s'oppose à garder DLIST en tant qu'objet ? C'est un objet invisible comme tant d'autres (timer, opendialog, ...) et techniquement implémenté comme un TStringList en Delphi, contrairement à un objet LIST qui est implémenté par un TListBox. Ne serait-ce pas possible en FreeBasic ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMer 16 Mar 2016 - 10:37

Merci pour vos réponses.

@Jicehel : je garde donc la deuxième version (dim L <dlist>)

@Klaus : dans FBPano les objets graphiques tels que LIST sont fournis par la DLL FLTK ; pour les DLIST j'utilise une bibliothèque indépendante :
http://www.freebasic.net/forum/viewtopic.php?f=8&t=23544&hilit=ktamp#p207507
C'est bien un "objet" au sens de la "programmation orientée objet" mais ce n'est pas un objet graphique.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptySam 19 Mar 2016 - 10:35

Voici donc ce qui a été implémenté à cette date :

1. Création : comme un UDT avec le type prédéfini `dlist`
Code:

        dim list <dlist>

2. Fonctions :
Code:

        dlist_count(list)           ' Retourne le nombre d'éléments
        dlist_item_read(list, i)    ' Retourne l'élément d'odre i (i >= 1)

3. Instructions :
Code:

        dlist_item_add list, a      ' Ajoute la chaîne `a` en fin de liste
        dlist_item_insert list, a   ' Insère la chaîne `a` après l'élément d'ordre i
        dlist_item_delete list, i   ' Supprime l'élément d'ordre i
        dlist_clear list            ' Efface la liste

4. Lecture/écriture de fichiers textes : les fonctions suivantes retournent TRUE ou FALSE selon que le fichier f$ a pu être ouvert ou pas :
Code:

        dlist_file_add(list, f$)    ' Ajoute les lignes du fichier
        dlist_file_load(list, f$)   ' Crée une nouvelle liste avec les lignes du fichier
        dlist_file_save(list, f$)   ' Ecrit la liste dans le fichier

5. Tri alphabétique :
Code:

        dlist_invert list           ' Inverse l'ordre des éléments
        dlist_sort_ascending list   ' Tri en ordre croissant
        dlist_sort_descending list  ' Tri en ordre décroissant

6. Tri selon un critère spécifique : le critère de comparaison de 2 chaînes de caractères doit être implanté sous la forme d'une fonction qui retourne TRUE si les chaînes sont dans le bon ordre, FALSE sinon.

Exemple : pour comparer deux dates :
Code:

        function compare% (a$, b$)
          compare = (str_to_date(a) < str_to_date(b))
        end_function

L'adresse de cette fonction est passée à la procédure `dlist_sort` :
Code:

        dlist_sort list, adr(compare)

Comme vous pouvez le constater, il s'agit essentiellement des fonctions PANORAMIC. Toujours pour éviter toute confusion avec les objets graphiques, tous les noms sont préfixés par dlist. La principale extension réside dans la possibilité de définir une fonction de comparaison spécifique pour les tris. Voici un exemple de programme utilisant cette possibilité :

Code:

' **********************************************************
' Exemple de DLIST : Tri d'une liste de dates
' **********************************************************

function compare% (a$, b$)
  compare = (str_to_date(a) < str_to_date(b))
end_function

sub print_list (list<dlist>, title$)
  dim i%
  print title
  print "---------------------------"
  for i = 1 to dlist_count(list)
    print i, dlist_item_read(list, i)
  next i
  print
end_sub

data "21/09/2008"
data "06/05/2011"
data "19/04/2011"
data "10/02/2012"
data "05/02/2011"
data "03/03/2012"
data "07/08/2009"
data "29/12/2009"

dim list <dlist>
dim i%, d$

for i = 1 to 8
  read d
  dlist_item_add list, d
next i

print_list list, "Liste non triee"

dlist_sort list, adr(compare)

print_list list, "Liste triee"

Et voici le résultat :

Code:

Liste non triee
---------------------------
 1            21/09/2008
 2            06/05/2011
 3            19/04/2011
 4            10/02/2012
 5            05/02/2011
 6            03/03/2012
 7            07/08/2009
 8            29/12/2009

Liste triee
---------------------------
 1            21/09/2008
 2            07/08/2009
 3            29/12/2009
 4            05/02/2011
 5            19/04/2011
 6            06/05/2011
 7            10/02/2012
 8            03/03/2012

Tout cela sera dans la prochaine mise à jour, et détaillé dans le prochain article.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptySam 19 Mar 2016 - 13:16

Je tiens à te remercier Jean_Debord.
C’est un gros travail que tu fais pour ton plaisir et pour le confort des Panoramiciens.
Bonne continuation. cheers
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyDim 27 Mar 2016 - 9:23

Merci papydall !

Fort de ces encouragements, je continue de travailler sur la prochaine mise à jour. Cela nécessite entre autres que l'on numérote les versions. Partant du principe qu'il a fallu 10 ans à Panoramic pour parvenir à une version proche de 1.0, je considère que la version actuelle de FBPano, qui correspond à sa première année d'existence, est la 0.1

Donc :

- un an = 1 dixième de version
- une mise à jour (à peu près) mensuelle = 1 centième de version

La prochaine version sera donc la 0.11

Pour Windows, on aura donc 2 installateurs :

- setup011.exe pour l'installation complète
- update010to011.exe pour la mise à jour depuis la version actuelle

Bien sûr il y aura toujours le fichier FBPano.zip pour l'installation manuelle.

Cela vous convient-il ?
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyDim 27 Mar 2016 - 9:30

Ca me parait parfait en tout cas, pour le moment, je ne vois pas d'autre logiciel "logistique" à ajouter
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 EmptyMar 29 Mar 2016 - 10:17

Merci Jicehel. Les fichiers sont donc sur le WebDav.

Au menu de la version 0.11 :

- les DLISTs, comme décrites dans le précédent message. J'ai juste ajouté aux procédures de tri une option pour éliminer les doublons.
- la procédure de Papydall pour les courbes de Bezier cubiques, intégrée à la bibliothèque geometry.bas (anciennement polygones.bas) dans le dossier exemples\lib
- une nouvelle version de la bibliothèque FLTK, par D. J. Peters

La fenêtre de lancement est désormais en vert sur fond noir. Pour changer de couleurs vous devrez recompiler le programme start_fbpano.bas après avoir modifié la ligne suivante :

Code:

shell "cmd.exe /t:0A /k fbpano.exe"

La couleur est indiquée par le paramètre /t:, ici 0 (noir) pour le fond et A (vert clair) pour le texte. Pour d'autres couleurs, voir le message de Papydall.

Je n'ai pas trouvé comment changer les dimensions de la fenêtre ou la police de caractères avec les paramètres de cmd.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé





Compilateur FBPano - Page 4 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 4 Empty

Revenir en haut Aller en bas
 
Compilateur FBPano
Revenir en haut 
Page 4 sur 11Aller à la page : Précédent  1, 2, 3, 4, 5 ... 9, 10, 11  Suivant
 Sujets similaires
-
» Configurer FBide pour FBPano
» Container_begin
» Un éditeur pour FBPano
» Evolution de FBPano
» Nouvelle version 0.36

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Grands projets réalisés avec Panoramic :: Compilateur FBPANO-
Sauter vers: