Split d'une chaîne à une taille fixée [Résolu]

Signaler
Messages postés
10
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
18 mars 2010
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour,

J'écris une procédure d'export des données en VBA sous Access vers un fichier plat.
Je souhaite exporter un champ Mémo en le taillant à une largeur fixe (72 caractères par ligne).
Pour cela je souhaite passer par un tableau de String.
1) Existe-t-il une fonction équivalente à Split ?

J'utilise Left et Mid mais je ne connais pas la dimension de mon Tableau.
2) Comment définir la variable "Dim Tableau() as String" ?

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
de tête, faire un truc genre :

Chaine = "     "

Dim Tableau() as String
Dim nCount As Long

nCount = Len(Chaine)\72
Redim Tableau(nCount-1)

For i = 0 to nCount -1
    Tableau(i) = Mid$(Chaine, 1+i*72, 72)
Next



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
10
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
18 mars 2010

Merci Renfield et bravo pour ta rapidité (en moins d'1/4 heure).
Je ne connaissais pas la l'instruction ReDim.
Sinon il n'est pas nécessaire de mettre "-1".
Voici la version finale :

Public Sub CoupeChaine(Chaine As String)
  Dim Tableau() as String
  Dim nCount As Long

  nCount = Len(Chaine)\72
  Redim Tableau(nCount)

  For i = 0 to nCount
    Tableau(i) = Mid$(Chaine, 1+i*72, 72)
  Next
End Sub
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
-1 ? pour pas avoir la dernière case vide (une case en trop)

vu que l'index du tableau commence à 0
si tu veux par exemple 5 cases,

il te faut bien aller de 0 à 4

remet donc ce -1 si cela ne gène pas ton code (pas testé)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp