PB: Tableau

cs_sinseman21 Messages postés 22 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 1 novembre 2007 - 10 juin 2004 à 09:54
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 10 juin 2004 à 11:53
Salut tout le monde,

j'aimerai remplir un tableau avec toutes les infos que j'aurai rempli dans un textbox ( sachant que le textbox est sur 5 lignes ). j'aimerai tout d'abord decouper mon textbox tout les 100 caractères et placer la chaîne de caractères découpées dans une ligne d'un tableau puis passer à la suivante. ect......
j'y connais rien en programmation de tableau, qqq'un peu m'aider!!!

merci d'avance

Benoit.vince@caramail.com

4 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
10 juin 2004 à 10:36
Dim tablo(100) As String
Dim s As String
Dim compteur As Long

compteur = 1
s = Text1.Text ' textbox multiligne nommée Text1
For i = 1 To Len(s) Step 100
If Len(s) - i >= 100 Then
tablo(compteur) = Mid(s, i, 100)
'List1.AddItem tablo(compteur)
Else
tablo(compteur) = Right(s, Len(s) - i + 1)
'List1.AddItem tablo(compteur)
End If
compteur = compteur + 1

Next i


Avec ceci, tu pourras enregistrer 101 lignes de 100 caractères en provenance de ton textbox multiligne.
J'avais placé dans ce code une ListBox pour afficher ce qui se trouve dans le tableau. Je l'ai commentée. Si tu veux "voir" le résultat, décommentes ces deux lignes et dessine une ListBox très large sur ta feuille.

Bonne prog.

Manu
cs_sinseman21 Messages postés 22 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 1 novembre 2007
10 juin 2004 à 11:16
premiere chose: merci pour ton aide

deuxieme chose: Si j'ai bien compris ton prog:
au depart tu dimensionne un tableau de 1 ligne, 1 colonne et 100 caractères par ligne ?
dans ma list il me restitue un truc de la forme:

kkkkkkkkkkkkkk||llllllllllllllllllllllllllllllllll||ddddd.....

les "||" signifiant que je suis passé à la ligne dans mon textbox.

en fait plus dur!!!!! lol:

l'aimerai que dans mon textbox multiligne
il enregistre chaque ligne mon textbox dans mon tableau
qui me decoupe chaque ligne en 100 caractères.

je m'explique:

voici mon textbox multiligne :

----------------------------------------
| kkkkkkkkkkkkkkkkkkk |
|mmmmmmmmmmm |
|vvvvvvvvvvvvv |
|---------------------------------------

voici mon tableau :

1er ligne du tableau: kkkkkkkkkkkkkkkkk
2eme ligne du tableau: mmmmmmmmmmmm
3eme ligne du tableau: vvvvvvvvvvvvvvv

si plus de 100 caracteres sur la premiere ligne alors on decoupe tous les 100 caracteres et on insere le reste dans une autre ligne du tableau.

exemple:

voici mon tableau :

1ere ligne du tableau: kkkkk........kkkkkk ( 100 caracteres)
2eme ligne du tableau: mmm....mmmm ( 100 caracteres)
3eme ligne du tableau: vvvvv....vvvvv ( 100 caracteres)
4eme ligne du tableau: kkkkkkkkk ( reste de la decoupe)
5eme ligne du tableau: mmm( reste de la decoupe)
6eme ligne du tableau: vv( reste de la decoupe)

et ainsi de suite.....

Benoit.vince@caramail.com
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
10 juin 2004 à 11:52
Je dimensionne un tableau de 101 chaines de caractères (0 à 100).
En fait, j'aurais pas dû mettre 100, parce que tu coup, tu confonds avec la longueur des chaines .. Arf zut.

Bref ...
toujours avec Text1 (TextBox) et List1 (ListBox très large)

Private Sub Command1_Click()
Dim s As String
Dim ss As String
Dim tablo() As String
Dim i As Long
Dim chaine100 As String
Dim compteur As Long

ss = Text1.Text

tablo = Split(ss, vbCrLf, , vbTextCompare)
compteur = 0
List1.Clear
For j = 0 To UBound(tablo)
    
    s = tablo(j)
    For i = 1 To Len(s) Step 100
    
        If Len(s) - i >= 100 Then
            chaine100 = Mid(s, i, 100)
            List1.AddItem chaine100, compteur
            compteur = compteur + 1
        Else
            chaine100 = Right(s, Len(s) - i + 1)
            List1.AddItem chaine100, List1.ListCount
        End If
        
    Next i

Next j
End Sub


Manu
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
10 juin 2004 à 11:53
et ainsi, le résultat est le suivant :

1ere ligne du tableau: kkk........kkkk ( 100 car)
2eme ligne du tableau: mm....mm ( 100 car)
3eme ligne du tableau: vvv....vvvv ( 100 car)
4eme ligne du tableau: kkkkkkk ( reste)
5eme ligne du tableau: mm( reste)
6eme ligne du tableau: vv( reste )

Manu
Rejoignez-nous