UNICODE - Fichier sšŠquentiel

Résolu
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012 - 2 déc. 2008 à 15:08
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012 - 2 déc. 2008 à 15:51
Salut,
J'ai ce genre de fichier :
1 §©§Ñ§á§Ý§Ñ§ß§Ú§â§à§Ó§Ñ§ß§Ú§Ö
2 §°§ä§Ü§â§í§ä§à
3 Personnal
4 §±§à§Ü§Ñ§Ø§Ú§ä§Ö §Ú§ß§æ§à§â§Þ§Ñ§è§Ú§ð §á§à§Õ §Ú§Þ§Ö§ß§Ñ§Þ§Ú
5 §£§í§Û§Õ§Ú§ä§Ö

pour lire un fichier :
            Dim b()  As Byte
            Open sFile For Binary Access Read As nNumFile
               ReDim b(LOF(nNumFile))
               Get nNumFile, , b
            Close nNumFile


puis je souhaite placer chaque ligne dans un tableau comme :
tbMsgID(1)="§©§Ñ§á§Ý§Ñ§ß§Ú§â§à§Ó§Ñ§ß§Ú§Ö"
tbMsgID(2)="§°§ä§Ü§â§í§ä§à"

Et toute la difficultšŠ est lš€  :
            sMessage = b
            sMessage = Replace$(b, uBOM, "")
            j = InStrB(sMessage, vbCrLf)
            Do While j > 0
                s = MidB(sMessage, 1, j)
                i = InStrB(s, vbTab)
                If Not i = 0 Then
                    nID = CInt(StrConv(MidB(s, 1, i - 1), vbFromUnicode))  ****
                    If nID > UBound(tbMsgID) Then ReDim Preserve tbMsgID(nID)
                    tbMsgID(nID) = Trim$(MidB(s, i + 2)) 's
                End If
                sMessage = MidB(sMessage, j + 1)
                j = InStrB(sMessage, vbCrLf)
            Loop

Mais ošŽ j'ai mis **** , s=?1 et donc incapable de renvoyer la valeur numšŠrique !
Un Dieu VB rode dans le coin ?
par avance merci (ca fait 2 jours que j'y suis et je suis HS)

3 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 déc. 2008 à 15:36
pas de souci, avec :

Dim b() As Byte
Dim xsLines() As String
Open "c:\a.txt" For Binary Access Read As #1
ReDim b(LOF(1) - 1)
Get #1, , b
Close #1

xsLines = Split(b, vbCrLf)
For i = 0 To UBound(xsLines)
...
Next i


enfin, me semble ^^
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 déc. 2008 à 15:25
gaffe au
ReDim b(LOF(nNumFile))

=> ReDim b(LOF(nNumFile)-1)
0
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012
2 déc. 2008 à 15:51
Yes ! merci beaucoup RendField (ca fait que 2 jours que je tourne...)

            b = Mid(b, 2)
            Dim j As Integer
            Dim xsLines() As String
            xsLines = Split(b, vbCrLf)
            For i = 0 To UBound(xsLines) - 1
                    j = InStrB(xsLines(i), vbTab)
                    nID = Val(MidB(xsLines(i), 1, j - 1))
                    If nID > UBound(tbMsgID) Then ReDim Preserve tbMsgID(nID)
                    tbMsgID(nID) = Trim(MidB(xsLines(i), j + 2))
            Next i
0
Rejoignez-nous