Function StringToCharArray(ByVal sString As String, Optional ByVal bSplitVbCrLf As Boolean = True) As String()
'sString chaîne à transformer en tableau
'bSplitVbCrLf doit-on couper les retours chariot en 2 ou non. rappel : VBCRLF = CHR(13) & CHR(10)
'StringToCharArray retourne le tableau résultat, commence à 0
If LenB(sString) Then
Dim i As Long, saResult() As String
If bSplitVbCrLf Then
' on doit couper? ok c'est le plus pratique
ReDim saResult(Len(sString) - 1)
For i = 1 To LenB(sString) - 1 Step 2
saResult((i - 1) / 2) = MidB$(sString, i, 2)
Next i
Else
' pas couper, on va vérifier à chaque fois s'il n'y a pas un 10 après un 13
Dim j As Long, sChar As String
j = 0
For i = 1 To Len(sString)
sChar = Mid$(sString, i, 1)
ReDim Preserve saResult(j)
If sChar = vbCr Then
' si 10 après, on ne coupe pas
If Mid$(sString, i + 1, 1) = vbLf Then
saResult(j) = vbCrLf
i = i + 1
Else
' carac classique, on sauve
saResult(j) = sChar
End If
Else
' carac classique, on sauve
saResult(j) = sChar
End If
j = j + 1
Next i
End If
' retour
StringToCharArray = saResult
Erase saResult
End If
End Function