Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > Basic
Basic Forum d'entraide sur la programmation en langage Basic
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/03/2007, 23h22   #1
denewton
Invité régulier
 
Inscription : mars 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 26
Points : 9
Points : 9
Par défaut QBasic et XP

Bonjour,
Mon programme QBasic sous W98SE et WinME ne peut être compilé même avec QuickBasic 7.1 (trop important en taille) donc il tourne qu'en interprété avec l'un quelconque des QBasic ou QuickBasic. Sous XP, il se plante d'une manière incompréhensible sur un RETURN . J'ai essayé dans le .pif de mettre un autre fichier de commande (Command.com du milenium entre autre) ca plante toujours au même endroit. Y-aurait-il incompatibilité avec l'interpréteur QBasic 1.1 ?
Seconde question : sur W98, la fenêtre est en 24/25 lignes même plein écran. Sous XP en plein écran il y a plus de 25 lignes possibles : peut-on augmenter le nombre de lignes à l'écran ou faut-il s'en contenter en réduisant la fenêtre pour ne contenir que les 24/25 lignes ?
Bertrand
denewton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2007, 23h06   #2
denewton
Invité régulier
 
Inscription : mars 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 26
Points : 9
Points : 9
Par défaut [Résolu ?]Qbasic et XP

Bonjour,
La réponse est que l'écran d'affichage n'a pas les mêmes propriétés que sous W98SE ou ME : la ligne 25 n'est pas spéciale comme le laissait supposer la documentation. Je vais essayer dans les deux cas de modifier le "view print" en autorisant la ligne 25 : car si je mets 24 et que par un "locate" je veux écrire dans la 25 ça plante sous XP mais pas avec les autres...
Cordialement
Bertrand

XP est simplement plus exigeant que les précédents : il respecte la syntaxe. Dans mon cas, si j'avais écrit la ligne en 25 et fait le "view print 1 to 24" ensuite, ça devrait mieux se passer. Pour l'instant je n'ai écrit que "view print" sans argument qui restore le plein écran comme avec 1 to 25.
denewton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 18h28   #3
Norodom
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 2
Points : 2
Bonjour à tous
Lecteur et inscrit de ce jour sur ce forum, je n'ai pas encore fait le tour de ce qui est écrit sur ces petites merveilles que sont QBasic et QuickBasic (ou qui étaient... mais oui, souriez!) Avec Windows95 et 98, puis 98SE, vous ne pouvez imaginer ce qu'il était possible de faire! Mais avec XP et à fortiori XPsp2 alors là je reste méditatif... même en utilisant le mode de compatibilité dont dispose XP... QB et QuickB sont des programmes qui tournent sous Dos avec des fichiers en fat32 alors?... Pour ma part, utilisant XPpro sp2, je me suis efforcé de convertir certains programmes en VisualBasic. C'est à mon avis la meilleure solution qui vient à l'esprit. Mais peut-être quelques veinards réussissent-ils là où j'ai, et d'autres ont échoué? Adepte du principe que chaque problème a sa solution, je suis avide de connaître la suite...
Merci de m'avoir écouté.
Norodom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 11h01   #4
denewton
Invité régulier
 
Inscription : mars 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 26
Points : 9
Points : 9
Bonjour,
sur XP, ça peut marcher à condition d'être en fat32. L'affichage sur le portable est un peu décevant (n'utilise pas tout l'écran comme avec Millénium), mais ça marche.
Il faut évidemment avoir une imprimante qui émule le dos, ce qui devient rare.
Cordialement
Bertrand
denewton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2010, 16h27   #5
denewton
Invité régulier
 
Inscription : mars 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 26
Points : 9
Points : 9
Bonjour,
Qbasic marche aussi en NTFS : en changeant ma carte mère certains de mes disques sont en NTFS et ça passe très bien.
Dans les bouqins de Visual Basic, je n'ai pas encore trouvé comment donner la valeur entrée dans une case d'une fenêtre à la variable correspondante.
Cordialement
Bertrand
denewton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2010, 13h36   #6
qbasic45
Invité de passage
 
Inscription : août 2010
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 2
Points : 1
Points : 1
Par défaut CRONOMÈTRE

boujour
option timer pour heure , minute , seconde , centieme de seconde

en qbasic : CROMOETRE.bas

Code Basic :
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
31
32
33
34
35
36
37
38
39
CLS : COLOR 15, 0
DO
RANDOMIZE TIMER
Tans = TIMER:
Heure = INT(Tans / 3600)
Totale1 = Heure * 3600: Totale2 = Tans - Totale1
Minute = INT(Totale2 / 60): Totale3 = Minute * 60
Totale4 = Tans - Totale1: Totale5 = Totale4 - Totale3
Seconde = INT(Totale5)
LOCATE 2, 1
 
a$ = LTRIM$(STR$(Heure))
PRINT "HEURE "; a$
IF Heure = 0 THEN a$ = "00"
IF LEN(a$) = 1 THEN a$ = "0" + a$
 
b$ = LTRIM$(STR$(Minute))
IF Minute = 0 THEN b$ = "00"
IF LEN(b$) = 1 THEN b$ = "0" + b$
PRINT "MINUTE "; b$
 
c$ = LTRIM$(STR$(Seconde))
IF Seconde = 0 THEN c$ = "00"
IF LEN(c$) = 1 THEN c$ = "0" + c$
PRINT "SECONDE "; c$
 
Totale6 = Totale5
Totale7 = INT(Totale6 * 100) / 100: Totale8 = Totale7 - Seconde
Centieme = INT(Totale8 * 100) / 100
d$ = LTRIM$(STR$(Centieme))
IF Centieme = 0 THEN d$ = ".00"
IF LEN(d$) = 1 THEN d$ = ".0" + d$
PRINT "CENTIEME "; d$
 
hh$ = a$ + ":" + b$ + ":" + c$ + d$
LOCATE 7, 1: PRINT "HEURE EST "; hh$
f$ = LTRIM$(STR$(TIMER))
LOCATE 9, 1: PRINT "LE TIMER SET "; f$
LOOP UNTIL LEN(INKEY$)
qbasic45 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/01/2011, 12h47   #7
arn0691
Invité de passage
 
Alain Renier
Inscription : janvier 2011
Messages : 1
Détails du profil
Informations personnelles :
Nom : Alain Renier

Informations forums :
Inscription : janvier 2011
Messages : 1
Points : 1
Points : 1
Par défaut calcul faux

Citation:
Envoyé par qbasic45 Voir le message
boujour
option timer pour heure , minute , seconde , centieme de seconde

en qbasic : CROMOETRE.bas

Code Basic :
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
31
32
33
34
35
36
37
38
39
CLS : COLOR 15, 0
DO
RANDOMIZE TIMER
Tans = TIMER:
Heure = INT(Tans / 3600)
Totale1 = Heure * 3600: Totale2 = Tans - Totale1
Minute = INT(Totale2 / 60): Totale3 = Minute * 60
Totale4 = Tans - Totale1: Totale5 = Totale4 - Totale3
Seconde = INT(Totale5)
LOCATE 2, 1
 
a$ = LTRIM$(STR$(Heure))
PRINT "HEURE "; a$
IF Heure = 0 THEN a$ = "00"
IF LEN(a$) = 1 THEN a$ = "0" + a$
 
b$ = LTRIM$(STR$(Minute))
IF Minute = 0 THEN b$ = "00"
IF LEN(b$) = 1 THEN b$ = "0" + b$
PRINT "MINUTE "; b$
 
c$ = LTRIM$(STR$(Seconde))
IF Seconde = 0 THEN c$ = "00"
IF LEN(c$) = 1 THEN c$ = "0" + c$
PRINT "SECONDE "; c$
 
Totale6 = Totale5
Totale7 = INT(Totale6 * 100) / 100: Totale8 = Totale7 - Seconde
Centieme = INT(Totale8 * 100) / 100
d$ = LTRIM$(STR$(Centieme))
IF Centieme = 0 THEN d$ = ".00"
IF LEN(d$) = 1 THEN d$ = ".0" + d$
PRINT "CENTIEME "; d$
 
hh$ = a$ + ":" + b$ + ":" + c$ + d$
LOCATE 7, 1: PRINT "HEURE EST "; hh$
f$ = LTRIM$(STR$(TIMER))
LOCATE 9, 1: PRINT "LE TIMER SET "; f$
LOOP UNTIL LEN(INKEY$)

Ce calcule est HORS REALITE!!

Le timer est un compteur sur 16 bits. Nous avons donc:
65536/3600 = 18.204444444... par seconde.
Donc le temps réel est de 1/18.20444 soit 0.054931 seconde.
On ne peut pas trouver des centième de seconde lorsque la résolution est supérieure à ce que l'on cherche !
Pour preuve, je vous invite à faire une boucle avec en tête
une variable# = timer
boucle do
puis une boucle du genre for i = 1 to 20000:next
fin# = timer
si fin# - variable# > 0 alors
afficher (fin# - variable#)
loop until inkey$ <> 0.
En optimisant ce petit outil en fonction de votre écran, vous constaterez que le temps est redondant ente 0.049..... et 0.060...
Donc vous souhaitez afficher 0.01s quand le delta est de 0.055s.
Ce n'est pas possible
arn0691 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h35.


 
 
 
 
Partenaires

Hébergement Web