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.
Nombre d'objets  - Page 3 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Nombre d'objets  - Page 3 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

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

» Décompilation
Nombre d'objets  - Page 3 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Nombre d'objets  - Page 3 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Nombre d'objets  - Page 3 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Nombre d'objets  - Page 3 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Nombre d'objets  - Page 3 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Nombre d'objets  - Page 3 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Nombre d'objets  - Page 3 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Nombre d'objets  - Page 3 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Nombre d'objets  - Page 3 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Nombre d'objets  - Page 3 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Nombre d'objets  - Page 3 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Nombre d'objets  - Page 3 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 à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 Nombre d'objets

Aller en bas 
+4
Jack
659_minifly
Nardo26
JL35
8 participants
Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMar 26 Oct 2010 - 17:28

Bonsoir à tous !

Concernant les variables, je pense que JL35 a raison et que vouloir à tout prix essayer d'analyser tous les cas possibles... cela risque de tuer l'idée de départ de l'utilitaire. Puis quel est l'intérêt de savoir que la variable i% est utilisée en ligne 45,78,789,2xen 814,1664 ?...
A la rigueur savoir où elle est déclarée est une info, par contre connaitre sa dispersion dans le prog...

Je viens de mettre à jour sur mon site une nouvelle version plus élaboré concernant l'identification des objets...

Je serai presque tenté de remplacer les objects_number+1 par leurs "véritables" valeurs, mais malheureusement rien ne me garanti que la déclaration se fait de manière linéaire..(un petit gosub qui irai sur une procédure de déclaration d'objet, et hop: c'est foutu!)



Dernière édition par Nardo26 le Mar 26 Oct 2010 - 18:36, édité 1 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMar 26 Oct 2010 - 18:16

Finalement je me prends au jeu... c'est vrai que ce n'est sans doute pas d'un intérêt puissant de savoir où sont toutes les variables dans le programme, mais... les rechercher c'est du sport !

J'ai un truc qui devrait marcher, mais il y a encore quelques failles, il y a tellement de cas particuliers et avec les lacunes des traitements de chaînes par panoramic ça ne facilite pas les choses. Et c'est fichu pour ce soir, je dois sortir Shocked

Je me concentre sur les variables, pour le moment je ne touche pas aux objets (pas facile) ni étiquettes (facile je pense).

Tu as raison, essayer de déterminer le véritable numéro des objets peut être scabreux, avec les définitions dynamiques.

Bonne soirée !

N'empêche que ce sujet qui paraissait bénin a quand même été lu 419 fois jusqu'à présent...
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMar 26 Oct 2010 - 19:02

Je pense avoir fais le tour avec la détection des objets :
il me restait un cas que je viens de corriger :
12 for i%=2 to 5
13 DLIST i%
14 next i%
15 for i%=6 to 10
16 ALPHA i%
17 next i%

Dans cet exemple, pour les ALPHAs je me retrouvai avec une numérotation de 2 à 5 au lieu de 6 à 10...
--> même variable : le parcours se faisait dans le mauvais sens.
Smile

J'ai besoin de testeurs, pour voir si je n'ai pas oublié des cas... qui veut bien s'y coller ? Wink

432 maintenant, comme quoi un post qui démarre tout doucement... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMar 26 Oct 2010 - 19:11

Je ne sais plus ou j'en suis, mais si j'ai parlé de variable, c'est si je m'en souvient bien, une fois que les variables, les label, les chaines les rem et quelques signes, il ne reste plus que les variables et les nombres.

Maintenant, veuillez prendre la peine de m'excuser, mais je crois que j'ai pris un coup de vieux, peut-être 10 ans, en tout cas avec Coluche ce sera bientôt 1 an. Je ne comprends plus ce que vous voulez faire.

A ce que j'ai compris, vous trouvez les variables, mais si ce n'ai pas pour changer le nom le nom, que voulez-vous faire, puisque cela ne suffit plus.

Voyez-vous, il arrive un énorme trou noir dans le cosmos, et me voila mal barré!? (où je suis?) Je pense que je vais dire bonjour à Coluche. Le 21 décembre 2012 c'est trop loin.Very Happy

Pour ce qui est de la recherche du forum, j'ai effectivement vu le poste de Klaus, mais ça ne me donne rien. J'ai désinstallé Firefox et choisi Chrome qui est plus rapide sur mon ordi. Mais rechercher jusqu'où? Les pages sont retirées. Je ne peux pas descendre plus bas que le mois de juin, en ce qui concerne mon pseudo, pour bavardage, je crois ce c'est au 31 décembre.

A, je crois que c'est pour bientôt, j'ai ouvert la fenêtre et j'ai vu que le ciel s'assombri.

Alléluia mes frères. pig
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2395
Date d'inscription : 28/05/2007

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMar 26 Oct 2010 - 19:39

Bizarre comme message ...
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMar 26 Oct 2010 - 20:29

Pas de problème Jack, là tu m'étonnes. Les circonstances pendant mon travail, ont fait que j'ai associé plusieurs faits, pour en rire. J’espérais pas être pris au sérieux.
Généralement quand je mets un émotion, il faut le prendre dans le bon sens.
La vie continue.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 6:51

@cosmos : ca arrive à tout le monde de péter un câble... Wink

Pour en revenir au programme : Pour l'instant je me concentre sur la détection des objets définis dans un fichier Panoramic.
Le programme permet d'afficher la liste des objets contenu dans un source. et il existe pas mal de trucs tordus pour que cela m'occupe pendant un petit moment (sans compter que je vais peut être rajouter une info supplémentaire concernant les évènements). Mais ça progresse !! Very Happy
Actuellement l'affichage est sommaire mais une fois que cela sera un peu plus élaboré, l'interface sera un peu plus conviviale...

JL35 cherche à rajouter une fonctionnalité supplémentaire au programme : les variables.
Le sujet est vaste et à mon avis beaucoup plus complexe que les objets !

  1. Trouver les déclarations :
    ça ok, cela ne pose pas de gros problèmes (juste rechercher des DIM et faire du traitement/manipulation de chaine)

  2. Lister les endroits où elles sont utilisées dans le source.
    1. doit-on par exemple pour une variable d'ordre général (par ex. i%) scruter l'ensemble du fichier source ou alors définir des zones de recherche?
      Je m'explique:
      avoir par exemple un combo qui permet de sélectionner la variable (dans notre exemple i%)
      un 2ème combo qui défini la procedure/Etiquette dans laquelle on va rechercher toutes les référence à i%

  3. Autre ?


Je viens faire une mise à jour sur mon site pour pouvoir gérer le cas suivant:
Code:
15 LABEL Init: Goto Init
16 LIST maListe%
17 ...
...
20 END
21 Init:
22  DIM maListe%: maListe%=45
23 return

Une petite question :
J'aimerai pouvoir faire ceci :
Avoir l'editeur panoramic d'ouvert sur un fichier
Avoir l'utilitaire (compilé) ouvert à coté.
Si je modifie le source dans l'éditeur et que je fais une sauvegarde, j'aimerai que l'utilitaire détecte cette sauvegarde (via la date du fichier peut être?) et fasse un rafraichissement de sa liste.
Est-ce possible ?

PS: Je vois qu'il n'y a pas grand monde qui veut bien s'y coller (aux tests)...
Laughing
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 11:15

Citation :
J'aimerai pouvoir faire ceci :
Avoir l'editeur panoramic d'ouvert sur un fichier
Avoir l'utilitaire (compilé) ouvert à coté.
Si je modifie le source dans l'éditeur et que je fais une sauvegarde, j'aimerai que l'utilitaire détecte cette sauvegarde (via la date du fichier peut être?) et fasse un rafraichissement de sa liste.
Est-ce possible ?

Je sais que je ne suis pas avec vous mais je peux te dire que c'est possible.
Mais il faut s'y prendre entrement, et se servir un programme compilé chain. C'est pratiquement ce que je fais pour ainsi dire, mes avec des variantes. Sur l'un des principes, j'avais publié une méthode qui de faire un onglet par procédure, et un autre onglet qui assemblait chaque onglet celui-ci étant envoyé à un programme compilé et le programme ainsi un programme bas, était exécuté avec la fonction chain.

J'essayerai de retrouver ce programme, mais pas maintenant.
Avec l'éditeur Crimson, je fais un peu différent. Sur la première ligne du programme en cours, je met ceci:
Code:
' chain nom_du_programme.bas
celui-ci est récupéré par le programme chain compilé, qui sauve le source, et l'exécute avec l'instruction chain.

Donc c'est possible, il faut juste que les différents programmes, s'accordent.
supplément: hier j'ai pas pété les plomb, mais manqué de psychologie. L'humour sur le tas, c'est pas l'humour qu'on écrit. A noté que j'ai l'impression d'être plus jeune que ceux de mon âge, et cela je n'avais pas envie de le dire, mais il faut que je vous rassure.

j'ai retrouvé:
https://panoramic.1fr1.net/presentation-et-bavardage-f5/une-idee-avec-chain-t944.htm
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 13:37

@cosmos c'est vrai que ton message était un peu inquiétant en parlant de fin du monde et tout ça, mais bon, c'était de l'humour alors tout va bien.

@Nardo mon seul but pour le moment c'est de dresser la liste de toutes les variables déclarées (facile), et la liste de toutes les lignes où elles sont utilisées, variable par variable. Je veux savoir que telle variable est utilisée à la ligne m, la ligne n, la ligne p etc. de manière exhaustive.
Ça n'a peut-être aucune utilité finalement ( Very Happy ) mais c'est en tout cas ce que je cherche à faire, tout simplement. Quand j'aurai l'outil je trouverai son utilité après (je marche à l'envers Very Happy )

Tu voudrais faire une analyse en temps réel, qui soit mise à jour à chaque changement du source... ça me paraît une complication... sans intérêt pour moi a priori, mais bon, comme j'ai dit c'est du sport !

Bon, je m'y remets.
------------------------------------------------------------------------------------------------------------------------------------------------------
Voilà, une nouvelle ébauche de la recherche des variables. Il n'y a aucune recherche esthétique, le résultat est présenté de manière minimaliste, mais bon, il faut voir le principe, l'habillage peut venir après.
Les résultats sont affichés ainsi, pour chaque ligne:
- Le nom de la variable
- Entre crochets le numéro de la ligne où la variable est déclarée
- Puis entre crochets le numéro de chaque ligne où la variable est utilisée:
Code:
DIM f$, a$, b$, c$, a1$, i%, k%, k1%, k2%, nl%, nvar%, neti%, nobj%, ign%, n%
DIM v$, lv%, sva$
DIM var$(200), eti$(100), obj$(100)
LABEL ra, rb, rc, rd, re, Suit1, Suit2, Suit3, Tri, Misfo, Recvar, rcvs

f$ = "C:\LANGAGES\Panoramic\Etiquette.bas": ' ***** SOURCE A ANALYSER *****

nvar% = 0: neti% = 0: nobj% = 0
' ***** VARIABLES DÉCLARÉES (DIM)
FILE_OPEN_READ 1, f$: nl% = 0
WHILE FILE_EOF(1) = 0
    nl% = nl% + 1: FILE_READLN 1, a$: GOSUB Misfo: IF ign% = 1 THEN GOTO Suit1
    k% = INSTR(a$, "DIM ")
    IF k% > 0
        a$ = MID$(a$, k%+4, LEN(a$)-k%-3)
ra:
        k% = INSTR(a$, ":"): a1$ = ""
        IF k% > 0 THEN a1$ = MID$(a$, k%+1, LEN(a$)-k%): a$ = LEFT$(a$, k%-1)
        k% = INSTR(a$, "(")
        IF k% > 0
            b$ = MID$(a$, k%+1, LEN(a$)-k%)
            k2% = INSTR(b$, ")")
            IF k2% > 0
                k1% = INSTR(b$, ",")
                IF k1% > 0 AND k1% < k2%
                    k1% = k% + k1%: k2% = k% + k2%
                    a$ = LEFT$(a$, k%-1)+"["+MID$(a$, k%+1, LEN(a$)-k%)
                    a$ = LEFT$(a$, k1%-1)+"."+MID$(a$, k1%+1, LEN(a$)-k1%)
                    IF k2% < LEN(a$)
                        a$ = LEFT$(a$, k2%-1)+"]"+MID$(a$, k2%+1, LEN(a$)-k2%)
                    ELSE
                        a$ = LEFT$(a$, k2%-1) + "]"
                    END_IF
                END_IF
            END_IF
        END_IF
rb:
        k% = INSTR(a$, ",")
        nvar% = nvar% + 1: b$ = STR$(nl%): b$ = STRING$(5-LEN(b$)," ") + b$
        IF k% > 0
            var$(nvar%) = TRIM$(LEFT$(a$, k%-1)) + b$
            a$ = MID$(a$, k%+1, LEN(a$)-k%): GOTO rb
        END_IF
        var$(nvar%) = TRIM$(a$) + b$
        IF a1$ <> "" THEN a$ = a1$: GOTO ra
    END_IF
Suit1:
END_WHILE
FILE_CLOSE 1
' *****  ÉTIQUETTES DÉCLARÉES (LABEL)
FILE_OPEN_READ 1, f$: nl% = 0
WHILE FILE_EOF(1) = 0
    nl% = nl% + 1: FILE_READLN 1, a$: GOSUB Misfo: IF ign% = 1 THEN GOTO Suit2
    k% = INSTR(a$, "LABEL ")
    IF k% > 0
        a$ = MID$(a$, k%+6, LEN(a$)-k%-5)
rc:
        k% = INSTR(a$, ":"): a1$ = ""
        IF k% > 0 THEN a1$ = MID$(a$, k%+1, LEN(a$)-k%): a$ = LEFT$(a$, k%-1)
rd:
        k% = INSTR(a$, ",")
        neti% = neti% + 1: b$ = STR$(nl%): b$ = STRING$(5-LEN(b$)," ") + b$
        IF k% > 0
            eti$(neti%) = TRIM$(LEFT$(a$, k%-1)) + b$
            a$ = MID$(a$, k%+1, LEN(a$)-k%): GOTO rd
        END_IF
        eti$(neti%) = TRIM$(a$) + b$
        IF a1$ <> "" THEN a$ = a1$: GOTO rc
    END_IF
Suit2:
END_WHILE
FILE_CLOSE 1
' remise en forme des déclarations de tableaux à double entrée
FOR i% = 1 TO nvar%
    a$ = var$(i%)
    k% = INSTR(a$, "[")
    IF k% > 0
        a$ = LEFT$(a$, k%-1) + "(" + MID$(a$, k%+1, LEN(a$)-k%)
        k% = INSTR(a$, "]")
        IF k% > 0
            a$ = LEFT$(a$, k%-1) + ")" + MID$(a$, k%+1, LEN(a$)-k%)
            k% = INSTR(a$, ".")
            IF k% > 0
                a$ = LEFT$(a$, k%-1) + "," + MID$(a$, k%+1, LEN(a$)-k%)
            END_IF
        END_IF
        b$ = LEFT$(a$, LEN(a$)-5)
        FOR k% = 1 TO LEN(b$): ' suppression éventuelle des espaces superflus
            IF MID$(a$, k%, 1)=" " THEN b$=LEFT$(b$, k%-1) + MID$(b$,k%+1,LEN(b$)-k%)
        NEXT k%
        var$(i%) = b$ + RIGHT$(a$, 5)
    END_IF
NEXT i%

GOSUB Tri: ' tri alpha des résultats

HEIGHT 0, SCREEN_Y
' PRINT f$ + " Total= " + STR$(nvar%) + " variables, " + STR$(neti%) + " étiquettes."
FOR i% = 1 TO nvar%
    var$(i%) = LEFT$(var$(i%), LEN(var$(i%))-5) + " [" + TRIM$(RIGHT$(var$(i%),5)) + "]"
    ' PRINT var$(i%)
NEXT i%
' PRINT " - ÉTIQUETTES -"
FOR i% = 1 TO neti%
    eti$(i%) = LEFT$(eti$(i%), LEN(eti$(i%))-5) + " [" + TRIM$(RIGHT$(eti$(i%),5)) + "]"
    ' PRINT eti$(i%)
NEXT i%

' *****  RECHERCHE DES VARIABLES DANS LE CODE *******************************
FILE_OPEN_READ 1, f$: nl% = 0
WHILE FILE_EOF(1) = 0
    nl% = nl% + 1: FILE_READLN 1, a$: GOSUB Misfo: IF ign% = 1 THEN GOTO Suit3
    k% = INSTR(UPPER$(a$), "DIM ")
    IF k% > 0
        ' c'est une ligne de DIM
        a1$ = "": IF k% > 1 THEN a1$ = LEFT$(a$, k%-1)
        b$ = MID$(a$, k%, LEN(a$)-k%+1)
        k1% = INSTR(b$, ":")
        IF k1% > 0
            a$ = a1$ + MID$(b$, k1%, LEN(b$)-k1%+1)
        ELSE
            a$ = a1$
        END_IF
        IF TRIM$(a$) = "" THEN GOTO Suit3
    END_IF
    FOR n% = 1 TO nvar%
        v$ = var$(n%): k% = INSTR(v$, " "): v$ = LEFT$(v$, k%-1)
        GOSUB Recvar
        IF ign% = 0
            var$(n%) = var$(n%) + " [" + STR$(nl%) + "]"
        END_IF
    NEXT n%
Suit3:
END_WHILE
FILE_CLOSE 1
' ***************************************************************************

' ***** AFFICHAGE DES RÉSULTATS
PRINT f$ + " Total= " + STR$(nvar%) + " variables, " + STR$(neti%) + " étiquettes."
FOR i% = 1 TO nvar%
    PRINT var$(i%)
NEXT i%
PRINT " - ÉTIQUETTES -"
FOR i% = 1 TO neti%
    PRINT eti$(i%)
NEXT i%
END
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Tri:
DLIST 99
FOR i% = 1 TO nvar%: ITEM_ADD 99, var$(i%): NEXT i%
SORT 99
FOR i% = 1 TO nvar%: var$(i%) = ITEM_READ$(99, i%): NEXT i%
CLEAR 99
FOR i% = 1 TO neti%: ITEM_ADD 99, eti$(i%): NEXT i%
SORT 99
FOR i% = 1 TO neti%: eti$(i%) = ITEM_READ$(99, i%): NEXT i%
DELETE 99
RETURN

Misfo:
' Mise en forme de a$ avant analyse (élimination des éléments superflus)
ign% = 0
a$ = TRIM$(a$): IF a$ = "" THEN ign% = 1: RETURN
k% = INSTR(a$, "' "): IF k% = 1 THEN ign% = 1: RETURN
IF k% > 0 THEN a$ = RTRIM$(LEFT$(a$, k%-1))
IF RIGHT$(a$, 1) = ":" THEN a$ = LEFT$(a$, LEN(a$) - 1)
' Éliminer le contenu entre quotes (merci Nardo)
k% = INSTR(a$, CHR$(34))
IF k% > 0
    b$ = MID$(a$, k%+1, LEN(a$)-k%)
    k1% = INSTR(b$, CHR$(34))
    IF k1% > 0
        a$ = LEFT$(a$, k%) + MID$(b$, k1%, LEN(b$)-k1%+1)
    END_IF
END_IF
RETURN

Recvar:
' Recherche de la variable v$ dans a$
sva$ = a$: ign% = 0
k% = INSTR(v$, "("): ' tableaux
IF k% > 0 THEN v$ = LEFT$(v$, k%)
lv% = LEN(v$)
re:
k% = INSTR(a$, v$): IF k% < 1 THEN ign% = 1: GOTO rcvs
IF k% > 1
    c$ = MID$(a$, k%-1, 1): ' c'est pas le 1er, caractère précédent
    IF c$<>" " AND c$<>"+" AND c$<>"-" AND c$<>"*" AND c$<>"/"
        IF k% = LEN(a$) THEN ign% = 1: RETURN
        a$ = MID$(a$, k%+1, LEN(a$)-k%): GOTO re
    END_IF
END_IF
IF k% <= (LEN(a$)-lv%) AND RIGHT$(v$, 1) <> "("
    c$ = MID$(a$, k%+lv%, 1): ' c'est pas le dernier ni tableau, caractère suivant
    IF c$<>" "AND c$<>"+"AND c$<>"-" AND c$<>"*" AND c$<>"/"AND c$<>":"
        a$ = MID$(a$, k%+1, LEN(a$)-k%): GOTO re
    END_IF
END_IF
rcvs:
a$ = sva$
RETURN
Ça m'a déjà permis de découvrir dans mon programme testé des variables déclarées non utilisées.

Il y a forcément des cas particuliers qui ne se sont pas présentés et auxquels je n'ai pas pensé...

Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 14:22

Bonjour JL35,

Je trouve que l'intérêt n'est pas des moindre :
C'est une aide au développement.
Ce n'est pas une analyse en temps réel loin de là car elle est/sera (peut être) déclenchée lors de la sauvegarde physique sur le disque dur.

Un exemple :
tu tapes un programme dans l'éditeur de panoramic. A un moment donné, tu as besoin de créer un objet. Tu sauvegardes ton source en cours et automatiquement l'utilitaire qui contrôle ton fichier en cours, t'affiches les numéros d'objets utilisés.
A partir de là tu sais par exemple que l'objet n°12 est déjà utilisé et donc tu choisis un autre numéro.

Un autre exemple :
Imagines que tu as une palanqué de champs d'édition (tous référencés par un nom de variable).
il est intéressant pendant l'édition de ton code de disposer d'une liste qui t'affiche le nom de ces champs.
Tu n'as pas besoin de sortir un bout de papier et de noter dans un coin le nom (variable) de tes champs...

C'est sûr que pour un source d'une dizaine de lignes ou n'ayant que 3 objets, cela n'a pas d'intérêt...


@cosmos : Patiente un peu, je te prépare une réponse au sujet de ton prog...


Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 14:38

Bonjour Nardo, vu comme ça oui effectivement, à défaut d'autre chose ça peut être d'une grande aide dans le choix des numéros d'objets à insérer après coup, pendant la mise au point.
(Même si ça ne résout pas mon problème d'ajout dynamique d'un objet temporaire, par programme, objet supprimé après traitement).

Mais ça ne te sera pas facile d'intégrer ça à la sauvegarde sur disque, il va te falloir des complicités externes ! Par contre ça pourrait être un exe externe, sur le bureau, qu'on pourrait appeler manuellement après avoir fait la sauvegarde (qui pourrait peut-être récupérer automatiquement le dernier programme sauvegardé, ça c'est facile: DIR *.bas /O:-D /B), et là tu serais maître de toute la chaîne.
Après tout on n'aura pas besoin de lancer ton utilitaire automatiquement à chaque sauvegarde.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 16:43

J'ai trouvé une solution provisoire concernant la détection de changement de date.
Ca fonctionne, mais franchement c'est trop moche...
En fait le prog au chargement du fichier me génère un tmp.bat qui contient la commande
"DIR > file.tmp"
ensuite un timer vient de temps en temps executer ce tmp.bat, fait un file_load de file.tmp dans une dlist et compare ensuite la ligne qui contient la date du fichier avec celle qu'il a mémorisé le coup précédent.
Ce qui est moche, c'est que pendant un bref instant j'ai une fenetre DOS qui apparait au PREMIER PLAN (le temps de l'exécution du dir)... ca marche, mais..... vraiment trop moche ! Smile


Faut que je fasse une dll qui me renvoi la date du fichier Sad Mais il faut d'abord que j'arrive à refaire fonctionner Delphi... je crois que je vais tout réinstaller... Sad

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 17:20

Quel editeur que tu utilises, vu que je me rappelle m'avoir dit que j'avais un super éditeur, ou quelque chose comme ça.

Vu que je me sers de Crimson Editor, je passe par un programme Panoramic avec chain. Je fais un CTRL A et CTRC avent (en réalité, la touche F9 a la macro de ceci), et le programme Panoramic, me reprend le programme par le presse papier. Pour moi, c'est tout simple, mais peut-être que j'ai pas compris la vrai façon que tu veux faire ton programme.
Je suis désolé, mais j'ai un programme complexe, avec des trucs partout, et je ne veux pas me disperser.

Une chose toutefois, ne pas directement se servir de chain avec l'éditeur Panoramic, cela a pour conséquence de rendre l'éditeur grisé (l'éclair). Il faut un exécutable de chain.

Je crois que j'ai plus de contribution à faire. Vous savez quoi faire, et êtes certainement meilleurs que moi.
Bonne programmation
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 18:14

J'utilise l'éditeur Visual SlickEdit (très performant)...mais il n'est pas gratuit...
Ton programme si je comprend bien simule un loader avec prise en charge d'une sorte de 'include'...

Ce n'est pas tout à fait ce que je souhaite. Je ne veux pas lancer l'execution d'un programme.
C'est juste un contrôle du contenu d'un source... comme le source change car on fait régulièrement des sauvegardes lors du codage (n'est-ce pas? Wink )
il me faut détecter ce changement...


Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 18:41

C'est exactement ce que je fais, ou alors je comprend mal, comme comme certains mots que vous utilisez avec JL35
Citation :
d'ajout dynamique d'un objet temporaire, par programme, objet supprimé après traitement).
Il y a beaucoup de mot que je ne comprend pas (ça fait rien, volontairement je ne rentre pas complètement dans le sujet.
Si j'ai bien compris:
Citation :
Un exemple :
tu tapes un programme dans l'éditeur de panoramic. A un moment donné, tu as besoin de créer un objet. Tu sauvegardes ton source en cours et automatiquement l'utilitaire qui contrôle ton fichier en cours, t'affiches les numéros d'objets utilisés.
A partir de là tu sais par exemple que l'objet n°12 est déjà utilisé et donc tu choisis un autre numéro.
Tu peux le sauvegarder, mais aussi faire copier coller du programme.
Je me rappelle d'un coup que c'est ce que j'ai fais avec mon programme de grilles.
Le programme au départ ouvre le programme grilles et celui-ci contrôle le presse papier. lorsqu'il voit une commande de l'autre programme, il réagit. Cela peut se faire par le presse papier, mais aussi par un fichier que l'autre détecte, et l'efface pour voir de nouveau l'arrivée des commandes. Il y a plein de solution.
Je t'explique comment je fais: pour mes programmes, je fais une copie de mon programme, puis je lance l’exécutable qui reprend le presse papier. Celui-ci n'est pas obligé de l'exécuter, mais avoir le programme d'analyse.
Maintenant tu peux aussi faire une sauvegarde par contrôle S, si ton éditeur le permet sous un nom de fichier provisoire, et ce sera toujours celui-là, il est récupéré par le programme de contrôle qui l'enregistre sous son vrai nom, et te donne les infos que tu as besoin. Cela peut se faire par timer pour voir si tu as fais une sauvegarde, et à ce moment là, il efface le fichier provisoire pour pouvoir vérifier de nouveau son retour la fois suivante.
Revenir en haut Aller en bas
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 19:32

Tiens, je viens de faire un petit essai:
voici un texte, un programme, ce que tu veux:
Citation :
' ceci est un essai
color 0,0,0
que tu sauvegarde àinsi: "C:\essai.bas"

et voici un programme:
Code:
label boucle
dim f$
f$="C:\essai.bas"

timer 1:timer_interval 1,1000
on_timer 1,boucle
end

boucle:
if file_exists(f$)=1
   message "arrivé du fichier :"+f$
   file_delete f$
end_if
return

chaque fois que tu enregistrera le fichier du haut, il sera récupéré par le programme (évidemment une fois lancé) , et l'effacera. Il est évident qu'il faudra le sauvegarder de nouveau sous un autre nom.
Et c'est automatique!.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyMer 27 Oct 2010 - 22:21

@cosmos
Citation :
d'ajout dynamique d'un objet temporaire, par programme, objet supprimé après traitement.
bon ce n'est peut-être pas clair, je parlais d'un objet temporaire créé pendant l'exécution du programme (et non au moment de l'écriture du programme), puis supprimé (Delete n) après usage. Il faut donc pour ça connaître un numéro disponible.

Voilà où j'en suis dans la liste des Variables, Labels et Objets, avec les numéros de lignes (le 1er numéro de chaque est la ligne de déclaration: DIM).
Le nombre d'objets trouvé n'est pas forcément exact, si certains sont créés dans une boucle avec une variable, on ne peut pas connaître la valeur de la variable, donc le nombre créé...
(ps j'ai pompé la liste des objets sur Nardo)
Le programme analyse systématiquement le dernier source enregistré (chemin dir$ à adapter), mais ça peut se changer facilement.
Code:
' Anasource.bas: liste des variables, objets, étiquettes du dernier source enregistré
DIM f$, fm$, a$, b$, c$, a1$, i%, k%, k1%, k2%, nl%, nvar%, neti%, nobj%, ign%, n%
DIM u%, tob%, v$, lv%, sva$, dir$
DIM objn$(30), var$(200), eti$(100), obj$(100)
LABEL ra, rb, rc, rd, re, rf, rg, rh, Suit1, Suit2, Suit3, Suit4
LABEL Tri, Misfo, Recvar, rcvs, Instrs, Mids, Trace
error_french: on_error_goto Trace
DATA "FORM ","BUTTON ","CHECK ","CONTAINER ","DLIST ","LIST ","EDIT ","MEMO "
DATA "OPEN_DIALOG ","TIMER ","PICTURE ","ALPHA ","COMBO ","MOVIE ","GRID "
DATA "OPTION ","SCENE2D ","SCENE3D","SCROLL_BAR ","SOUND ","SPIN ","SPRITE "
DATA "#"
tob% = 0: READ a$
WHILE a$ <> "#": tob% = tob% + 1: objn$(tob%) = a$: READ a$ : END_WHILE

' analyse du dernier source qui a été enregistré:
dir$ = "C:\LANGAGES\Panoramic": ' répertoire des sources
fm$ = "C:\TEMP\tt.tmp": ' fichier de manoeuvre

EXECUTE_WAIT "Cmd.exe /C DIR C:\Langages\Panoramic\*.bas /O:-D /B >" + fm$
FILE_OPEN_READ 1, fm$
FILE_READLN 1, f$: FILE_CLOSE 1: FILE_DELETE fm$
' f$ = "C:\LANGAGES\Panoramic\Etiquette.bas": ' ***** SOURCE A ANALYSER *****

PRINT "- Programme source: " + f$
nvar% = 0: neti% = 0: nobj% = 0
' ***** VARIABLES DÉCLARÉES (DIM) *****************************************
PRINT "Recherche des variables déclarées..."
FILE_OPEN_READ 1, f$: nl% = 0
WHILE FILE_EOF(1) = 0
    nl% = nl% + 1: FILE_READLN 1, a$: GOSUB Misfo: IF ign% = 1 THEN GOTO Suit1
    k% = INSTR(UPPER$(a$), "DIM ")
    IF k% > 0
        a$ = MID$(a$, k%+4, LEN(a$)-k%-3)
ra:
        k% = INSTR(a$, ":"): a1$ = ""
        IF k% > 0 THEN a1$ = MID$(a$, k%+1, LEN(a$)-k%): a$ = LEFT$(a$, k%-1)
        k% = INSTR(a$, "(")
        IF k% > 0
            b$ = MID$(a$, k%+1, LEN(a$)-k%)
            k2% = INSTR(b$, ")")
            IF k2% > 0
                k1% = INSTR(b$, ",")
                IF k1% > 0 AND k1% < k2%
                    k1% = k% + k1%: k2% = k% + k2%
                    a$ = LEFT$(a$, k%-1)+"["+MID$(a$, k%+1, LEN(a$)-k%)
                    a$ = LEFT$(a$, k1%-1)+"."+MID$(a$, k1%+1, LEN(a$)-k1%)
                    IF k2% < LEN(a$)
                        a$ = LEFT$(a$, k2%-1)+"]"+MID$(a$, k2%+1, LEN(a$)-k2%)
                    ELSE
                        a$ = LEFT$(a$, k2%-1) + "]"
                    END_IF
                END_IF
            END_IF
        END_IF
rb:
        k% = INSTR(a$, ",")
        nvar% = nvar% + 1: b$ = STR$(nl%): b$ = STRING$(5-LEN(b$)," ") + b$
        IF k% > 0
            var$(nvar%) = TRIM$(LEFT$(a$, k%-1)) + b$
            a$ = MID$(a$, k%+1, LEN(a$)-k%): GOTO rb
        END_IF
        var$(nvar%) = TRIM$(a$) + b$
        IF a1$ <> "" THEN a$ = a1$: GOTO ra
    END_IF
Suit1:
END_WHILE
FILE_CLOSE 1
' *****  ÉTIQUETTES DÉCLARÉES (LABEL) ***********************************
PRINT "Recherche des labels déclarées..."
FILE_OPEN_READ 1, f$: nl% = 0
WHILE FILE_EOF(1) = 0
    nl% = nl% + 1: FILE_READLN 1, a$: GOSUB Misfo: IF ign% = 1 THEN GOTO Suit2
    k% = INSTR(UPPER$(a$), "LABEL ")
    IF k% > 0
        a$ = MID$(a$, k%+6, LEN(a$)-k%-5)
rc:
        k% = INSTR(a$, ":"): a1$ = ""
        IF k% > 0 THEN a1$ = MID$(a$, k%+1, LEN(a$)-k%): a$ = LEFT$(a$, k%-1)
rd:
        k% = INSTR(a$, ",")
        neti% = neti% + 1: b$ = STR$(nl%): b$ = STRING$(5-LEN(b$)," ") + b$
        IF k% > 0
            eti$(neti%) = TRIM$(LEFT$(a$, k%-1)) + b$
            a$ = MID$(a$, k%+1, LEN(a$)-k%): GOTO rd
        END_IF
        eti$(neti%) = TRIM$(a$) + b$
        IF a1$ <> "" THEN a$ = a1$: GOTO rc
    END_IF
Suit2:
END_WHILE
FILE_CLOSE 1
' ***** OBJETS DÉCLARÉS *******************************************
PRINT "Recherche des objets déclarés..."
FILE_OPEN_READ 1, f$: nl% = 0
WHILE FILE_EOF(1) = 0
    nl% = nl% + 1: FILE_READLN 1, a$: GOSUB Misfo: IF ign% = 1 THEN GOTO Suit3
    IF INSTR(UPPER$(a$), "DATA ") > 0 THEN GOTO Suit3
    IF INSTR(UPPER$(a$), "DIM ") > 0 THEN GOTO Suit3
    IF INSTR(UPPER$(a$), "LABEL ") > 0 THEN GOTO Suit3
    FOR i% = 1 TO tob%
        v$ = objn$(i%): lv% = LEN(v$)
        u% = 1
re:
        b$ = v$: GOSUB Instrs: k% = k1%
        IF k% > 0
            IF k% > 1
                n% = ASC(MID$(a$, k%-1, 1))
                if n%>32 then goto rg
            END_IF
            u% = k%: b$ = ":": GOSUB Instrs
            IF k1% > 0
                c$ = MID$(a$, k%+lv%, k1%-k%-lv%)
            ELSE
                k% = k% + lv%: GOSUB Mids: c$ = b$
            END_IF
            c$ = TRIM$(c$)
            nobj% = nobj% + 1: obj$(nobj%) = v$ + c$ + " ["+STR$(nl%)+"]"
rg:
            IF k1% > 0 THEN u% = k1%+1: GOTO re
        END_IF
    NEXT i%
Suit3:
END_WHILE
FILE_CLOSE 1
' remise en forme des déclarations de tableaux à double entrée
' (remplacement des crochets par des parenthèses)
FOR i% = 1 TO nvar%
    a$ = var$(i%)
    k% = INSTR(a$, "[")
    IF k% > 0
        a$ = LEFT$(a$, k%-1) + "(" + MID$(a$, k%+1, LEN(a$)-k%)
        k% = INSTR(a$, "]")
        IF k% > 0
            a$ = LEFT$(a$, k%-1) + ")" + MID$(a$, k%+1, LEN(a$)-k%)
            k% = INSTR(a$, ".")
            IF k% > 0 THEN a$ = LEFT$(a$, k%-1) + "," + MID$(a$, k%+1, LEN(a$)-k%)
        END_IF
        b$ = LEFT$(a$, LEN(a$)-5)
        FOR k% = 1 TO LEN(b$): ' suppression éventuelle des espaces superflus
            IF MID$(a$, k%, 1)=" " THEN b$=LEFT$(b$, k%-1) + MID$(b$,k%+1,LEN(b$)-k%)
        NEXT k%
        var$(i%) = b$ + RIGHT$(a$, 5)
    END_IF
NEXT i%
PRINT "Tri alphabétique des résultats..."
GOSUB Tri

' ajout des crochets autour des numéros de lignes
FOR i% = 1 TO nvar%
    var$(i%) = LEFT$(var$(i%), LEN(var$(i%))-5) + " [" + TRIM$(RIGHT$(var$(i%),5)) + "]"
NEXT i%
FOR i% = 1 TO neti%
    eti$(i%) = LEFT$(eti$(i%), LEN(eti$(i%))-5) + " [" + TRIM$(RIGHT$(eti$(i%),5)) + "]"
NEXT i%

' *****  RECHERCHE DES VARIABLES DANS LE CODE *******************************
PRINT "Recherche des variables dans le code..."
FILE_OPEN_READ 1, f$: nl% = 0
WHILE FILE_EOF(1) = 0
    nl% = nl% + 1: FILE_READLN 1, a$: GOSUB Misfo: IF ign% = 1 THEN GOTO Suit4
    k% = INSTR(UPPER$(a$), "DIM ")
    IF k% > 0
        ' c'est une ligne de DIM
        a1$ = "": IF k% > 1 THEN a1$ = LEFT$(a$, k%-1)
        b$ = MID$(a$, k%, LEN(a$)-k%+1)
        k1% = INSTR(b$, ":")
        IF k1% > 0
            a$ = a1$ + MID$(b$, k1%, LEN(b$)-k1%+1)
        ELSE
            a$ = a1$
        END_IF
        IF TRIM$(a$) = "" THEN GOTO Suit4
    END_IF
    FOR n% = 1 TO nvar%
        v$ = var$(n%): k% = INSTR(v$, " "): v$ = LEFT$(v$, k%-1)
        GOSUB Recvar
        IF ign% = 0 THEN var$(n%) = var$(n%) + "," + STR$(nl%)
    NEXT n%
Suit4:
END_WHILE
FILE_CLOSE 1
' ***************************************************************************

' ***** AFFICHAGE SOMMAIRE DES RÉSULTATS ************************************
HEIGHT 0, SCREEN_Y-30: WIDTH 0, 900: CLS
LIST 1: HEIGHT 1, SCREEN_Y-80: WIDTH 1, 880
FONT_NAME 1, "Lucida Console": FONT_SIZE 1,9
ITEM_ADD 1, "- " +f$ + " -"
a$ = " Total = " + STR$(nvar%) + " variables, " + STR$(neti%) + " étiquettes, "
a$ = a$ + STR$(nobj%) + " objets."
ITEM_ADD 1, a$
FOR i% = 1 TO nvar%
    ITEM_ADD 1, var$(i%)
NEXT i%
ITEM_ADD 1, " - ÉTIQUETTES -"
FOR i% = 1 TO neti%
    ITEM_ADD 1, eti$(i%)
NEXT i%
ITEM_ADD 1, " - OBJETS -"
FOR i% = 1 TO nobj%
    ITEM_ADD 1, obj$(i%)
NEXT i%
END
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Tri:
DLIST 99
FOR i% = 1 TO nvar%: ITEM_ADD 99, var$(i%): NEXT i%
SORT 99
FOR i% = 1 TO nvar%: var$(i%) = ITEM_READ$(99, i%): NEXT i%
CLEAR 99
FOR i% = 1 TO neti%: ITEM_ADD 99, eti$(i%): NEXT i%
SORT 99
FOR i% = 1 TO neti%: eti$(i%) = ITEM_READ$(99, i%): NEXT i%
DELETE 99
RETURN

Misfo:
' Mise en forme de a$ avant analyse (élimination des éléments superflus)
ign% = 0
a$ = TRIM$(a$): IF a$ = "" THEN ign% = 1: RETURN
k% = INSTR(a$, CHR$(34)+CHR$(39)+CHR$(32)+CHR$(34)): IF k% = 1 THEN ign% = 1: RETURN
k% = INSTR(a$, CHR$(39)+CHR$(32))
IF k% > 0 THEN a$ = RTRIM$(LEFT$(a$, k%-1))
IF RIGHT$(a$, 1) = ":" THEN a$ = LEFT$(a$, LEN(a$) - 1)
' Éliminer le contenu entre quotes (merci Nardo)
u% = 1
rh:
b$ = CHR$(34): GOSUB Instrs: k% = k1%
IF k% > 0
    b$ = MID$(a$, k%+1, LEN(a$)-k%)
    k1% = INSTR(b$, CHR$(34))
    IF k1% > 0
        a$ = LEFT$(a$, k%) + MID$(b$, k1%, LEN(b$)-k1%+1)
        u% = k%+2: GOTO rh
    END_IF
END_IF
RETURN

Recvar:
' Recherche de la variable v$ dans a$
sva$ = a$: ign% = 0
k% = INSTR(v$, "("): ' tableaux
IF k% > 0 THEN v$ = LEFT$(v$, k%)
lv% = LEN(v$)
rf:
k% = INSTR(a$, v$): IF k% < 1 THEN ign% = 1: GOTO rcvs
IF k% > 1
    c$ = MID$(a$, k%-1, 1): ' c'est pas le 1er, caractère précédent
    IF c$<>" " AND c$<>"+" AND c$<>"-" AND c$<>"*" AND c$<>"/"
        IF k% = LEN(a$) THEN ign% = 1: GOTO rcvs
        a$ = MID$(a$, k%+1, LEN(a$)-k%): GOTO rf
    END_IF
END_IF
IF k% <= (LEN(a$)-lv%) AND RIGHT$(v$, 1) <> "("
    c$ = MID$(a$, k%+lv%, 1): ' c'est pas le dernier ni tableau, caractère suivant
    IF c$<>" "AND c$<>"+"AND c$<>"-" AND c$<>"*" AND c$<>"/"AND c$<>":"
        a$ = MID$(a$, k%+1, LEN(a$)-k%): GOTO rf
    END_IF
END_IF
rcvs:
a$ = sva$
RETURN

Instrs:
' recherche de b$ dans a$ à partir de u% -> k1%
IF u% <= LEN(a$)
    c$ = MID$(a$, u%, LEN(a$)-u%+1)
    k1% = INSTR(c$, b$)
    IF k1% > 0 THEN k1% = k1% + u% - 1
ELSE
    k1% = 0
END_IF
RETURN

Mids:
' renvoie la chaîne b$, reste de a$ à partir de k% (y compris vide)
IF k% <= LEN(a$)
    b$ = MID$(a$, k%, LEN(a$)-k%+1)
ELSE
    b$ = ""
END_IF
RETURN

Trace:
Message "Erreur ligne " + str$(error_line)+": "+error_type$
TERMINATE


Dernière édition par JL35 le Jeu 28 Oct 2010 - 11:57, édité 2 fois
Revenir en haut Aller en bas
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyJeu 28 Oct 2010 - 0:03

Je ne sais pas ce que vous en pensez mais je me demande si on ne pourrait pas avoir un nom commun de répertoire pour les essais d'un programme.

Je vous explique: j'ai fait un micro programme:
Code:
' exécution des programme panoramic , récupérés par le presse papier
memo 1

clipboard_paste 1
if count(1)>0
  file_save 1,"C:\TESTE\voir.bas"
  chain "C:\TESTE\voir.bas"
end_if
qui est compilé, et j'ai mis un icône du programme dans la barre du bas.
Grâce à celà, il me suffit de copier un programme du forum et de cliquer directement sur l'icône pour l'exécuté.
Evidemment, il y a erreur dans le chemin du programme. Et si on se metteait tous d'accord pour ces petits programmes d'essai, à avoir le même chemin. Cela éviterait d'encombré l'Editeur, d'un programme qui certainement nous gênera une fois testé.

De plus le programme chine compilé, je viens de regarder mes programmes. Il y en a partout, et en cliquant dessus, les fichier bas sont ouvert chez par justbasic (mais peut-importe vu qu'il m'est impossible de les ouvrir par Panoramic sur mon ordi à problèmes), celà peut-être le bloc note, une fois copier, le programme est exécuté. Chaque fois que je veux faire l'essais d'un petit programme d'essais du forum, si il n'y a pas de chemin, en cliquant sur l'icône, il s'exécute.
Si vous pensez que l'idée est bonne, alors il faut définir un chemin simple qui nous convienne.

A votre bon coeur, Messieurs Dames, dîtes que je suis neuneu!

((il est évident que cela ne va pas fonctionner sur tout, mais les programmes de bien venu ou d'astuce...)
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyJeu 28 Oct 2010 - 7:29

Bonjour !

@JL35:
Je viens de tester ton programme.
Dans Misfo il faudrait que tu rajoutes une boucle pour éliminer toutes les chaines
car tu peux très bien tomber sur le cas suivant :
Essai$="12" : Message$="DIM probleme"
Dans a$ le contenu de Essai$ est viré mais pas celui de Message$...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyJeu 28 Oct 2010 - 10:33

Bien vu Nardo ! le coup de plusieurs chaînes sur la même ligne m'avait échappé ! (et ce n'est certainement pas le seul... Smile )
Ce sera fait, mais sans doute pas avant ce soir (j'ai du monde Sad )

Et merci d'avoir testé.

ps: c'est fait, édité et corrigé !

@cosmos, effectivement c'est une idée...
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyJeu 28 Oct 2010 - 12:26

Tu veux des cas tordus ? Wink (j'en ai tout une brouette...)

@cosmos,JL35:
Le chemin C:\Langage\Panoramic\ me convient bien...
Smile

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyJeu 28 Oct 2010 - 12:35

Si tu veux, mais j'aurai pensé un plus simple, pour que Panoramic soit de côté, non pas que je suis contre, mais je mettrais plutôt mes propres programmes dans ce dossier. Alors qu'un programme du forum, on l'essaye et on l'adopte ou non, et après coup, si on le garde, on fait le dossier qui lui convient. Puis si on garde ou non, on vide le dossier de réception. Mais si vous voulez ce dossier, et que tout le monde est d'accord, je suis partant. Il deviendra pour moi, le chemin de réception pour les programme du forum. Personnellement j'avais fait un dossier C:\forum.
C'est pas grave, si on s'entend pour le dossier que tu spécifies, pas de problème.
Une fois défini le dossier, pour proposer un programme, il faudra choisir le dossier accepté dans les programmes publiés, pour être testé directement sans modif.

Merci de m'avoir lu.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyJeu 28 Oct 2010 - 13:13

Salut cosmos !
je n'impose rien.
Chacun peut faire comme il veut: il suffit de faire un lien symbolique vers le répertoire que l'on veut...

Je dois partir,
j'expliquerai un peu plus tard ce que je veux dire...
A+
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyJeu 28 Oct 2010 - 15:33

Bon j'ai fais un petit tuto pour ceux que cela intéresse...
Imaginons que j’ai cette arborescence de répertoire :

Nombre d'objets  - Page 3 Arbore10

Comment arriver à faire en sorte que les chemins d’accès dans les programmes du forum soient compatibles avec ces 3 config ? réponse : à l’aide d’un lien symbolique.
Supposons que l’on crée un répertoire que l’on va appeler par exemple C:\ForumPano
Et que tous ce que l’on met/enlève dedans aille respectivement dans les répertoires en rouge. C’est possible !

Cette notion de liens est déjà employé par Windows. Par exemple :
Le répertoire « Mes documents » pointe en réalité sur :
C:\Documents and Settings\NARDO\My Documents\

Il existe un utilitaire qui permet de créer des liens symbolique : Junction link magic
On peut le télécharger ici :téléchargement

- Dans un premier temps, il faut quand même créer le répertoire C:\ForumPano »
- Puis lancer Junction link magic. La première fois il vous demandera d’ffectuer un scan. Cliquez sur ok. (cela peut prendre un certain temps)
- Cliquer sur « Create »
- Dans la colonne de gauche on sélectionne le répertoire ForumPano
- Dans la colonne de droite on sélectionne le répertoire dans lequel on veut qu’il pointe (celui en rouge)
- On clique sur Create, on confirme
- C’est fini ! si vous cliquez sur le répertoire ForumPano, vous verrez apparaître le contenu du répertoire rouge.

Dans les programmes de demo pour le forum, il ne reste plus qu'a utiliser le répertoire C:\ForumPano!... Wink


Attention :3 points importants !!!
1- si vous supprimez des fichiers dans le répertoire ForumPano, ils seront en réalité supprimés dans le répertoire de référence (rouge)

2- si vous voulez supprimez le répertoire ForumPano, vous devez d’abord désactiver le lien sinon vous supprimerez également le répertoire de référence ! Pour désactiver le lien, il faut passer Junction link Magic, sélectionnez le répertoire forumPano puis cliquez sur « remove »

3- Il est possible que junction link magic vous trouve d’autres liens. Ne les supprimez surtout pas ! sinon vous risqueriez de planter Windows à la mode de chez nous.

Bien sûr, il existe d'autres solutions: par exemple pour un développement en commun il vaut peut être mieux utiliser Dropbox... Wink

Qu'en pensez vous ?
L'intérêt du truc c'est que chacun garde sa propre arborescence...

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 EmptyJeu 28 Oct 2010 - 16:39

Tu as des solutions que je ne connaissais pas. Ça m'a l'air pas mal.
Le seul point sur lequel je tiens est celui-ci. Je veux que ce qu'on télécharge soit à part de mon propre dossier. Il m'est arrivé de télécharger des trucs sur internet dans un dossier en pensant que cela se ferait dans un dossier, et c'était pas le cas. Je me suis retrouvé avec un programme qui finalement ne m’intéressais pas, et bien malin celui qui peut dire si tel ou tel fichier faisait parti ou non de ce programme.
Un programme qu'on essaye, des fois avec des extensions, n'est pas forcément un programme qu'on adopte.

Maintenant il serait bon que chacun donne son avis. Je ne suis pas commandant, et l'avis de tout le monde est important.
J'adopterai la solution finale.
Amicalement..

Au fait, maintenant je vois mieux ce que vous voulez faire avec votre programme. Si on a un programme en arrière plan qui permet de connaitre à chaque sauvegarde les variables et d'autre chose, c'est pas bête.
As-tu réfléchi Nardo (et bonjour à JL35 pour qu'il ne se sente pas seul) au petit programme que j'ai mis avec un timer qui intervient dès qu'il voit un certain fichier?

A propos je me suis rendu compte que j'ai téléchargé Notepad++ et que je ne l'avais pas regardé. Je crois qu'il devrait être un bon éditeur pour Panoramic. J'ai pas tout réussi, mise à part les couleurs qui peuvent être multiples, et si j'y arrive, contrairement il permet l'indentation, l’auto-complétion, de replier les procédures. Il est gratuit, et si j'y arrive, il sera meilleur que Crimson Editor. Pour l'instant il n'y a que les mots clés que j'ai réussi à rentrer.
Revenir en haut Aller en bas
Contenu sponsorisé





Nombre d'objets  - Page 3 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 3 Empty

Revenir en haut Aller en bas
 
Nombre d'objets
Revenir en haut 
Page 3 sur 5Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» Comment déterminer le nombre de chiffres d'un nombre naturel
» Formatage d'un nombre
» variable nombre
» Une couleur est un nombre
» Racine cubique d'un nombre

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: