Converir une ligne

Signaler
Messages postés
28
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
22 juin 2004
-
Messages postés
319
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
16 février 2009
-
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

Messages postés
336
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
22 février 2019
1
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
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
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.
Messages postés
319
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
16 février 2009

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