| Back2Basic numéro 6 est paru | |
|
|
Auteur | Message |
---|
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Back2Basic numéro 6 est paru Ven 1 Juin 2012 - 15:51 | |
| Le dernier numéro de ce magazine a parution quelque peu irrégulière : http://back2basic.phatcode.net/?Issue_%236Il contient un résumé de mon tutoriel sur l'ensemble de Mandelbrot, avec l'association Panoramic / FreeBASIC qui semble promise à un brillant avenir | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Back2Basic numéro 6 est paru Ven 1 Juin 2012 - 15:57 | |
| Intéressant, mais très pointu ( ). J'ai essayé de faire une dll en freebasic et de l'appeler en panoramic, mais ça ne fait pas ce que je veux (lire en freebasic un fichier binaire dans une chaîne, il sait faire, et passer la chaîne à panoramic, mais là ça ne marche pas quelque part dans l'interface...). | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Back2Basic numéro 6 est paru Ven 1 Juin 2012 - 20:37 | |
| Bien écrit, longue vie à cette page multibasics en espérant que ces administrateurs puissent avoir pleins de superbe articles avec de beaux programmes pour le passage de Panoramic en V1 (Je pense que le générateur de plantes en Panoramic 1 pourrait être interessant pour eux avec quelques explications sur son principe | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Back2Basic numéro 6 est paru Sam 2 Juin 2012 - 7:51 | |
| - JL35 a écrit:
J'ai essayé de faire une dll en freebasic et de l'appeler en panoramic, mais ça ne fait pas ce que je veux (lire en freebasic un fichier binaire dans une chaîne, il sait faire, et passer la chaîne à panoramic, mais là ça ne marche pas quelque part dans l'interface...). Peux-tu donner un exemple du code que tu utilises ? En principe, il faut passer la chaîne sous forme ZSTRING PTR et dimensionner dans le programme PANORAMIC une chaîne suffisamment longue pour recevoir le résultat. Tout cela devrait devenir plus simple avec la prochaine version de Panoramic. | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Back2Basic numéro 6 est paru Sam 2 Juin 2012 - 15:37 | |
| Voici un exemple (adapté de l'aide de FreeBASIC). Tout d'abord le source de la DLL : - Code:
-
extern "Windows-MS" function LoadFile(byref filename as zstring ptr, _ byref text as zstring ptr) as integer export dim h as integer dim txt as string h = freefile if open( *filename for binary access read as #h ) <> 0 then return -1 if lof(h) > 0 then txt = string(lof(h), 0) if get( #h, ,txt ) <> 0 then txt = "" end if close #h *text = txt return 0 end function end extern
Le fichier est stocké dans test.bas. On compile par fbc test.bas -dll pour obtenir test.dll qui fait environ 20 k Voici maintenant un programme Panoramic pour lire ce même fichier DLL dans une variable chaîne. Cette dernière doit avoir une taille > 20 k autrement on a un "access violation". - Code:
-
dim filename$ dim text1$ dim res% filename$ = "test.dll" ' Ici on dimensionne la chaine a 30000 caracteres ' soit plus que la taille du fichier a lire text1$ = string$(30000, " ") dll_on "test.dll" res% = dll_call2("LoadFile", adr(filename$), adr(text1$)) print text1$ dll_off end
Voilà. J'espère que cela répond à ta question | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: bsent aujourdhui Sam 2 Juin 2012 - 23:19 | |
| Merci beaucoup jean_debord, j'étais absent aujourd'hui, mais je me pencherai sérieusement sur ton code demain. Et je te tiendrai évidemment au courant ici même. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Back2Basic numéro 6 est paru Dim 3 Juin 2012 - 14:55 | |
| @jean_debord, j'ai testé ton code qui marche parfaitement bien, évidemment. J'ai simplement remplacé dans l'appel Panoramic - Code:
-
text1$ = string$(30000, " ") par - Code:
-
filebin_open_read 1, filename$: text1$ = string$(filebin_size(1)," "): filebin_close 1 qui me semble plus universel. Pour ce que je veux en faire (dump fichier), on gagne évidemment beaucoup pour la lecture fichier, en une seule fois, mais le traitement ultérieur en Panoramic reste très long pour les longs fichiers (je teste par exemple sur un fichier de 1M). Aussi j'espère beaucoup du futur compilateur qui semble accélérer considérablement les traitements. Quoiqu'il en soit, je te remercie encore. | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Back2Basic numéro 6 est paru Dim 3 Juin 2012 - 16:07 | |
| Merci pour le retour JL35 Il est bien sûr préférable de tester la longueur du fichier avant de dimensionner la chaîne, comme tu le fais dans ta modification. Pour les traitements, c'est vrai que le nouveau compilateur est beaucoup plus rapide ! En attendant, tu peux aussi faire le traitement dans la DLL. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Back2Basic numéro 6 est paru Dim 3 Juin 2012 - 16:44 | |
| Pour un traitement de ce genre Freebasic est mieux (bien plus rapide, d'ailleurs je l'ai déjà fait, c'est facile), mais pour l'interface utilisateur c'est Panoramic, on pourra peut-être combiner les deux. Et si on gagne en vitesse dans un facteur de 10 ou 15 en compilant Panoramic, ça me conviendra très bien. | |
|
| |
Contenu sponsorisé
| Sujet: Re: Back2Basic numéro 6 est paru | |
| |
|
| |
| Back2Basic numéro 6 est paru | |
|