IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Basic Discussion :

QBasic et XP


Sujet :

Basic

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Points : 20
    Points
    20
    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

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Points : 20
    Points
    20
    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.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    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é.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    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

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    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

  6. #6
    Candidat au Club
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut CRONOMÈTRE
    boujour
    option timer pour heure , minute , seconde , centieme de seconde

    en qbasic : CROMOETRE.bas

    Code Basic : Sélectionner tout - Visualiser dans une fenêtre à part
    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$)

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Qbasic sous Windows XP
    Par steenbock dans le forum Basic
    Réponses: 3
    Dernier message: 21/01/2007, 09h42
  2. [QBasic] Liste des ports d' E/S
    Par duplo dans le forum Basic
    Réponses: 1
    Dernier message: 02/02/2006, 21h29
  3. QBasic ou Visual Basic ou IBasic ou un autre Big point ????
    Par Newbie en galere dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 17/07/2004, 15h09
  4. qbasic : taille d'un tableau
    Par clood200 dans le forum Basic
    Réponses: 2
    Dernier message: 16/09/2003, 07h26
  5. qbasic : pause avec FOR-NEXT
    Par clood200 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 08/08/2003, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo