OVH Cloud OVH Cloud

probleme tableau + split

1 réponse
Avatar
FooB
salut,

mon but :
Dans le fichier account.cfg il y a une ligne sur 2 qui contient une chaine
de caractère. la ligne qui suit chaque ligne de caractère est composé de
chiffre séparé par des virgules. chaque chiffre indique le nombre de
caractère à prendre.
je voudrais donc splitter une ligne sur 2 (les lignes ou y a les chiffres
afin de récuperer chaque chiffre) et ensuite de récupérer les caractères de
la ligne qui prècède en suivant les chiffres


ex du fichier
ligne 1 : "abcdefghijkl"
ligne 2 : "3,5,4"

le résultat est:
abc
defgh
ijkl

voici mon code
--------------------------

'variable locale
Dim iNbLine As Integer
Dim lFile As Long, iDo As Long
Dim sFile As String, sChaine() As String, sBuffer As String,
sTmpChaine() As String
Dim RC4 As New clsRC4

sFile = App.Path & "\accounts.cfg" 'chemin et nom du fichier
iNbLine = GetFileLineCount(App.Path & "\accounts.cfg") 'indique le nb de
ligne du fichier

lFile = FreeFile 'freefile
RC4.Key = "w220484" 'clée de décryptage

ReDim sChaine(0)
ReDim sTmpChaine(0)

Open sFile For Binary As lFile
sBuffer = String$(LOF(lFile), Chr$(0))
Get lFile, , sBuffer
Close lFile
sTmpChaine = Split(sBuffer, vbCrLf)

For iDo = LBound(sTmpChaine) To UBound(sTmpChaine)
ReDim Preserve sTmpChaine(UBound(sTmpChaine) + 1)
ReDim Preserve sChaine(UBound(sChaine) + 1)
sChaine(iDo) = sTmpChaine(iDo)
Next

'découpage des chaines
Dim lDo As Long, lIn As Long
Dim sSepar() As String

ReDim sUserName(0)
ReDim sExpediteur(0)
ReDim sMail(0)
ReDim sPop(0)
ReDim sLogin(0)
ReDim sPass(0)
ReDim sSmtp(0)
ReDim sFolder(0)

For lDo = 1 To iNbLine - 1 Step 2
sSepar = Split(sChaine(lDo), ",")
For lIn = LBound(sSepar) To UBound(sSepar)
ReDim Preserve sUserName(UBound(sUserName) + 1)
sUserName(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),
sSepar(lIn), InStr(sSepar(lIn), sChaine(lDo - 1))))
MsgBox sUserName(lDo)
ReDim Preserve sExpediteur(UBound(sExpediteur) + 1)
sExpediteur(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),
sSepar(lIn), InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sMail(UBound(sMail) + 1)
sMail(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1), sSepar(lIn),
InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sPop(UBound(sPop) + 1)
sPop(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1), sSepar(lIn),
InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sLogin(UBound(sLogin) + 1)
sLogin(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),
sSepar(lIn), InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sPass(UBound(sPass) + 1)
sPass(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1), sSepar(lIn),
InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sSmtp(UBound(sSmtp) + 1)
sSmtp(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1), sSepar(lIn),
InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sFolder(UBound(sFolder) + 1)
sFolder(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),
sSepar(lIn), InStr(sSepar(lIn), sChaine(lDo - 1))))
Next lIn
Next lDo


ps :pièce jointe le fichier account.cfg

Merci

1 réponse

Avatar
Bismark Prods
Pardon mais ou est la question ?

"FooB" a écrit dans le message de
news:u8$
salut,

mon but :
Dans le fichier account.cfg il y a une ligne sur 2 qui contient une chaine
de caractère. la ligne qui suit chaque ligne de caractère est composé de
chiffre séparé par des virgules. chaque chiffre indique le nombre de
caractère à prendre.
je voudrais donc splitter une ligne sur 2 (les lignes ou y a les chiffres
afin de récuperer chaque chiffre) et ensuite de récupérer les caractères


de
la ligne qui prècède en suivant les chiffres


ex du fichier
ligne 1 : "abcdefghijkl"
ligne 2 : "3,5,4"

le résultat est:
abc
defgh
ijkl

voici mon code
--------------------------

'variable locale
Dim iNbLine As Integer
Dim lFile As Long, iDo As Long
Dim sFile As String, sChaine() As String, sBuffer As String,
sTmpChaine() As String
Dim RC4 As New clsRC4

sFile = App.Path & "accounts.cfg" 'chemin et nom du fichier
iNbLine = GetFileLineCount(App.Path & "accounts.cfg") 'indique le nb


de
ligne du fichier

lFile = FreeFile 'freefile
RC4.Key = "w220484" 'clée de décryptage

ReDim sChaine(0)
ReDim sTmpChaine(0)

Open sFile For Binary As lFile
sBuffer = String$(LOF(lFile), Chr$(0))
Get lFile, , sBuffer
Close lFile
sTmpChaine = Split(sBuffer, vbCrLf)

For iDo = LBound(sTmpChaine) To UBound(sTmpChaine)
ReDim Preserve sTmpChaine(UBound(sTmpChaine) + 1)
ReDim Preserve sChaine(UBound(sChaine) + 1)
sChaine(iDo) = sTmpChaine(iDo)
Next

'découpage des chaines
Dim lDo As Long, lIn As Long
Dim sSepar() As String

ReDim sUserName(0)
ReDim sExpediteur(0)
ReDim sMail(0)
ReDim sPop(0)
ReDim sLogin(0)
ReDim sPass(0)
ReDim sSmtp(0)
ReDim sFolder(0)

For lDo = 1 To iNbLine - 1 Step 2
sSepar = Split(sChaine(lDo), ",")
For lIn = LBound(sSepar) To UBound(sSepar)
ReDim Preserve sUserName(UBound(sUserName) + 1)
sUserName(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),
sSepar(lIn), InStr(sSepar(lIn), sChaine(lDo - 1))))
MsgBox sUserName(lDo)
ReDim Preserve sExpediteur(UBound(sExpediteur) + 1)
sExpediteur(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),
sSepar(lIn), InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sMail(UBound(sMail) + 1)
sMail(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),


sSepar(lIn),
InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sPop(UBound(sPop) + 1)
sPop(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),


sSepar(lIn),
InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sLogin(UBound(sLogin) + 1)
sLogin(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),
sSepar(lIn), InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sPass(UBound(sPass) + 1)
sPass(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),


sSepar(lIn),
InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sSmtp(UBound(sSmtp) + 1)
sSmtp(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),


sSepar(lIn),
InStr(sSepar(lIn), sChaine(lDo - 1))))
ReDim Preserve sFolder(UBound(sFolder) + 1)
sFolder(lDo) = RC4.Decrypt(Mid$(sChaine(lDo - 1),
sSepar(lIn), InStr(sSepar(lIn), sChaine(lDo - 1))))
Next lIn
Next lDo


ps :pièce jointe le fichier account.cfg

Merci