maxpiton4D
Messages postés16Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention31 mai 2006
-
4 déc. 2004 à 12:51
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 2022
-
4 déc. 2004 à 17:30
hi all
je voudrais faire un prog qui efface les parenthese et ce qu'il ya a l'interieur dans un fichier
une partie du code:
je suis bloqué, il ne fait qu'une ligne !
Open "C:/bla.txt" For Input As #numfich
Text1.Text = Input(LOF(numfich), numfich)
For i = 1 To 35
truc$ = Mid(Text1.Text, i, 1) If truc$ "(" And passe True Then
MsgBox "Parenthese"
Text$ = Left(Text1.Text, i - 1)
Text2.Text = Text$
passe = False
ElseIf truc$ = Chr(13) Then
MsgBox "saut de ligne"
passe = True
End If
Next i
Salut, alors éssaye :
tu mets un listbox et un command1 dans ta form
Private Sub Command1_Click()
Dim Ligne As String
Dim Lig As String
Dim Qs As Integer
Open "c:\bla.txt" For Append As #1
Print #1, "123(456)789"
Print #1, "012(345)678"
Print #1, "234(567)890"
Print #1, "123(456789"
Print #1, "012(345678"
Print #1, "234(567890"
Close
Open "c:\bla.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
Qs = InStr(1, Ligne, "(")
If Qs > 0 Then
Lig = Left(Ligne, Qs - 1)
Qs = InStr(1, Ligne, ")")
If Qs > 0 Then
Ligne = Lig & " " & Right(Ligne, (Len(Ligne) - Qs))
Else
Ligne = Lig
End If
End If
List1.AddItem Ligne
Loop
Close
Kill "c:\bla.txt"
Open "c:\bla.txt" For Append As #1
For rt = 1 To List1.ListCount
List1.ListIndex = rt - 1
Print #1, List1.Text
Next rt
Close
End Sub
Au départ ton fichier avait :
123(456)789
012(345)678
234(567)890
123(456789
012(345678
234(567890
Et à la fin il est comme ça:
123 789
012 678
234 890
123
012
234
Re..
alors le + chiant c'est le instr
par ex:
ligne = "12345(789"
Qs = InStr(1, Ligne, "(")
Qs sera = 6
veux dire que Qs = au sixième chr en commencant par le n°1 (" InStr(1,...")
si "(" n'éxiste pas dans la phrase Qs sera = 0
apres t'as kill fichier.txt
(supprime le fichier)
et puis il le recondtruit avec ce qu'ya sur la list1
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 4 déc. 2004 à 17:30
ce code tourne et il est plus court
Private Sub Form_Load()
Dim MyNumFile As Integer
Dim Contenuligne As String
Dim chaine As String
Dim a As Integer
Dim b As Integer
MyNumFile = FreeFile
Open "c:\new.txt" For Input As #MyNumFile
Do While Not EOF(MyNumFile)
Line Input #MyNumFile, Contenuligne
'Si on fait:
'if InStr(1, Contenuligne, "("): And InStr(1, Contenuligne, ")")
'Ca ne marche pas allez savoir pourquoi a InStr(1, Contenuligne, "("): b InStr(1, Contenuligne, ")")
If a >= 1 And b >= 1 Then
chaine = Mid(Contenuligne, InStr(1, Contenuligne, "("), _
(InStr(1, Contenuligne, ")") - (InStr(1, Contenuligne, "(")) + 1))
Contenuligne = Replace(Contenuligne, chaine, " ")
End If
List1.AddItem Contenuligne
Loop
End Sub