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

VB.NET Discussion :

passage de qbasix à VB


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 1
    Par défaut passage de qbasix à VB
    Code : 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    100 '********** LARAY VISKOSITEIT **********
    110 '********** MOORS CLAUDE - 1990 ********
    120 '
    130 'Berekening der viskositeit door middel van regressie analyse
    140 'Berekeningen uitgevoerd rekening houdend met een ingevoerde waarde voor
    150 'de Gap clearance
    160 GoSub 500: 'Initialiseren
    170 GoSub 1000: 'Invoer van basis gegevens
    180 GoSub 2000: 'Invoer van meetgegevens
    190 GoSub 4000: 'Resultaten op scherm
    200:00:00
    210 If A$ = "2" Then GoTo 170
    220 System
    230:00:00
    400 'Hoofding
    410 CLS: Color 6, 0, 0: Print Tab(32); "LARAY VISCOSITY": Color 2, 0, 0
    420 L = Len(F$): A = Int((80 - L) / 2): Print Tab(A); F$
    430 Return
    440:00:00
    500 'Initialiseren
    510 Key OFF: For K = 1 To 10: Key K, "": Next
    520 F$ = "INTRODUCTION": GoSub 400
    530 Dim T(5), G(5), G$(6), A(6), KR$(6)
    540 For K = 1 To 6: READ G$(K), KR$(K), A(K): Next
    550 LOCATE 7, 1: Color 3, 0, 0
    560 Print Tab(10); "THE VISCOSITY IS CALCULATED BY MEANS OF THE POWER LAW"
    570 Print Tab(10); "THE YIELD VALUE IS AN EXTRAPOLATION BASED ON REGRESSION"
    580 Print Tab(10); "ANALYSIS AND THIS IS NOT THE REAL YIELD"
    590 Print Tab(10); "RESULTS FROM IRON AND GLASS ROD CAN BE PROCESSED"
    600 Print Tab(10); "MINIMAL FOUR DROP TIMES ARE REQUIRED"
    610 Print Tab(10); "THE FIRST DROPTIME MUST LIE BETWEEN 1.0 AND 1.2 SECONDS"
    620 Print: Print Tab(10); "THE REFERENCE TEMPERATURE IS 21 OF 25 øC.THE AL"; "LOWED"
    630 Print Tab(10); "DEVIATION IS 1øC LOWER OR HIGHER THAN THIS TEMPERATURE"
    635 Print: Print Tab(10); "THE EXACT GAP CLEARANCE OF YOUR LARAY MUST BE"; " KNOWN FOR CORRECT RESULTS"
    640 LOCATE 22, 10: Color 12, 0, 0: Print "PRESS ANY KEY": Beep
    650 A$ = INKEY$: If Len(A$) = 0 Then GoTo 650
    660 DATA INKNUMBER,[ ],15,GLASS OR IRON ROD (G/I),[ ],1, REFERENCE TEMPERATURE,[ ],2,ACTUAL TEMPERATURE,[ ],4
    670 DATA NUMBER OF READINGS (MAX 5),[ ],1,GAP CLEARANCE,[ ],2
    680 DATUM$ = Mid$(Date$, 4, 3) + Left$(Date$, 3) + Mid$(Date$, 7)
    690 Return
    700:00:00
    1000 'Invoer van basisgegevens
    1010 F$ = "INPUT BASIC DATA": GoSub 400: Color 3, 0, 0: LOCATE 8, 1
    1020 For K = 1 To 6
    1030 Print Tab(10); G$(K);: Color 7, 0, 0: Print Tab(40); KR$(K): Color 3, 0, 0
    1040 Print: Next: K = 1
    1050 A = 6 + K * 2: B = 41: C = A(K): IV = 0
    1060 If K = 3 Or K = 5 Then IV = 1
    1070 If K = 2 Then IV = 3
    1080 If K = 4 Then IV = 4
    1090 GoSub 2260: If FL = 1 Then K = K - 1: GoTo 1050
    1100 If R$ = String$(Len(R$), " ") Then Beep: GoTo 1050
    1110 If K = 3 And (Val(R$) <> 21 And Val(R$) <> 25) Then Beep: GoTo 1050
    1120 If K = 4 Then GoSub 1250: If VERSCHIL > 1 Then Beep: GoTo 1050
    1130 If K = 5 And (Val(R$) < 4 Or Val(R$) > 5) Then Beep: GoTo 1050
    1140 If K = 6 And (Val(R$) < 35 Or Val(R$) > 55) Then Beep: GoTo 1050
    1150 BASIS$(K) = R$: K = K + 1: If K < 7 Then GoTo 1050
    1160 LOCATE 23, 5: Color 6, 0, 0: Print "ACCEPT DATA (Y OR \) ";
    1170 A$ = INPUT$(1): IF A$ <> "Y" AND A$ <> "\" THEN 1170
    1180 If A$ = "\" Then K = K - 1: Color 3, 0, 0: GoTo 1050
    1190 If BASIS$(2) = "I" Then W = 0.13: STAAF$ = "IRON": GoTo 1210
    1200 W = 0.0325: STAAF$ = "GLASS"
    1210 N = Val(BASIS$(5)): GAPCLEARANCE = Val(BASIS$(6)) / 10000
    1220 FACT1 = Int(10 / GAPCLEARANCE): FACT2 = 9280
    1230 Return
    1240:00:00
    1250 'Temperatuursverschil nagaan
    1260 REF = Val(BASIS$(3)): TEMP = Val(R$): VERSCHIL = Abs(REF - TEMP): Return
    1270:00:00
    2000 'Invoer meetgegevens
    2010 F$ = "INPUT MEASURING DATA": GoSub 400: Color 3, 0, 0: Print: Print
    2020 For I = 1 To N
    2030 Print Tab(10); "TIME IN SECNDS."; "[ ]"
    2040 Print Tab(10); "WEIGHT IN KG. "; "[ ]"
    2050 Print: Next: TEL = 1: A = 5: B = 26: C = 5: IV = 4
    2060 J = 0: K = 0: L = 0: M = 0: R = 0
    2070 If TEL > N Then GoTo 2160
    2080 GoSub 2260: T(TEL) = Val(R$)
    2090:00:00
    2100 A = A + 1
    2110 GoSub 2260: G(TEL) = Val(R$)
    2120 If G(TEL) <= 0 Or G(TEL) > 20 Then Beep: GoTo 2110
    2130 X = Log(FACT1 / T(TEL)) / Log(10): Y = Log((G(TEL) + W) * FACT2) / Log(10)
    2140 J = J + X: K = K + Y: L = L + X ^ 2: M = M + Y ^ 2: R = R + X * Y
    2150 A = A + 2: TEL = TEL + 1: GoTo 2070
    2160 B = (N * R - K * J) / (N * L - J ^ 2): A = (K - B * J) / N: J = B * (R - J * K / N)
     
    2170: M = M - K ^ 2 / N: R = SQR(J / M): IF R > 1 THEN R = 1
    2180 Y = A + B * Log(2500) / Log(10): V = 10 ^ Y / 2500: V = V * (0.1 * (TEMP - REF) + 1)
    2190 Y = A + B * Log(2.5) / Log(10): D = 10 ^ Y: D = D * (0.05 * (TEMP - REF) + 1)
    2200 H = D / V
    2210 Color 12, 0, 0: LOCATE 23, 30: Print "DATA O.K. (Y/N) ? "
    2220 A$ = INPUT$(1): IF A$ <> "Y" AND A$ <> "N" THEN 2210
    2230 If A$ = "N" Then GoTo 2010
    2240 Return
    2250:00:00
    2260 'Beschermde invoer met signaal
    2270 'A = Rijnummer B = Kolomnummer C = Stringlengte
    2280 LOCATE A, B, 1: A$ = "": R$ = "": D = B: FL = 0
    2290 A$ = INKEY$: If Len(A$) = 0 Then GoTo 2290
    2300 A$ = Right$(A$, 1): If A$ <> Chr$(8) Then GoTo 2340
    2310 ZL = Len(R$): If ZL < 1 Then GoTo 2290
    2320 R$ = Left$(R$, ZL - 1): D = D - 1
    2330 LOCATE A, D, 1: Print " ";: LOCATE A, D, 1: GoTo 2290
    2340 If A$ = Chr$(92) And K > 1 Then FL = 1: GoTo 2440
    2350 If A$ = Chr$(92) Then GoTo 2290
    2360 If A$ = Chr$(13) Then GoTo 2430
    2370 If Asc(A$) < 32 Or Asc(A$) > 96 Then GoTo 2290
    2380 If IV = 1 Then If Asc(A$) < 48 Or Asc(A$) > 57 Then Beep: GoTo 2290
    2390 If IV = 3 Then If Asc(A$) <> 71 And Asc(A$) <> 73 Then Beep: GoTo 2290
    2400 If IV = 4 Then If Asc(A$) <> 46 And (Asc(A$) < 48 Or Asc(A$) > 57) Then Beep: GoTo 2290
    2410 R$ = R$ + A$: If Len(R$) > C Then Beep: R$ = Left$(R$, C): GoTo 2290
    2420 Print A$;: D = D + 1: GoTo 2290
    2430 If R$ = "" Then GoTo 2330
    2440 Return
    2450:00:00
    4000 'Resultaten op scherm
    4010 F$ = "RESULTS": GoSub 400: Color 3, 0, 0
    4020 LOCATE 5, 5: Print "INKNUMBER : ";: Color 12, 0, 0: Print BASIS$(1);: Color 3, 0, 0: Print Tab(46); "REFERENCE TEMPERATURE : ";
    4030 Color 12, 0, 0: Print BASIS$(3) + ".0": Color 3, 0, 0
    4040 Print Tab(5); "ROD : ";: Color 12, 0, 0: Print STAAF$;: Color 3, 0, 0: Print Tab(46); "MEASURED TEMPERATURE : ";: Color 12, 0, 0
    4050 Print USING; "##.#"; Val(BASIS$(4)): Color 3, 0, 0
    4055 Print Tab(5); "GAPCLEARANCE : ";: Color 12, 0, 0: Print "0.0" + BASIS$(6) + " mm": Color 3, 0, 0
    4060 LOCATE 12, 23: Print "APP. VISC. 2500 S-1 ";: Color 12, 0, 0: Print USING; "######.##"; V;: Print " Pa.s": Color 3, 0, 0
    4070 LOCATE 13, 23: Print "YIELD VALUE 2.5 S-1 ";: Color 12, 0, 0: Print USING; "######.##"; D;: Print " Pa": Color 3, 0, 0
    4080 LOCATE 14, 23: Print "SHORTNESS ";: Color 12, 0, 0: Print USING; "######"; H: Color 3, 0, 0: LOCATE 15, 23
    4090 Print "CORRELATION COEFF. ";: Color 12, 0, 0: Print USING; "#.####"; R: Color 6, 0, 0
    4100 LOCATE 10, 22: Print String$(37, "_"): For K = 1 To 6: LOCATE 10 + K, 21: Print "|": LOCATE 10 + K, 59: Print "|": Next
    4110 LOCATE 16, 22: Print String$(37, "_"): Color 2, 0, 0: LOCATE 22, 1
    4120 Print String$(80, "-");
    4130 Print " 1 = PRINT 2 = NEW CALCULATION 3 = EXIT"
    4140 A$ = INPUT$(1): IF ASC(A$) < 49 OR ASC(A$) > 51 THEN 4140
    4150 If A$ = "1" Then GoSub 5000: GoTo 4140
    4160 Return
    4170:00:00
    5000 'Resultaten naar printer
     
     
    5010 LPRINT TAB(32); "LARAY VISCOSITY": LPRINT TAB(32); STRING$(17, "-")
    5020 LPRINT CHR$(10): LPRINT "DATE : "; DATUM$;
    5025 LPRINT TAB(55); "GAPCLEARANCE : 0.0" + BASIS$(6) + " mm"
    5030 LPRINT "INKNUMBER : "; BASIS$(1): LPRINT "REFERENCE TEMP. : "; BASIS$(3) + ".0": LPRINT "ACTUAL TEMP. : ";
    5040 LPRINT USING "##.#"; VAL(BASIS$(4)): LPRINT "USED ROD : "; STAAF$
    5050 LPRINT CHR$(10): LPRINT "DATA : WEIGHT ";
    5060 FOR K = 1 TO N: LPRINT USING "##.##"; G(K); : LPRINT " "; : NEXT: LPRINT "KG.": LPRINT TAB(21); "DROPTIME ";
    5070 FOR K = 1 TO N: LPRINT USING "##.##"; T(K); : LPRINT " "; : NEXT: LPRINT "SEC.": LPRINT CHR$(10): LPRINT "RESULT :"
    5080 LPRINT TAB(21); "APP. VISC. 2500 SEC-1 "; : LPRINT USING "######.##"; V; : LPRINT " Pa.s": LPRINT TAB(21); "YIELD VALUE 2.5 SEC-1 ";
    5090 LPRINT USING "######.##"; D; : LPRINT " Pa": LPRINT TAB(21); "SHORTNESS "; : LPRINT USING "######"; H
    5100 LPRINT TAB(21); "CORRELATION COEFFICIENT "; : LPRINT USING "#.####"; R
    5110 LPRINT CHR$(10): LPRINT "THE RESULT IS INCORRECT IF THE DE CORRE"; "LATION COEFFICIENT IS LOWER THAN 0.9990"
    5120 LPRINT Chr$(10): LPRINT "CALCULATION METHOD : REGRESSION ANALYSIS": LPRINT "USED MODEL : POWER LAW"
    5130 Return
    voici un petit programme en Qbasic j'aimerai trouver une version en VB je n'arrive pas à le traduire correctement en VB.
    pouvez vous m'aider.
    je vous remercie
    le but du programme est de calculer la viscosité à l'aide de la loi de force à l'aide d'un viscosimètre laray.
    je vous remercie
    Jean-Louis

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    si tu peux nous dire ce que ca fait dans le détail, on peut te le remettre en vb
    parce que ca remonte à loin quand meme ^^ et je comprends pas toutes les lignes
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    J'ai pas non plus touche à du QB depuis des lustres, mais signales nous les commandes qui te posent probleme.
    En parcourant rapidement des yeux, ca n'a pas l'air d'etre trop complique.
    Par contre, la methodologie d'ecriture sera surement totalement differente.

  4. #4
    Membre averti
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Par défaut
    Woaaah dure la syntaxe !!
    le but du programme est de calculer la viscosité à l'aide de la loi de force à l'aide d'un viscosimètre laray.
    Pardon ?


  5. #5
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par McTonio Voir le message
    Woaaah dure la syntaxe !!
    C'etait le bon vieux temps du TOUT en ligne de commande, comme le systeme d'exploitation, qui ignorait ce que plantage voulait dire (sauf si on mettait les mains n'importe ou en adressage assembleur )
    Il faut aussi dire que point de vue syntaxe, on n'utilisait qu'un nombre infime de commandes et on se debrouillait avec ca.
    ... que de souvenirs ...

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Bonjour,
    Une démarche consisterait à isoler dans ton code les mots clef.

    1) GoTo ou GoSub <n° ligne> se remplacera par l'appel à une procédure ou fonction (jusqu'a la ligne Return), il te faudra une procédure par gosub different dans laquelle tu mettra le code traduit. La ligne 1170 qui utilise un goto vers cette même ligne se remplace par un msgbox de type Yes/No
    2) Un Print sans demande à l'utilisateur se remplacera par l'appelle à la console sous dotnet (voir MSDN)
    3) Visiblement, quand il y a un symbole ":", ça signifie qu'il y a une autre instruction derrière. Sous VB, tu l'écris à la ligne suivante, ça deviendra déjà nettement plus lisible (avec l'indentation)
    4) Le code entre For et Next est assez proche du VB, facile à traduire mais sur plusieurs lignes. Idem pour l'affectation de valeurs à des variables simple ou de type Tableau et le If THEN ELSE se passe de commentaire .
    5) PRINT suivi de INPUT semble pouvoir se remplacer par l'appel à un msgbox


    Maintenant, reste à voir précisément le comportement de :
    - LOCATE X,Y
    - Color X, Y, Z
    - Le symbole $ derrière une variable (semble être un lien vers une action avec le clavier ?)

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Pb BDE suite a passage en Windows 2000 pro
    Par ARIF dans le forum Paradox
    Réponses: 4
    Dernier message: 18/11/2002, 11h39
  3. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15
  4. [VB6]Passage par référence d'une prop. d'objet à une fct
    Par -gYs- dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 02/09/2002, 08h55
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

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