Converir une ligne

jeremy4920 Messages postés 28 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 22 juin 2004 - 11 juin 2004 à 12:23
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009 - 11 juin 2004 à 13:49
exemple:
toto va a la mer
il fait beau

ce que je veu faire
mer va toto la a
beau fait il

je veu lire puis convertir la premiere ligne, retour chariot, lire puis convertir la 2e ligne

comment faire?

3 réponses

ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
11 juin 2004 à 13:23
tu ne dis pas comment tu lis (un fichier texte?) ni comment tu convertis (inversion?)

Dim i As Integer
Dim chaine As String
Dim mots As Variant
Dim m As Integer
Dim nvelleligne As String

i = FreeFile
Open "c:\test.txt" For Input As #i
Do Until EOF(i)
Line Input #i, chaine
mots = Split(chaine, " ")
nvelleligne = ""
For m = UBound(mots) To 0 Step -1
nvelleligne = nvelleligne + mots(m) + " "
Next
MsgBox nvelleligne
Loop
Close #i
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 29
11 juin 2004 à 13:24
Si c'est dasn un ficheir texte, voici un ex de code
Dim Ligne as String, T() as String, i as long,Buffer as string
Open "Monfichier.txt" for input as #1
Open "txt.reihcif" for output as #2
While not eof(1)
  Line input #1,Ligne
  t = split(Ligne," ")
  buffer = ""
  For i = ubound(t) to lbound(t) step -1
    Buffer = buffer & t(i) & " "
  Next
  Print #2, trim$(buffer)
Wend
Close


Christophe R.
0
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
11 juin 2004 à 13:49
Salut !

Je pense qu'il faudrait placer chaque ligne dans un tableau pour séparer les différentes lignes, puis replacer chaque mots de la ligne dans un autre tableau pour le convertir.
Pour couper le texte ligne par ligne utilise ce code :

'Intialise le tableau
Dim Lignes() As String
ReDim Lignes(0)

'Tant qu'il y a des retours a la ligne
Do Until InStr(1, Text1, Chr(13), 1) = 0
'Ajoute une dimension au tableau
ReDim Preserve Lignes(UBound(Lignes) + 1)
'Inscrit le tout le texte jusqu'au retour a la ligne
Lignes(UBound(Lignes)) = Left$(Text1, InStr(1, Text1, Chr(13), 1) - 1)
'Enlève le texte qui vient d'être inscrit dans le tableau - Chr(13) et Chr(10)
Text1 = Right$(Text1, Len(Text1) - InStr(1, Text1, Chr(13), vbTextCompare) - 1)
Loop

'Prend le dernier morceau de texte qui ne contient pas de retour a la ligne
ReDim Preserve Lignes(UBound(Lignes) + 1)
Lignes(UBound(Lignes)) = Left$(Text1, Len(Text1))

'Eventuellement pour afficher le texte contenu dans le tableau
For i = 1 To UBound(Lignes)
MsgBox Lignes(i)
Next i

Dans cet exemple les variables ne sont pas déclarées explicitement et le texte est contenu dans une textbox (Text1). Pour découper le texte en fonctions des espaces tu peut utiliser le même code mais en remplacant Chr(13) par vbkeyspace, fait attention ca ici il faut supprimer 2 caractères à la fois tandis que pour les espaces un seul suffit. Après tu fait ton propre mélange !

@+ Neria
0