Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    mars 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 26
    Points : 10
    Points
    10

    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
    Candidat au titre de Membre du Club
    Inscrit en
    mars 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 26
    Points : 10
    Points
    10

    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
    Invité de passage
    Inscrit en
    avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 6
    Points : 2
    Points
    2

    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
    Candidat au titre de Membre du Club
    Inscrit en
    mars 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 26
    Points : 10
    Points
    10

    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
    Candidat au titre de Membre du Club
    Inscrit en
    mars 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 26
    Points : 10
    Points
    10

    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
    Invité de passage
    Inscrit en
    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$)

  7. #7
    Invité de passage
    Profil pro Alain Renier
    Inscrit en
    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

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

Liens sociaux

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
  •