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

WinDev Discussion :

Conversion VB vers Windev [WD16]


Sujet :

WinDev

  1. #1
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut Conversion VB vers Windev
    Bonjour,

    Je bute sur une conversion d'un code en VB vers Windev.

    Voici la fonction entière. aValue = "0,0,RADIO 1 "
    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
     
    Private Function SendRT(ByVal aValue As String, ByVal aAppend As Boolean) As Boolean
    Dim Msg As String
    Dim Flags As Byte
    Dim ParamList() As String
     
        Msg = ChrB(&HA) & ChrB(CurDSN) & ChrB(CurPSN)
        ' Empty RT
        If aValue = "" Then
            Msg = Msg & ChrB(0)
        Else
            ' Not empty, so
            ParamList = Split(aValue, ",", 3)
            If UBound(ParamList) <> 2 Then
                ErrorMsg = "RT need 3 params: Nb Repeat [0-F], Flag A/B [0-1], Message !"
                Exit Function
            End If
            If aAppend Then Flags = Flags Or &H40
            Flags = Flags Or ((ParamList(0) And &HF) * 2)
            If ParamList(1) <> 0 Then Flags = Flags Or 1
            If Len(ParamList(2)) > 64 Then ParamList(2) = Left(ParamList(2), 64)
            Msg = Msg & ChrB(Len(ParamList(2)) + 1) & ChrB(Flags) & StrConv(ParamList(2), vbFromUnicode)
        End If
        SendRT = SendMsg(Msg)
    End Function
    Je n'arrive pas à convertir plus précisément ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If aAppend Then Flags = Flags Or &H40
    Flags = Flags Or ((ParamList(0) And &HF) * 2)
    If ParamList(1) <> 0 Then Flags = Flags Or 1
    Je n'ai pas trouvé dans les docs VB6 de if then or...

    Je ne vois pas bien comment convertir Dim Flags As Byte, j'ai mis pour l'instant nMED est entier sans signe sur 1 ?!

    Vous avez une idée svp ?

    Merci à tous

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Le If, Then, Or n'existe pas en VB, tu a été enduit d'erreur avec les opérations logiques ET/OU/XOR/...

    Il faut lire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Si aAppend ALORS Flags = OuBinaire(Flags, HexaVersEntier("40"))
    Flags = OuBinaire(Flags, ((EtBinaire(ParamList(0), HexaVersEntier("F") * 2)
    Si ParamList(1) <> 0 ALORS Flags = OuBinaire(Flags,1)
    A tester bien sûr (j'ai un doute sur les conversions Héxa).
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Merci pour ton code frenchsting,

    Je l'ai adapté et je me retrouve avec ceci ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nMED = OUBinaire(nMED, (ETBinaire(Val(SAI_Num), HexaVersEntier("F")) * 2))
    SI Val(SAI_A_B) <> 0 ALORS nMED = OUBinaire(nMED, 1)
    La première ligne ne m'est finalement pas utile, car dans ma situation aAppend = faux en permanence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SI aAppend ALORS nMED = OUBinaire(nMED, 0x40)
    J'aimerais toutefois savoir si j'ai bien déclarer ma variable nMED... Selon l'aide de conversion C en Windev, Byte donne un entier sans signe sur 1. Est-ce juste ?

    Pour info, le travail sur le message name RT dans la doc (page 31) : ftp://ftp.rds.org.uk/pub/acrobat/s490e51.pdf

    On vois bien la structure du premier MED avec les différents bits... Mais tout cela est bien flou pour un novice comme moi en la matière.

    Merci.

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Moi je mettrais un entier sans signe sur 2 octets : dans le OuBinaire le premier octer vaut 4 (Héxa) et le second vaut 0 (Héxa).
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

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

Discussions similaires

  1. Conversion Unix vers DOS...
    Par nicosfly dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2008, 17h53
  2. [Windev Mobile 10] Conversion RTF vers Texte
    Par LordBob dans le forum Windev Mobile
    Réponses: 2
    Dernier message: 12/07/2006, 14h37
  3. conversion Access vers SQL
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/03/2004, 13h57
  4. [langage] conversion décimal vers hexa
    Par chipster dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2004, 16h05
  5. Conversion Timestamp vers varchar
    Par stejutt dans le forum SQL
    Réponses: 4
    Dernier message: 08/01/2004, 08h46

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