Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| COMPILATEUR V 0.9 beta 10 du 29 aout 2017 | |
|
+14Mike bignono Jicehel Froggy One jean_debord Marc Jean Claude Yannick JL35 Klaus silverman papydall Pedro Jack 18 participants | |
Auteur | Message |
---|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Sam 8 Juil 2017 - 16:50 | |
| Une nouvelle version de travail du compilateur est disponible ici : http://panoramic-language.pagesperso-orange.fr/PANORAMIC_COMPILER_EDITOR.zipC'est une version béta, donc pas encore utilisable pour la production. COMPILATEUR V 0.9 beta 6 du 3 août 2017, basée sur PANORAMIC V 0.9.28i12 A - Contraintes provisoires : A.1 - le nom du fichier source doit avoir un nom de 64 caractères maximum. A.2 - l'exécutable généré se trouve dans le répertoire de l'éditeur. B - Différences avec l'interpréteur : B.1 - CHAIN CHAIN agit sur un exécutable et non sur un source. Si le fichier désigné par CHAIN n’existe pas, il n’y a pas d’affichage d’erreur. B.2 - PRINT n'accepte ni virgule, ni point virgule. print "valeur =";a% est à remplacer par print "valeur ="+str$(a%) B.3 - Fichiers TEXTE FILE_WRITELN N,V n'accepte que des variables V$ chaine de caractères FILE_READ N,V n'existe plus. Il faut utiliser la fonction V$=FILE_READ$(N) FILE_READLN N,V n'existe plus. Il faut utiliser la fonction V$=FILE_READLN$(N) B.4 -Taille d'un tableau défini par une variable Définir la taille d'un tableau avec une autre variable n'est pas possible. La taille doit être un nombre. B.5 - Définir des variables de même nom mais de type différent n'est pas accepté. dim a%,a$,a n'est pas accepté B.6 - Ce qui n'est pas implémenté : NUMBER_CURRENT_LINE VARIABLE() LABEL() TRACE_ON TRACE_OFF FREE PEEK() POKE FILEBIN_BLOCK_READ FILEBIN_BLOCK_WRITE B.7 - Une erreur de débordement de tableau à l'exécution n'est pas signalée. B.8 - INPUT fait apparaître une fenêtre de saisie. B.9 - A$=123 n'est plus accepté, il faut mettre des guillemets : A$="123" _________________ username : panoramic@jack-panoramic password : panoramic123
Dernière édition par Jack le Mar 29 Aoû 2017 - 19:32, édité 8 fois | |
| | | Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Compilateur. Sam 8 Juil 2017 - 17:22 | |
| Bonjour. Je viens de réaliser un test de vitesse avec le code suivant, tout en sachant que le fichier contient 426.000 lignes: - Code:
-
dim a$, d$, f$, k%
d$=time$
dlist 1 file_load 1,"dico_français_allemand.txt"
for k%=1 to count(1) if mod(k%,1000)=0 then caption 0,str$(k%) a$=item_read$(1,k%) next k% f$=time$ message d$+":"+f$ Voici les résultats:. Avec l'éditeur normal: 28 sec. . Avec le compilateur: 0 sec. Mais, déjà un problème avec le compilateur. J'obtiens l'erreur 'More if than end_if' avec mon programme principal. Alors que l'éditeur normal ne signalé aucune erreur. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Sam 8 Juil 2017 - 20:36 | |
| Il semble que cette version du compilateur n’aime plus les SUB. Le code suivant se compile parfaitement avec l’ancienne version 0.1 alpha du 18 mai 2014. - Code:
-
Init() end SUB Init() message "Hello !" END_SUB
Mais, avec la nouvelle version - Erreur :
D’ailleurs, je n’ai pas pu compilé aucun code contenant la déclaration d’une SUB avec cette version, alors que tout marchait corectement avec l'ancienne | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Dim 9 Juil 2017 - 13:59 | |
| Avec la version du compilateur V 0.1 alpha 4 du 18 mai 2014, j’obtiens le - Le beau paysage:
Avec cette version : Not correct SUB name | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Dim 9 Juil 2017 - 17:08 | |
| | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Dim 9 Juil 2017 - 18:59 | |
| Vu que je n'ai jamais tester le compilateur avant(pas trouvé de lien pour le télécharger), je n'étais pas certain que ce soit normal, je ne pensais pas qu'il étais aussi avançé en terme de développement. Cette version m'intéresse, les limitations ne sont pas contraignantes à part la B.4 pour moi. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Dim 9 Juil 2017 - 19:08 | |
| - Citation :
- DLL_ON ===> ERREUR:
Je réagis "de mémoire", et je retire tout si je me trompe. Mais, j'ai le vague souvenir que Jack avait dut un jour que le compilateur ne gérait pas les DLLs par DLL_ON... As-tu essayé les commandes LIBRARY et Co ? | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Dim 9 Juil 2017 - 19:35 | |
| Le bug sur DLL_ON a été corrigé dans la Version 0.1 alpha 3 Voir iciJe viens de vérifié avec le code suivant. La compilation est OK. L’exécution est OK. - Code:
-
rem ============================================================================ rem Afficher la boite de dialogue A propos rem ============================================================================ label Apropos dim titre$,msg$,about% Button 10 : top 10,20 : left 10,500 : font_bold 10 : caption 10,"&A propos" on_click 10,Apropos end rem ============================================================================ Apropos: dll_on "shell32" about% = dll_call4("ShellAboutA",handle(0), adr(titre$),adr(msg$),39) ' les nombres impaires 3,5,7,...31,33,... représentent l'icône dans le About dll_off return rem ============================================================================
Par contre, cette version ne reconnait ni SUB ni DLL_ON. C’est à Jack de trancher. J'ai des dizaines de codes qui marchaient parfaitement sur l'ancienne version, mais rien ne va plus avec la toute dernière ! | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Lun 10 Juil 2017 - 19:56 | |
| La version COMPILATEUR V 0.9 beta 4 du 10 juillet 2017 est disponible au téléchargement.
Elle corrige 2 bugs de la version beta 3, qui étaient dus à des erreurs de "copier/coller":
- il est possible d'utiliser les SUBs
- DLL_ON ne provoque plus d'erreur. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Compilateur. Lun 10 Juil 2017 - 20:22 | |
| Bonsoir. Jack, j'obtiens toujours l'erreur (6) More if than end_if. Sous l'interpréteur, aucune erreur signalée. Et avec le code suivant, Panoramic a cessé de fonctionner. - Code:
-
Init() end SUB Init() message "Hello !" END_SUB | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Lun 10 Juil 2017 - 22:26 | |
| Moi c'est bizarre après les erreurs de la version du 8/7 j'ai supprimé la sub de mon programme, transformée en s/p, et j'obtiens les mêmes erreurs avec cette version-ci. Le programme T2P.bas (conversion d'un fichier texte en pdf à l'aide d'une ressource externe texttopdf.exe): - Code:
-
LABEL Quit,Chf,Chs,Coltex,Vtx,Convert,Chpol,Chpol1,Aide DIM f$,fr$,fnt$,ftmp$,sz%,nbc%,el%,i%,a$,rc$ DIM t2p$,nl%,fm$,q$ rc$ = CHR$(13)+CHR$(10) ftmp$ = "C:\UTIL\Textetmp.txt" t2p$ = "C:\UTIL\text2pdf.exe": ' utilitaire de conversion texte -> pdf fm$ = "C:\UTIL\Textmp.txt" q$ = CHR$(34)
BORDER_SMALL 0: WIDTH 0,360: HEIGHT 0,240: FONT_NAME 0,"Arial": FONT_BOLD 0 COLOR 0,190,255,255 CAPTION 0,"- CONVERSION FICHIER TEXTE EN PDF -" ALPHA 1: TOP 1,2: CAPTION 1,"Fichier texte à convertir en PDF (ou ) :" BUTTON 2: HEIGHT 2,18: WIDTH 2,90: LEFT 2,195: CAPTION 2,"'Coller' le texte" ON_CLICK 2,Coltex EDIT 3: TOP 3,18: WIDTH 3,WIDTH_CLIENT(0)-60: FONT_NAME 3,"Consolas": ON_CLICK 3,Chf BUTTON 8: WIDTH 8,50: TOP 8,TOP(3): LEFT 8,WIDTH(3)+5: CAPTION 8,"Voir" ON_CLICK 8,Vtx MEMO 4: HIDE 4: WIDTH 4,1000 OPEN_DIALOG 5: FILTER 5,"Fichier texte|*.txt" SAVE_DIALOG 6: FILTER 6,"Fichier PDF|*.pdf" ALPHA 10: TOP 10,TOP(3)+29: CAPTION 10," Conversion en PDF ": COLOR 10,255,255,0 a$ = " Taille Colonnes Espacement" ALPHA 11: TOP 11,TOP(10)+12: CAPTION 11,a$ a$ = " Police caractères (1 ou 2) lignes (pix.)" ALPHA 17: TOP 17,TOP(11)+12: CAPTION 17,a$ EDIT 12: TOP 12,TOP(17)+15: WIDTH 12,150: TEXT 12,"Arial": ON_CLICK 12,Chpol SPIN 13: TOP 13,TOP(12): LEFT 13,LEFT(12)+WIDTH(12)+5: WIDTH 13,50 POSITION 13,10 SPIN 14: TOP 14,TOP(13): LEFT 14,LEFT(13)+WIDTH(13)+15: WIDTH 14,50 MIN 14,1: MAX 14,2: POSITION 14,2 SPIN 15: TOP 15,TOP(14): LEFT 15,LEFT(14)+WIDTH(14)+15: WIDTH 15,50 MIN 15,1: MAX 15,100: POSITION 15,12 ALPHA 20: TOP 20,TOP(15)+28: CAPTION 20,"Fichier pdf résultat :" EDIT 21: TOP 21,TOP(20)+16: WIDTH 21,WIDTH(3): FONT_NAME 21,"Consolas" ON_CLICK 21,Chs BUTTON 22: TOP 22,TOP(21): WIDTH 22,WIDTH(8): LEFT 22,LEFT(8): CAPTION 22,"Voir" ON_CLICK 22,Vtx BUTTON 30: TOP 30,HEIGHT(0)-75: LEFT 30,WIDTH(0)/2-80: CAPTION 30,"Convertir" ON_CLICK 30,Convert BUTTON 35: TOP 35,HEIGHT(0)-65: LEFT 35,5: WIDTH 35,35: CAPTION 35,"Aide" ON_CLICK 35,Aide BUTTON 40: TOP 40,TOP(35): LEFT 40,WIDTH(0)-95: CAPTION 40,"Quitter" ON_CLICK 40,Quit FORM 50: HIDE 50: BORDER_HIDE 50: TOP 50,TOP(12)+HEIGHT(12)+25: LEFT 50,8 WIDTH 50,160: HEIGHT 50,340 LIST 51: PARENT 51,50: FULL_SPACE 51 FONT_NAMES_LOAD 4 FOR i% = 1 TO COUNT(4) a$ = ITEM_READ$(4,i%): IF LEFT$(a$,1)<>"@" THEN ITEM_ADD 51,a$ NEXT i% CLEAR 4: ON_CLICK 51,Chpol1 DLIST 60 END ' ============================================================================== ' ============================================================================== Quit: TERMINATE ' ============================================================================== Chf: f$ = FILE_NAME$(5) IF f$ = "" THEN RETURN TEXT 3,f$ RETURN ' ============================================================================== Chs: fr$ = FILE_NAME$(6) IF fr$ = "" THEN RETURN TEXT 21,fr$ RETURN ' ============================================================================== Coltex: CLEAR 4: CLIPBOARD_PASTE 4 FILE_OPEN_WRITE 1,ftmp$ FOR i% = 1 TO COUNT(4): FILE_WRITELN 1,ITEM_READ$(4,i%): NEXT i% FILE_CLOSE 1 TEXT 3,ftmp$ f$ = ftmp$ RETURN ' ============================================================================== Vtx: i% = NUMBER_CLICK IF i% = 8 f$ = TEXT$(3) IF f$ = "" OR FILE_EXISTS(f$) = 0 THEN MESSAGE "Pas de fichier !": RETURN EXECUTE_WAIT "Notepad.exe "+f$ ELSE fr$ = TEXT$(21) IF fr$ = "" OR FILE_EXISTS(fr$) = 0 THEN MESSAGE "Pas de fichier !": RETURN EXECUTE_WAIT fr$ END_IF RETURN ' ============================================================================== Convert: f$ = TEXT$(3): ' Fichier txt d'origine fnt$ = TEXT$(12): ' Police sz% = POSITION(13): ' Taille caractères nbc% = POSITION(14): ' nombre de colonnes el% = POSITION(15): ' écartement lignes, en points (standard = 12) fr$ = TEXT$(21): IF FILE_EXISTS(fr$) = 1 THEN FILE_DELETE fr$ CLEAR 60: FILE_LOAD 60,f$: nl% = COUNT(60): ' nb de lignes FILE_OPEN_WRITE 1,fm$ FOR i% = 1 TO nl%: FILE_WRITELN 1,ITEM_READ$(60,i%): NEXT i% IF nbc% = 2 FOR i% = 1 TO nl%: FILE_WRITELN 1,ITEM_READ$(60,i%): NEXT i%: ' autre colonne END_IF FILE_CLOSE 1 IF el% = 0 THEN el% = 12: ' écartement lignes, en points a$ = "-f"+q$+fnt$+q$+" -s"+STR$(sz%)+" -A4 -I -l"+STR$(nl%) a$ = a$+" -"+STR$(nbc%)+" -v"+STR$(el%) EXECUTE_WAIT "cmd.exe /c "+t2p$+" "+a$+" "+fm$+" >"+fr$ FILE_DELETE fm$ IF FILE_EXISTS(fr$) = 0 MESSAGE "Erreur, fichier résultat non créé !" ELSE EXECUTE_WAIT fr$ END_IF RETURN ' ============================================================================== Chpol: SHOW 50 RETURN ' ============================================================================== Chpol1: TEXT 12,ITEM_INDEX$(51) HIDE 50 RETURN ' ============================================================================== Aide: a$ = "- CONVERSION D'UN FICHIER TEXTE EN PDF -"+rc$ a$=a$+" ================================"+rc$+rc$ a$=a$+"1) Cliquer pour choisir le fichier texte source"+rc$ a$=a$+" ou 'Coller' le texte depuis le presse-papier."+rc$ a$=a$+" Il est possible de 'Voir' ce texte dans Notepad, de le rectifier"+rc$ a$=a$+" (mise en forme, orthographe, etc.) éventuellement et de le"+rc$ a$=a$+" réécrire avant conversion."+rc$+rc$ a$=a$+"2) Conversion en PDF :"+rc$ a$=a$+" Choisir la police et la taille de caractères"+rc$ a$=a$+" Choisir le nombre de colonnes (1 colonne, ou 2 colonnes"+rc$ a$=a$+" identiques côte-à-côte sur une page A4)."+rc$ a$=a$+" Ajuster éventuellement l'espacement entre lignes, en pixels"+rc$ a$=a$+" (la valeur normale est de 12)."+rc$ a$=a$+" Donner le nom et le chemin du fichier pdf résultat (cliquer"+rc$ a$=a$+" la zone)."+rc$ a$=a$+"Lancer la conversion (très rapide) : bouton 'Convertir'"+rc$ a$=a$+"-> le résultat s'affiche automatiquement, pour vérification."+rc$+rc$ a$=a$+"On peut forcer un aperçu du résultat : bouton 'Voir'"+rc$ a$=a$+"En fonction du résultat, on peut modifier un ou plusieurs"+rc$ a$=a$+"paramètres, puis relancer la conversion autant de fois que"+rc$ a$=a$+"nécessaire."+rc$ a$=a$+" ---------------------------------------------------"+rc$ a$=a$+"Ressources utilisées :"+rc$ a$=a$+"- un répertoire C:\UTIL"+rc$ a$=a$+"- le programme utilitaire text2pdf.exe dans C:\UTIL"+rc$ MESSAGE a$ RETURN ' ============================================================================== et les erreurs obtenues (error.txt) T2P.bas(256) error 33: Expected 'END IF', found 'End' End Sub ^ T2P.bas(257) error 58: Illegal inside functions, found 'Sub' Sub L_CHPOL ^ T2P.bas(260) error 58: Illegal inside functions, found 'Sub' Sub L_CHPOL1 ^ T2P.bas(264) error 58: Illegal inside functions, found 'Sub' Sub L_CHS ^ T2P.bas(268) error 58: Illegal inside functions, found 'Sub' Sub L_COLTEX ^ T2P.bas(279) error 58: Illegal inside functions, found 'Sub' Sub L_CONVERT ^ T2P.bas(313) error 58: Illegal inside functions, found 'Sub' Sub L_QUIT ^ T2P.bas(318) error 58: Illegal inside functions, found 'Sub' Sub L_VTX ^ T2P.bas(325) error 58: Illegal inside functions, found 'declare' declare function WinMain _ ^ T2P.bas(330) error 67: Array not dimensioned, before '(' end WinMain(GetModuleHandle(null),null,Command(),SW_NORMAL) ^ T2P.bas(330) error 123: Too many errors, exitingC'est bizarre, une erreur à chaque sous-programme (il me parle de Sub pour chacun ??) et une erreur ' found End i/o End_If' ? Ce programme se lance sans erreur tel quel dans Panoramic_Editor. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Lun 10 Juil 2017 - 22:45 | |
| L’utilisation des SUBs : OK DLL_ON : OK Par contre DIM_LOCAL provoque une erreur PS : Chez moi, le code donné par Perdo se compile et s'exécute correctement. Pas de "Panoramic a cessé ..." | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Ven 14 Juil 2017 - 16:00 | |
| @JL35: Après analyse de ton source, le problème vient du fait que tu as 3 sous-programmes qui ont plusieurs fois "RETURN": Il s'agit de Chf, Chs et Vtx.
par exemple:
Chf: f$ = FILE_NAME$(5) IF f$ = "" THEN RETURN TEXT 3,f$ RETURN
Je vais voir comment résoudre ce problème car je n'avais pas prévu ce cas de figure...
Il y a aussi un sous programme qui ne passe pas:
Quit: TERMINATE
Le compilateur est beaucoup plus strict que l'interpréteur, et un RETURN est OBLIGATOIRE.
Il y a une différence fondamentale entre les deux. L'interpréteur va exécuter TERMINATE et va s'arrêter, peut importe qu'il y ait un RETURN ou pas ensuite. Le compilateur lui, n'exécute pas, car son rôle est de traduire le source en langage machine. Lorsqu'il va chercher à traduire le sous-programme Quit en langage machine, il ne trouvera JAMAIS où il se termine. Il va rencontrer un autre sous-programme au lieu de RETURN et va alors déclencher une erreur.
Je vais afficher des libellés d'erreur plus explicites dans ce cas, du type "début de sous-programme au lieu de RETURN" _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Ven 14 Juil 2017 - 18:56 | |
| Merci Jack d'avoir regardé. Et je reconnais que mon code n'est pas très structuré avec les RETURN prématurés au milieu des S/P, je vais corriger ça. De même que le Terminate non suivi de Return, je comprends bien que c'est dans un sous programme, donc il doit y avoir un Return. Je le fais parfois, mais pas toujours (puisque Panoramic_Editor est tolérant...)
Donc tout ça n'est pas bloquant et il suffit de le savoir et de coder en conséquence (de façon logique...). Merci en tout cas.
PS J'ai corrigé le source en fonction des remarques ci-dessus (et aussi ôté une utilisation de WIDTH_CLIENT, qui n'est pas reconnu), et j'obtiens une compilation sans erreur. Je remarque que l'exécutable produit par le compilateur a environ la même taille (~2,2 M) que celui produit par Panoramic_Editor, je pensais qu'il serait bien plus compact (sans l'interpréteur) ? | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Ven 14 Juil 2017 - 20:36 | |
| C'est peut-être un peu hors sujet (quoique), mais ma motivation est celle-ci: - j'ai écrit ce petit programme pour ma fille qui est enseignante et qui a besoin de convertir de petits textes (des chansons) en pdf, sur une ou deux colonnes. - je lui ai envoyé l'exécutable en pièce jointe: elle n'a jamais reçu l'email. - je suis allé chez elle avec le programme sur une clé, quand j'ai voulu le copier sur son pc, Windows Defender (Windows 10) est intervenu en disant en substance "Programme dangereux etc.), et il l'a carrément effacé de ma clé sans rien me demander !!! Et c'est donc Defender qui avait effacé l'email. - J'avais eu le cas chez moi où Windows Defender m'avait effacé plusieurs exécutables créés avec Panoramic_Editor. Depuis je suis repassé sous Avast et je n'ai plus ce problème.
Je me disais qu'avec le Compilateur, peut-être que Defender ne trouverait pas de raison de supprimer le programme ? mais j'ai des doutes... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 15 Juil 2017 - 9:52 | |
| J' ai rencontré une erreur avec Read qui ne veut pas lire des datas $. Comme je n' ai pas trop suivi , cela a peut être déjà été rapporté et expliqué. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Sam 15 Juil 2017 - 11:22 | |
| Bonjour à tous. @Yannick, - Jack a écrit:
- B.3 - Fichiers TEXTE
FILE_WRITELN N,V n'accepte que des variables V$ chaine de caractères FILE_READ N,V n'existe plus. Il faut utiliser la fonction V$=FILE_READ$(N) FILE_READLN N,V n'existe plus. Il faut utiliser la fonction V$=FILE_READLN$(N)
C'est peut-être ton problème ? C'est tout au début de ce post. A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 15 Juil 2017 - 12:44 | |
| Non Jean Claude, Ces fonctions sont pour la lecture/écriture d' un fichier. Mon souci concerne la lecture de DATA avec READ V$ qui renvoie une erreur V$ n' est pas un entier valide quand on lit un String. donc cela signifie pas de : Data "xxxxx" pour le compilateur. - Code:
-
dim i%,a$,titre$
titre$ = "Mon appli " caption 0,titre$
for i%=1 to 5 read a$ caption 0,titre$+a$ next i%
end
data "Data 1","Data 2","Data 3","Data 4","Data 5" De même que si compilateur attend un RETURN après un LABEL, pour RESTORE_LABEL il faudra que les DATA soient entre un LABEL et un RETURN pour ne pas avoir d' erreur. Une étiquette de renvoie pour un GOTO ne fonctionnera plus non plus. ( à moins que le renvoi se fasse vers un sous programme auquel cas il est préférable d' utiliser GOSUB) D' ailleurs, je vais me permettre de faire suggestion. Peut être serait il souhaitable de différencier un LABEL qui est l' étiquette d' un sous programme d' une ancre qui n' est qu' un marqueur de position. Un LABEL serait toujours suivit d' un RETURN pour marquer la fin d' un sous programme alors qu' une ancre serait une simple annotation, ex : *Mon_Ancre ou !Mon_Ancre
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Sam 15 Juil 2017 - 13:48 | |
| Je confirme le problème de DATA soulevé par Yannick. Le code suivant se compile parfaitement par la version 0.1 alpha du 18 mai 2014. - Code:
-
dim i%,t$ for i% = 1 to 7 read t$ : print t$ next i%
data "Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Manchedi"
Pour la version actuelle : Edit : J'aime bien le manchedi !!! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 15 Juil 2017 - 14:48 | |
| Merci pour la confirmation Papydall. Voilà une perle ! la dernière lettre de mon dossier s' est transformé de " t" en " 4" JJN4 donnerait il un coup de main à Jack pour le compilateur ?... ...en tout cas un alien s' est glissé là. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 Sam 15 Juil 2017 - 14:59 | |
| Tiens, elles sont bizarres, ces 3 lignes séectionnées... Pourquoi enlèves-tu en éventuel backslash, juste pour le remettre ? Fais plutôt: - Code:
-
if right$(Path$,1)<>"\" then Path$ = Path$ + "\" à moins que je n'aie pas tout compris... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 15 Juil 2017 - 15:17 | |
| @ Klaus, C' est pour éviter de me retrouver avec un double backslash lorsque le disque ou plutôt la racine est une clé usb. Cela m' est arrivé plusieurs fois et après les chemins sont invalides. Depuis, je le fais systématiquement. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 15 Juil 2017 - 15:22 | |
| Une autre proposition pour le compilateur. Une petite sécurité pour être sûr que le fichier à compiler est un fichier sauvegardé. Sinon il y a un plantage du compilateur et il est impossible de savoir quel processus est à fermer pour ne pas avoir à redémarrer l' ordi. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 15 Juil 2017 - 16:20 | |
| Bizarre, bizarre, vous avez dit bizarre... ...comme c' est étrange. - Le coupable:
- Code:
-
hide 0 Variables() Constantes() Labels() Init() Gui() show 0 end
sub Variables() dim no% dim i% dim NoClic% dim res% dim N_Icons% dim New_FL$ end_sub
sub Constantes() ' Application dim titre$ : titre$="VLC Playlist" Application_title titre$ ' Dossier racine dim Path$ : Path$=dir_current$ if right$(Path$,1)="\" : Path$=left$(Path$,len(Path$)-1) : end_if Path$=Path$+"\" message Path$ ' Fichiers dim Kgf$ : Kgf$="KGF.dll" dim Lib$ : Lib$="LIB.ilb" dim BPlay$: Bplay$="VLC.bmp" ' Objets Panoramic dim Mm% : no%=no%+1 : Mm%=no% dim Sm%(11) : for i%=1 to 11 : no%=no%+1 : Sm%(i%)=no% : next i% dim Chanel% : no%=no%+1 : Chanel%=no% dim BtnPlay% : no%=no%+1 : BtnPlay%=no% dim F_ow% : no%=no%+1 : F_ow%=no% end_sub
sub Labels() label Clic end_sub
sub Init() dll_on Kgf$ end_sub
sub Gui() height 0,400 width 0,300 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 font_name 0,"Arial" font_size 0,8 font_bold 0 caption 0,titre$
main_menu Mm% sub_menu Sm%(1) : parent Sm%(1),Mm% : caption Sm%(1),"Fichier" sub_menu Sm%(2) : parent Sm%(2),Sm%(1) : caption Sm%(2),"Nouveau" sub_menu Sm%(3) : parent Sm%(3),Sm%(1) : caption Sm%(3),"Ouvrir" sub_menu Sm%(4) : parent Sm%(4),Sm%(1) : caption Sm%(4),"Enregistrer" sub_menu Sm%(5) : parent Sm%(5),Sm%(1) : caption Sm%(5),"-" sub_menu Sm%(6) : parent Sm%(6),Sm%(1) : caption Sm%(6),"Quitter" sub_menu Sm%(7) : parent Sm%(7),Mm% : caption Sm%(7),"Edition" sub_menu Sm%(8) : parent Sm%(8),Sm%(7) : caption Sm%(8),"Importer" sub_menu Sm%(9) : parent Sm%(9),Sm%(7) : caption Sm%(9),"Exporter" sub_menu Sm%(10): parent Sm%(10),Mm% : caption Sm%(10),"A Propos" sub_menu Sm%(11): parent Sm%(11),Mm% : caption Sm%(11),"Aide" if file_exists(Lib$)=1 N_Icons% = dll_call2("SetMainMenuImageList",object_internal(Mm%),adr(lib$)) for i%=1 to 11 if i%<>1 and i%<>7 and i%<>10 and i%<>11 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(i%)),i%) on_click Sm%(i%),Clic end_if next i% end_if list Chanel% height Chanel%,height(0)-49-57 width Chanel%,width(0)-25 top Chanel%,5 left Chanel%,5 button_picture BtnPlay% if file_exists(BPlay$)=1 : file_load BtnPlay%,BPlay$ : end_if height BtnPlay%,32 width BtnPlay%,32 top BtnPlay%,top(Chanel%)+height(Chanel%)+5 left BtnPlay%,width(0)-width(BtnPlay%)-20 cursor_point BtnPlay% end_sub
Clic: if number_click = Sm%(2) NewFileList() end_if if number_click = Sm%(3) message "Ouvrir" end_if if number_click = Sm%(4) message "Enregistrer" end_if if number_click = Sm%(6) message "Quitter" end_if if number_click = Sm%(8) message "Importer" end_if if number_click = Sm%(9) message "Exporter" end_if if number_click = Sm%(10) message "A Propos" end_if if number_click = Sm%(11) message "Aide" end_if return
sub NewFileList() message "Nouveau" end_sub
le rapport : - Code:
-
Nouveau_1.bas(156) error 10: Expected '=', found '(' NEWFILELIST() ^ un sous programme qui ne lance pas une procédure | |
| | | Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Le compilateur. Dim 30 Juil 2017 - 17:47 | |
| Bonjour.
@Jack.
J'aimerais savoir si tu avais pu avancer sur le compilateur, au vu des derniers messages d'erreur ci-dessus. | |
| | | Contenu sponsorisé
| Sujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017 | |
| |
| | | | COMPILATEUR V 0.9 beta 10 du 29 aout 2017 | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |