Excel Downloads
Forum

Précédent   Excel Downloads Forums > Accueil > Le salon de XLD


Réponse
 
LinkBack Outils de la discussion
Vieux 04/04/2007, 21h05   #1 (permalink)
XLDnaute Barbatruc
 
Avatar de Staple1600
 
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
Par défaut Conversion Qbasic -> VBA

Bonsoir

Quelqu'un ici s'est-t-il amusé à essayer
de coller le contenu de fichiers.bas (QBasic)
dans VBE?


Et ensuite de voir comment traduire le tout en VBA?


Est-ce seulement possible?

Si oui, est-ce vain?
Staple1600 est déconnecté   Réponse avec citation
ANNONCES
Vieux 06/04/2007, 09h09   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de wilfried_42
 
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 969
Par défaut Re : Conversion Qbasic -> VBA

bonjour staple

c'est vain, dans le fait ou Qbasic n'est pas un langage strcturé objet, que seuls les commandes faciles peuvent etre transcrites. il existe des possibilités en QB qui à ma connaissance ne sont pas possibles en VBA (selon mes faibles connaissances de VBA). personnellement, en 1984, j'ai à l'aide d'une moulinette, transcrit des programmes Kbasic sous CPM en Mbasic86 sous Dos, les deux basic se ressemblant, la difficulté n'etait pas enorme.

Mais QB et VBA, n'ont pas la meme structure, personnellement, je pense que QB est plus puissant que VBA, et VBA plus pratique et c'est peu dire.
__________________
salutations

Wilfried

Plus j'apprends, plus je sais....... plus je sais que je ne sais rien.

Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci
wilfried_42 est déconnecté   Réponse avec citation
Vieux 06/04/2007, 10h25   #3 (permalink)
XLDnaute Barbatruc
 
Avatar de Staple1600
 
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
Par défaut Re : Conversion Qbasic -> VBA

Bonjour Wilfried_42, le forum

C'est ce je craignais

Merci de ta réponse
Staple1600 est déconnecté   Réponse avec citation
Vieux 06/04/2007, 14h36   #4 (permalink)
XLDnaute Accro
 
Avatar de Creepy
 
Date d'inscription: février 2005
Localisation: Maurecourt
Version Excel : Excel 2003 (PC)
Messages: 1 539
Par défaut Re : Conversion Qbasic -> VBA

Bonjour le Forum,

Je n'ai pas testé mais je serais curieux de faire le test ! Même si une fonction n'existe pas on doit pouvoir la reproduire !

Peux tu mettre un fichier joint que je teste.

Merci

Creepy
__________________
Creepy est déconnecté   Réponse avec citation
Vieux 06/04/2007, 16h08   #5 (permalink)
XLDnaute Barbatruc
 
Avatar de wilfried_42
 
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 969
Par défaut Re : Conversion Qbasic -> VBA

bonjour creepy

je ne sais pas si je peus retrouver dans mes archives une partie tres specifique de QB (Programmation directe en code assembleur dans le source de Qb). je suis ben incapable de programmer en assembleur. mais dans j'ai vu Qb le traduir. l'interet ne serait pas dans ce sens, mais dans l'autre sens. Qb etant compilable.................. bye billou pour la distrbution des projets lol
__________________
salutations

Wilfried

Plus j'apprends, plus je sais....... plus je sais que je ne sais rien.

Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci
wilfried_42 est déconnecté   Réponse avec citation
Vieux 06/04/2007, 16h12   #6 (permalink)
XLDnaute Barbatruc
 
Avatar de Staple1600
 
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
Par défaut Re : Conversion Qbasic -> VBA

Bonjour Creepy

Voici un exemple QBasic

Code:
1  REM * The Towers Of Hanoi
2  REM * BASIC
3  REM * Copyright (c) 1998 Amit Singh. All Rights Reserved.
4  REM * NOTES: Tested under Chipmunk BASIC 1.0
5  REM * NOTES: Tested under Microsoft(TM)(R)(C) *QBasic* 1.1
6  REM --- S is the stack
10 DIM S(4096)
15 REM --- b is the stack pointer
20 b = 1
25 REM --- _sfTO
30 t = 2
35 REM --- _sfFR
40 f = 0
45 REM --- _sfUS
50 u = 1
55 REM --- _sfNU
60 n = 3
65 REM --- _sfEN
70 e = 0
75 REM --- remain
80 m = 0
85 REM --- the stack variable
90 INPUT "Number of disks (0 < disks < 100)"; v
91 IF v>0 AND v<100 THEN GOTO 94 ELSE GOTO 92
92 PRINT "Illegal number of disks"
93 GOTO 90
94 INPUT "DISPLAY (Y/N)"; a$
99 REM --- PUSH N (=v here)
100 GOSUB 2000
110 v = 1
120 GOSUB 2000
130 v = 3
140 GOSUB 2000
150 v = 0
160 GOSUB 2000
170 WHILE b > 1
180 GOSUB 3000
190 e = v
200 GOSUB 3000
210 t = v
220 GOSUB 3000
230 f = v
240 GOSUB 3000
250 n = v
260 m = 6 - f - t
270 IF e <> 0 THEN GOTO 280 ELSE GOTO 380
280 GOSUB 4000
290 v = n - 1
300 GOSUB 2000
310 v = m
320 GOSUB 2000
330 v = t
340 GOSUB 2000
350 v = 0
360 GOSUB 2000
370 GOTO 570
380 IF n <> 1 THEN GOTO 390 ELSE GOTO 560
390 v = n
400 GOSUB 2000
410 v = f
420 GOSUB 2000
430 v = t
440 GOSUB 2000
450 v = 1
460 GOSUB 2000
470 v = n - 1
480 GOSUB 2000
490 v = f
500 GOSUB 2000
510 v = m
520 GOSUB 2000
530 v = 0
540 GOSUB 2000
550 GOTO 570
560 GOSUB 4000
570 WEND
575 PRINT "Move count: "; count
580 END

1999 REM --- procedure push(v)
2000 S(b) = v
2010 b = b + 1
2020 RETURN

2999 REM --- procedure pop()
3000 IF b = 0 THEN GOTO 3030 ELSE GOTO 3010
3010 b = b - 1
3020 v = S(b)
3030 RETURN

3999 REM --- procedure movedisk(from, to)
REM 4000 PRINT USING "move # --> #"; f; t;
4000 count=count+1
4001 IF A$ = "N" THEN RETURN
4002 PRINT "move ";f;" --> ";t;
4010 PRINT ""
4020 RETURN
Staple1600 est déconnecté   Réponse avec citation
Vieux 06/04/2007, 16h17   #7 (permalink)
XLDnaute Barbatruc
 
Avatar de Staple1600
 
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
Par défaut Re : Conversion Qbasic -> VBA

Re

et un autre un peu plus court

Code:
REM Euler Pseudoprime Test
REM Robert Campbell, 970701
DECLARE FUNCTION gcd& (x&, y&)
DECLARE FUNCTION powmod& (number&, exponent&, modulus&)

PRINT "Test number for primality using Euler test"
INPUT "number = "; thenumb&
PRINT powmod&(2, thenumb& - 1, thenumb&), powmod&(3, thenumb& - 1, thenumb&), powmod&(5, thenumb& - 1, thenumb&)
IF ((powmod&(2, thenumb& - 1, thenumb&) = 1) AND (powmod&(3, thenumb& - 1, thenumb&) = 1) AND (powmod&(5, thenumb& - 1, thenumb&) = 1)) THEN
        PRINT "Prime (probably, testing w/ bases 2, 3 and 5)"
ELSE
        PRINT "Composite"
END IF
END

FUNCTION powmod& (number&, exponent&, modulus&)
e& = exponent&
accum& = 1
pow2& = number&
WHILE (e& > 0)
        IF ((e& MOD 2) = 1) THEN accum& = (accum& * pow2&) MOD modulus&
        pow2& = (pow2& * pow2&) MOD modulus&
        e& = e& \ 2
WEND
powmod& = accum&
EXIT FUNCTION
END FUNCTION
Staple1600 est déconnecté   Réponse avec citation
Vieux 06/04/2007, 16h35   #8 (permalink)
XLDnaute Barbatruc
 
Avatar de wilfried_42
 
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 969
Par défaut Re : Conversion Qbasic -> VBA

re:

dans le premier, c'est un horreur, cela date de matusalem, avec des n° de ligne à chaque ligne de plus la programmation est ignoble avec plein de truc inutiles

exemple :
Citation:
380 IF n <> 1 THEN GOTO 390 ELSE GOTO 560
390 v = n
400 GOSUB 2000
410 v = f
420 GOSUB 2000
430 v = t
440 GOSUB 2000
450 v = 1
460 GOSUB 2000
470 v = n - 1
480 GOSUB 2000
490 v = f
500 GOSUB 2000
510 v = m
520 GOSUB 2000
530 v = 0
540 GOSUB 2000
550 GOTO 570
560 GOSUB 4000
ecrire à la place : if n=1 goto 560

le deuxieme

il y as deux declare function
et une seule fonction de définie.

meme en Qb cela fait une erreure alorqu'en vba il n'y a as d'erreur puisque pas besoin de declarer les fonctions.
__________________
salutations

Wilfried

Plus j'apprends, plus je sais....... plus je sais que je ne sais rien.

Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci
wilfried_42 est déconnecté   Réponse avec citation
Vieux 06/04/2007, 23h20   #9 (permalink)
XLDnaute Barbatruc
 
Avatar de Staple1600
 
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
Par défaut Re : Conversion Qbasic -> VBA

Bonsoir

Est-ce de cette façon qu'il faut traduire en VBA?
Je ne suis pas habitué à l'utilisation du caractère de désignation de type de données.

Je ne sais pas si j'ai fait une erreur
mais pour 3 il trouve composite et non pas nombre premier

Code:
Sub test()
'auteur:
''Euler Pseudoprime Test
'Robert Campbell, 970701
Dim thenumb&
thenumb = InputBox("Un nombre?")
Debug.Print powmod&(2, thenumb& - 1, thenumb&)
Debug.Print powmod&(3, thenumb& - 1, thenumb&)
Debug.Print powmod&(5, thenumb& - 1, thenumb&)
If ((powmod&(2, thenumb& - 1, thenumb&) = 1) And (powmod&(3, thenumb& - 1, thenumb&) = 1) And (powmod&(5, thenumb& - 1, thenumb&) = 1)) Then
        MsgBox "Le nombre" & thenumb & " est un nombre premier (probably, testing w/ bases 2, 3 and 5)"
Else
        MsgBox "Composite"
End If
End Sub

Function powmod&(number&, exponent&, modulus&)
e& = exponent&
accum& = 1
pow2& = number&
While (e& > 0)
        If ((e& Mod 2) = 1) Then accum& = (accum& * pow2&) Mod modulus&
        pow2& = (pow2& * pow2&) Mod modulus&
        e& = e& \ 2
Wend
powmod& = accum&
Exit Function
End Function

Dernière modification par Staple1600 ; 06/04/2007 à 23h23.
Staple1600 est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Conversion txt burni Forum Excel Downloads - Archives 6 11/08/2004 11h57
PB conversion XLS CSV samp Forum Excel Downloads - Archives 1 25/02/2004 08h34
conversion fred Forum Excel Downloads - Archives 10 02/07/2003 12h49
help conversion pascal Forum Excel Downloads - Archives 5 15/01/2003 22h33
Pb conversion xls en csv tst Forum Excel Downloads - Archives 2 30/11/2002 16h16


Fuseau horaire GMT +2. Il est actuellement 02h34.


(C) 2006 Excel Downloads