| Problème avec CHAIN | |
|
|
|
Auteur | Message |
---|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Problème avec CHAIN Mar 11 Déc 2012 - 12:46 | |
| Quelqu'un peut me dire comment cloturer mon programme correctement ? - Code:
-
' ============================================================================== ' Langage Brainfuck ' Auteur : Nardo26 ' ============================================================================== ' ' Syntaxe : ' ' > ++p ' < --p ' + ++*p ' - --*p ' . putchar(*p) ' , *p=getchar() ' [ while (*p){ ' ] } ' ' ==============================================================================
dim a$ DIM fname$ : fname$="C:\tmp_bf.bas"
a$="++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+." IF FILE_EXISTS(fname$)=1 THEN FILE_DELETE fname$ FILE_OPEN_WRITE 2,fname$ Decode(a$) FILE_WRITELN 2,"MESSAGE "+CHR$(34)+"Ok"+CHR$(34) FILE_WRITELN 2,"TERMINATE" FILE_CLOSE 2 CHAIN fname$
END
SUB Decode(a$) DIM_LOCAL i,v,cd$,pan$,vp FILE_WRITELN 2,"DIM Ptr,t(3000),k$" FILE_WRITELN 2,"Ptr=0"
FOR i=1 TO LEN(a$) cd$=MID$(a$,i,1) IF cd$="+" v=v+1 ELSE IF cd$="-" THEN v=v-1 END_IF
IF cd$=">" vp=vp+1 ELSE IF cd$="<" THEN vp=vp-1 END_IF
IF cd$<>"+" AND cd$<>"-" IF v<>0 IF v>0 : pan$="t(ptr)=t(ptr)+"+str$(v):ELSE:pan$="t(ptr)=t(ptr)"+str$(v):END_IF v=0 : FILE_WRITELN 2,pan$ : pan$="" END_IF END_IF IF cd$<>"<" AND cd$<>">" IF vp<>0 IF vp>0: pan$="ptr=ptr+"+STR$(vp):ELSE:pan$="ptr=ptr"+STR$(vp):END_IF vp=0 : FILE_WRITELN 2,pan$ : pan$="" END_IF END_IF IF cd$="[" THEN pan$="WHILE t(ptr)<>0" IF cd$="]" THEN pan$="END_WHILE" IF cd$="." THEN pan$="PRINT CHR$(t(ptr));" IF cd$="," THEN pan$="k$=INKEY$:WHILE k$="+chr$(34)+chr$(34)+":k$=INKEY$:END_WHILE:t(PTR)=ASC(k$)" IF pan$<>"" THEN FILE_WRITELN 2,pan$ : pan$="" NEXT i END_SUB Lorsque je lance le programme, après le message de fin de prog. L’éditeur considère que le programme est toujours en cours et du coup, je ne peux plus relancer l’exécution. Actuellement pour débloquer, je crée un nouveau tab dans l'editeur mais ce n'est pas très propre et au bout d'un certain nombre d'essai ça fini quand même par planter... PS: Ce programme est totalement inutile d'où son intérêt... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 13:02 | |
| J'ai fait l'essai de plusieurs manières - rien à faire. Je sèche sur ce coup-là. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 13:05 | |
| Bizarre non ? J'ai l'impression que CHAIN perturbe le TERMINATE du lanceur... du moins ça donne cette impression... Cosmos a certainement déjà rencontré le problème... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 13:12 | |
| C'est à Jack de répondre. C'est lié à la façon dont l'éditeur se synchronise avec l'exécutable qu'il lance. Il mémorise certainement un truc genre handle du process créé. Et le CHAIN conduit vers la création d'un nouvel exécutable qui a forcément un handle différent, et cela fausse la synchronisation. | |
|
| |
Invité Invité
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 14:47 | |
| Je ne sais pas quoi vous dire. Je viens de faire l'essai avec mon débogueur de fortune, et ça marche. Seulement j'ai du changer le chemin du fichier. En c:_ ça ne marche pas. Il faut le mettre dans un dossier, surement à cause des autorisations. Mais je ne fonctionne pas avec Panoramic, mais avec un loader qui a sa propre instruction chain. Si vous voulez voir autrement, avec le suivi des lignes. Il n'y a pas le loader, donc je pense qu'à partir de Panoramic ça ne sert à rien: - Code:
-
form 5349:left 5349,45:width 5349,screen_x-45:height 5349,screen_y:border_small 5349 list 5350:parent 5350,5349:full_space 5350:width 5350,width(5350)-50:item_add 5350,"14:41:15 11/12/2012" label enregistrement_de_5350,clear_5350:on_click 5349,enregistrement_de_5350:on_click 5350,enregistrement_de_5350 dlist 5351:file_load 5351,"C:\PANO\teste_nardo.bas" button 5352:parent 5352,5349:left 5352,width(5349)-90:width 5352,40:on_click 5352,clear_5350:caption 5352,"vide" ' ============================================================================== ' Langage Brainfuck ' Auteur : Nardo26 ' ============================================================================== ' ' Syntaxe : ' ' > ++p ' < --p ' + ++*p ' - --*p ' . putchar(*p) ' , *p=getchar() ' [ while (*p){ ' ] } ' ' ============================================================================== r(18):' ***TRACE*** r(19):dim a$ r(20):DIM fname$ : fname$="C:\PANO\tmp_bf.bas" :' CHEMIN modifié!!!!!!!!!!!!!!!!!!!!!!!!
r(22):a$="++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+." r(23):IF FILE_EXISTS(fname$)=1 THEN FILE_DELETE fname$ r(24):FILE_OPEN_WRITE 2,fname$ r(25):Decode(a$) r(26):FILE_WRITELN 2,"MESSAGE "+CHR$(34)+"Ok"+CHR$(34) r(27):FILE_WRITELN 2,"TERMINATE" r(28):FILE_CLOSE 2 :stop r(29): CHAIN fname$ ' ***OFF_TRACE*** END ' ----------------' Sub r(lig%) item_add 5350,right$(" " + str$(lig%),4) +"| "+ item_read$(5351,lig%) END_SUB ' ----------------' enregistrement_de_5350: file_save 5350,"C:\PANO\5350.bas" RETURN ' ---------------' ' ---------------- clear_5350: clear 5350:return r(32):' ***TRACE*** r(33):SUB Decode(a$) r(34): DIM_LOCAL i,v,cd$,pan$,vp r(35): FILE_WRITELN 2,"DIM Ptr,t(3000),k$" r(36): FILE_WRITELN 2,"Ptr=0"
r(38): FOR i=1 TO LEN(a$) r(39): cd$=MID$(a$,i,1) r(40): IF cd$="+" r(41): v=v+1 r(42): ELSE r(43): IF cd$="-" THEN v=v-1 r(44): END_IF
r(46): IF cd$=">" r(47): vp=vp+1 r(48): ELSE r(49): IF cd$="<" THEN vp=vp-1 r(50): END_IF
r(52): IF cd$<>"+" AND cd$<>"-" r(53): IF v<>0 r(54): IF v>0 : pan$="t(ptr)=t(ptr)+"+str$(v):ELSE:pan$="t(ptr)=t(ptr)"+str$(v):END_IF r(55): v=0 : FILE_WRITELN 2,pan$ : pan$="" r(56): END_IF r(57): END_IF r(58): IF cd$<>"<" AND cd$<>">" r(59): IF vp<>0 r(60): IF vp>0: pan$="ptr=ptr+"+STR$(vp):ELSE:pan$="ptr=ptr"+STR$(vp):END_IF r(61): vp=0 : FILE_WRITELN 2,pan$ : pan$="" r(62): END_IF r(63): END_IF r(64): IF cd$="[" THEN pan$="WHILE t(ptr)<>0" r(65): IF cd$="]" THEN pan$="END_WHILE" r(66): IF cd$="." THEN pan$="PRINT CHR$(t(ptr));" r(67): IF cd$="," THEN pan$="k$=INKEY$:WHILE k$="+chr$(34)+chr$(34)+":k$=INKEY$:END_WHILE:t(PTR)=ASC(k$)" r(68): IF pan$<>"" THEN FILE_WRITELN 2,pan$ : pan$="" r(69): NEXT i r(70):END_SUB
Chez moi ça fonctionne bien, tel que je procède. J'ai le message ok, et Hello Word. |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 14:57 | |
| Je sous sous XP, en mode administrateur, et je n'ai donc aucun souci de droits d'acc-=ès. J'ai le même message, qui montre que le CHAIN a bien fonctionné. Mais si tu cliques sur le bouton OK, ce programme chaîné s'arrête, et on retrouve l'éditeur.
Or, celui-ci n'a pas compris que le programme lancé s'est arrêté ! La flèche pour relancer le programme reste grisée. C'est ça, le problème ! | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 15:00 | |
| Salut Nardo 26.
On explore l’exotisme maintenant !
J’ai fais ceci : Au lieu de CHAIN fname$, j’ai remplacé par EXECUTE fname$ : TERMINATE Cela ouvre une seconde fenêtre PANORAMIC EDITOR, à partir de laquelle on peut exécuter le fichier ‘tmp_bf.bas’ autant de fois que l’on veut. Puis on quitte cette 2eme fenêtre par la croix rouge, on retourne à notre 1er programme que l’on peut relancer ensuite autant de fois que l’on veut.
Ce n’est pas satisfaisant comme solution, mais cette méthode prouve que la commande EXECUTE ou EXECUTE_WAIT permet de lancer tout fichier ( quelque soit son extension) que l’on peut exécuter en double-cliquant sur son nom
Dernière édition par papydall le Mar 11 Déc 2012 - 16:41, édité 1 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 15:06 | |
| Uniquement si Panoramic est installé par son programme d'installation, ou si tu as explicitement associé l'extension *.BAS avec Panoramic_Editor.exe. Ce n'est pas le cas chez moi: j'ai aussi Visual Basic ainsi que d'autres clones de Basic - j'ai donc renoncé à manipuler les associations à chaque fois. | |
|
| |
Invité Invité
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 15:41 | |
| S i c'est la flèche grisée, c'est un problème que j'ai évoqué depuis le début. Et Jack ne peux pas dire qu'il ne le sait pas. Je l'ai combien de fois évoqué, comme la directive d'include qu'il ne fait pas. Mais il n'a jamais répondu la dessus. Ce n'est pas une nouvelle.
Le plus gênant pour moi, c'est que depuis quelques temps, En lançant un programme Panoramic avec l'éditeur, dans la majorité des cas, il me ferme les programmes exe Panoramic, et là c'est grave. C'est pas systématique, mais régulier. |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Problème avec CHAIN Mar 11 Déc 2012 - 16:38 | |
| C’est juste Klaus. J’ai associé *.BAS avec Panoramic_Editor.exe.
| |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 2:11 | |
| @Nardo26 - Spoiler:
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
| |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 5:16 | |
| @Papydall: - Spoiler:
1 1 1 1 1 1 1 1 1 1 00100 010 1 010 1 1 1 010 1 1 1 1 1 1 1 010 1 1 1 1 1 1 1 1 1 1 011 011 011 011 000 0011 010 010 010 000 000 000 001010 010 000 000 000 001010 011 011 1 1 001010 010 010 001010 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 001010 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 001010 1 1 1 1 1 1 1 1 1 1 1 1 1 001010 000 000 000 000 000 000 000 000 000 000 000 001010 1 1 001010 011 011 1 1 1 1 1 1 1 1 1 1 1 1 001010 000 000 000 000 000 000 000 000 000 000 000 000 001010 010 010 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 001010 000 000 000 000 000 001010 1 1 1 1 1 1 001010 000 001010 011 011 001010 010 010 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 001010 1 1 1 1 1 1 1 1 1 1 1 001010 1 1 1 1 1 1 001010 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 001010 1 1 001010 1 1 1 1 1 1 1 1 001010 000 000 000 000 000 000 000 000 001010 1 1 1 1 1 1 1 1 1 001010 1 1 1 1 1 1 001010 011 011 1 1 1 1 1 1 1 1 1 1 1 1 1 1 001010 001010 001010 000 000 000 000 000 000 000 000 000 000 000 000 000 000 001010 010 000 000 000 000 000 000 000 000 001010 011 1 1 1 1 1 1 1 1 1 001010
Je sais pas si on peut parler de langage (Spoon) ou de cryptographie dans ce cas... quoique?... avec des cartes perforées... PS: J'essaye de bricoler un truc avec Panoramic + MASM pour convertir du Brainf*ck en assembleur et générer derrière un exe en mode console... (pour l'instant c'est vraiment du bricolage.... ) | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 9:06 | |
| As-tu Delphi ? Brainfuck en Delphi en mode console, cela devrait être simple... | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 10:12 | |
| Bonjour klaus, Oui j'ai Delphi mais quand tu vois les instructions de BF, c'est tres proche de asm... Donc si je pouvais generer de l'asm avec pano et compiler avec Masm... Ca pourrais etre sympa | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 10:21 | |
| En effet. Mais tu peux aussi faire du MASM imbriqué dans un programme Delphi (je le fais dans KGF.dll pour mes fonctions binaires. Un exemple: - Code:
-
// rotation 16 bits de "num" à gauche de "cnt" bits function bin_WROL(num, cnt :integer) :integer; stdcall; export; asm PUSH ECX MOV EAX,num MOVZX EAX,AX MOV ECX,cnt ROL AX,CL POP ECX MOV @RESULT,EAX end;
Ainsi, tu bénéficieras de l'environnement de l'IDE et de sa génération intégrée. il fait choisir de créer un projet "Console". | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 10:42 | |
| En effet, le mode console de Delphi me permet de faire pas mal de chose. Mais je n'ai pas l'habitude de Delphi... Une question : Est-ce que tu peut compiler à la volée un source ASM ou Delphi que tu viens de générer à partir d'un source BF et lancer ensuite son exécution ?... il existe un utilitaire delphi qui permet de le faire? Perso, j'ai la chaine de compil MASM32 sur mon PC mais si c'est faisable en Delphi pourquoi pas ?!... Ce que je souhaiterai faire (pour le fun... mais vraiment pour le fun!) c'est de générer un exécutable à partir d'un source BF... A faire du BF, autant le faire à fond ! comme cela, cela sera vraiment du BF ! | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 10:58 | |
| Dans ce cas, autant générer directement du code MASM.
Sinon, il faudrait générer de fichier projet Delphi en mode console (un *.dpr) à partir de Panoramic, puis le compiler par un fichier batch du type [code]@ECHO OFF c:\Program files\Borland\Delphi6\Bin\dcc32 -b .\Projet1.dpr/code]
Le fichier *.dpr est un simple fichier texte, mais il y a évidemment plus de choses à générer que pour le seul programme en MASM. Donc, dans ton cas, cela n'apporte rien. Cela aurait pu être intéressant si tu voulais le développer directement en Delphi/MASM.
Pais pourquoi tu ne fais pas un noyeau BF acceptant une chaîne de caractères comme paramètre de lancement, éventuellement précécdée d'un @ pour signifier que la chaîne de caractères contient un nom de fichiers. Et tu charges le contenu de cette chaîne de caractères dans la mémoire simulée, puis tu l'exécutes. Tu peux faire ça avec un petit projet Delphi en mode console, ce qui devient alors un programme que tu peux lancer dans un fichier BAT par la commande EXECUTE, en passant en paramètre la chaîne de caractères générée par Panoramic. CEtte chaîne de caractères représenterait le programme BG directement, ou @ suivi d'un nom de fichier contenant le programme BF. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 11:11 | |
| Là tu parles d'un interpréteur... C'est ce que je voulais faire au départ avec Panoramic... voir ici : - Spoiler:
- Code:
-
' ============================================================================== ' Programme de conversion Langage Brainfuck -> Panoramic ' ' Auteur : Nardo26 ' ============================================================================== ' ' Syntaxe : ' ' > ++p ' < --p ' + ++*p ' - --*p ' . putchar(*p) ' , *p=getchar() ' [ while (*p){ ' ] } ' ' ==============================================================================
DIM FNAME$ : FNAME$="C:\tmp_bf.bas" DIM IN% : IN% = 1 DIM OUT%: OUT% = 2
IF FILE_EXISTS(FNAME$)=1 THEN FILE_DELETE FNAME$
DIM a$ DIM ClipOut$
FILE_OPEN_WRITE OUT%,FNAME$
OUTPUT("DIM Ptr,t(3000),k$,output$") a$="Ptr=0":OUTPUT(a$) : ' là je suis obligé de passer par la variable a$ pour contourner le bug du caractère = en passage de paramètre
IF PARAM_NUMBER<>0 IF FILE_EXISTS(PARAM_VALUE$(1))=1 FILE_OPEN_READ IN%,PARAM_VALUE$(1) WHILE FILE_EOF(IN%)<>1 FILE_READLN IN%,a$ Decode(a$) END_WHILE FILE_CLOSE IN% ELSE FILE_CLOSE OUT%:FILE_DELETE FNAME$ MESSAGE FNAME$+" non trouvé ":TERMINATE END_IF ELSE a$="++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+." Decode(a$) END_IF
OUTPUT("PAUSE 3000") OUTPUT("FILE_DELETE " + CHR$(34) + FNAME$ + CHR$(34)) OUTPUT("TERMINATE")
FILE_CLOSE OUT% CLIPBOARD_STRING_COPY ClipOut$ CHAIN FNAME$
END
SUB Decode(a$) DIM_LOCAL i%, v%, cd$, pan$, vp% i% = 0 : v% = 0 : cd$ = "" : pan$ = "" : vp% = 0 FOR i% = 1 TO LEN(a$) cd$ = MID$(a$, i%, 1) IF cd$="+" : v% = v% + 1 ELSE:IF cd$ = "-" THEN v% = v% - 1 END_IF
IF cd$ = ">": vp% = vp% + 1 ELSE:IF cd$ = "<" THEN vp% = vp% - 1 END_IF IF cd$ <> "+" AND cd$ <> "-" AND v% <> 0 IF v% > 0 : pan$ = "t(ptr)=t(ptr)+" + STR$(v%) ELSE : pan$ = "t(ptr)=t(ptr)" + STR$(v%) END_IF v% = 0 : OUTPUT(pan$) : pan$ = "" END_IF IF cd$ <> "<" AND cd$ <> ">" AND vp% <> 0 IF vp% > 0 : pan$ = "ptr=ptr+" + STR$(vp%) ELSE : pan$ = "ptr=ptr" + STR$(vp%) END_IF vp% = 0 : OUTPUT(pan$) : pan$ = "" END_IF IF cd$ = "[" THEN pan$ = "WHILE t(ptr)<>0" IF cd$ = "]" THEN pan$ = "END_WHILE" IF cd$ = "." THEN pan$ = "PRINT CHR$(t(ptr));" IF cd$ = "," THEN pan$ = "k$=INKEY$:WHILE k$="+CHR$(34)+CHR$(34)+":k$=INKEY$:END_WHILE:t(PTR)=ASC(k$)" IF pan$ <> "" THEN OUTPUT(pan$) : pan$ = "" NEXT i% END_SUB
SUB OUTPUT(a$) FILE_WRITELN OUT%,a$ ClipOut$ = ClipOut$ + CHR$(13)+CHR$(10) + a$ END_SUB
Je vais tenter ce que tu dis, un prog Delphi en mode console qui interprète le BF... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 11:57 | |
| Alors, le vrai défi, ce sera de faire un programme Panoramic qui traduise du code Panoramic en source BF... En tout cas ce qui correspond au mode console, sans les objets, avec inkey$ et print. Genre: print 2+3. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 12:30 | |
| Salut Nardo26 Je viens de décrypter ton message en spoon et voici la solution : Ca avance, tout doucement... C’est bien, mais j’arrête de communiquer avec toi en Brainfuck en Ook en spoon et les autres langages aussi exotiques les uns que les autres. Le commun des PANORAMICIENS ne connait pas ces langages ! Moi-même je n’ai jamais soupçonné leur existence avant d’essayer de résoudre ta 1ere énigme. Maintenant que je sais un petit peu plus sur ces langages ésotériques, hilarant, exotiques (et que sais-je encore ?), il ne s’agit pas d’intelligence mais plutôt Savoir ou ne pas savoir that is the question !Un dernier message, puis j’arrête : - Code:
-
<~6>paZAKYJr@;]Rd+AQ?cA8a4]+<^~> Si tu sèches sur ce message, voici la solution (mais essaye de la trouver avant de cliquer sur spoiler) - Spoiler:
Bonne chance Nardo26 ! < ===== codé en ASCII 85
| |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 12:55 | |
|
Dernière édition par papydall le Mer 12 Déc 2012 - 13:26, édité 1 fois | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 13:02 | |
| - papydall a écrit:
- ...il ne s’agit pas d’intelligence mais plutôt Savoir ou ne pas savoir that is the question !
Heu je ne suis pas sûr de ce que tu dis : en dehors de la syntaxe, c'est loin d'être évident de coder autre chose que des print "coucou" et autres opération de base... Le jour du lancement d'Ariane 5 ME (prévu en 2017, ya l'temps.. ) planquez-vous ! A mon avis, ils ont du se torturer les méninges... et là ce n'est pas qu'une question de savoir... EDIT : - papydall a écrit:
- Voici un interpréteur Brainfuck en Delphi : c’est ici
Tu gâches tout Papydall ! | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 13:28 | |
| Sorry ! J’ai cru bien faire et non gâcher tout. Je retire le lien donné dans mon post précédent ! Tu peux en faire autant ! | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 13:42 | |
| Je pense que la réponse de Nardo était une boutade | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec CHAIN Mer 12 Déc 2012 - 14:00 | |
| - Jicehel a écrit:
- Je pense que la réponse de Nardo était une boutade
Tout à fait ! Y'a pas de mal Papydall !... Cela ne m’empêchera pas de gamberger sur ce sujet... | |
|
| |
Contenu sponsorisé
| Sujet: Re: Problème avec CHAIN | |
| |
|
| |
| Problème avec CHAIN | |
|