Convertir un long en un string de 4 caractères (utilisation de AND,OR)

BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008 - 6 déc. 2004 à 18:25
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008 - 7 déc. 2004 à 11:24
Bonjour, voici mon code:

Public Function LongToString(lVal As Long, n As Long) As String
Dim i As Integer
Dim l() As Currency
Dim lMask As Currency, lDiv As Currency
Dim sRet As String
Dim lCar As Currency

ReDim l(1 To n)
For i = 1 To n
lDiv = 2 ^ (8 * i)
lMask = lDiv - 2 ^ (8 * (i - 1))
lCar = ((lVal And lMask) / lDiv) And &HFF
sRet = sRet & Chr$(lCar)
Next i

LongToString = sRet
End Function

Il permet de transformer un LONG en un STRING formé de 4 caractères max.
Le problème c'est qu'il indique overflow en calculant lVal And 4278190080 (lorsque n=4).
Comment ca se fait?!

merci

5 réponses

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
6 déc. 2004 à 18:52
Salut, j'ai tester ceci :

Dim totoLong As Long
    Dim totoString As String
    totoString = Format(Int(totoLong), "0000")


TotoString me retourne bien un format string des entiers du totoLong

Reste à savoir si tu veux récupérer les virgules ou pas

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
6 déc. 2004 à 19:07
Nan ce n'est pas ce que je recherche du tout! En fait un long est codé sur 4 octets. Et c'est ces octets que je cherche à récupérer
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 déc. 2004 à 19:52
Rien compris, comment tu voudrais representer les 4 octets d'un Long avec 4 caracteres ? faudrait une base de representation en 256. Va falloir installer une police de caractere tres speciale.

ciao...
BruNews, MVP VC++
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
6 déc. 2004 à 20:14
Public Function LongToString(lVal As Long, n As Long) As String
Dim i As Integer
Dim sRet As String
Dim lCar As Byte

ReDim l(1 To n)

For i = 1 To n
lCar = (lVal And 255)
sRet = Chr$(lCar) & sRet
lVal = lVal / 256
Next

LongToString = sRet

End Function

Daniel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
7 déc. 2004 à 11:24
Bha si un long est codé sur 4 octets par exemple "A56?" est un long mais sous sa "forme stoquée". C'est comme ca qu'on le stoque dans les fichiers.
0
Rejoignez-nous