Bonjour,
je cherche une solution, pour découper un fichier texte de ce type de façon simple.
Puis ensuite sauvegarder ce qui ce trouve entre (exemple:"ams" et "***") en donnant pour extension à mon fichier sauvegarder le premier mot du bloc (donc ams) idem pour les autre bloc trouver.
Je ne sais pas en quel langage tu veux ça (je connais mal ce forum), si c'est du vb6 ou vbNet je peux ?
Tu ne dis pas non plus ce que tu sais faire, faut-il simplement te montrer comment découper la chaîne, tu sauras faire les fichiers, ou tout te faire (ce qui n'est pas un problème) ?
Le but du jeu étant de développer, tu commences par écrire ton code, à le tester, à regarder éventuellement pourquoi il ne marche pas et si tu ne trouves pas, alors là, mais là seulement tu viens nous trouver.
Ah tu ne connais pas du tout, mais alors c'est trop compliqué, y a un paquet de boulot dans ce que tu veux faire, au moins 30 minutes de code, et si tu ne connais absolument pas tu ne va pas comprendre, faudrait déjà commentcer par apprendre la manipulation des fichiers.
Découper un fichier texte, il existe ou pas, on ne sait pas.
Tester sa présence, ou le créer et le charger
Le lire, le découpe
Créer d'autres fichier avec certains datas du premier, c'est pas difficile mais y a du boulot là !
Je te ferais ça quand j'aurais un trou (temporel)
Ton fichier : il existe ou pas, et il contient quoi ?
bonjour,
Mon fichier existe car il peut être de différente taille.
Ce sont des fichiers de commandes clients.
Selon les articles il arrive dans des ordres différent.
Il me faut absolument les séparés.
Encore une petite chose si mon fichier contient plusieurs fois (DRS)il me faut récupéré l'ensemble dans le même fichier
Donc sauvegarder un fichier: toto.drs avec ce contenu. etc...
' coupeFichier
Option Explicit On
Public Class Form1
'
' OBJETS A METTRE =
' form1 + button1 + listbox1 + textbox1
' Mettre le nom du fichier d'origine dans le TextBox1
'
Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBox1.Sorted = False
ListBox1.Items.Clear()
Try ' ouvre fichier
Dim p As New System.IO.StreamReader(CStr(My.Application.Info.DirectoryPath & "" & TextBox1.Text))
While p.Peek() >= 0 ' lecture
ListBox1.Items.Add(Trim(p.ReadLine()))
End While
p.Close()
Catch ex As Exception
Dim a As String
a = "Fichier introuvable : " & TextBox1.Text & vbLf & vbLf
a = a & "Le fichier doit se trouver dans le répertoire bin\debug\ de votre application" & vbLf & vbLf
a = a & "Remédier, saisir le bon nom dans le textbox avant de valider" & vbLf
MsgBox(a, vbExclamation)
TextBox1.Focus()
Exit Sub
If ListBox1.Items.Count < 2 Then
MsgBox("Fichier vide " & vbLf, vbExclamation)
TextBox1.Focus()
Exit Sub
End If
End Try
End Sub
Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
Dim j As Integer ' création des fichiers
For i = 0 To ListBox1.Items.Count - 1 ' fichier sauf nom "DRS"
Select Case ListBox1.Items(i)
Case Is <> "DRS"
Dim p As New System.IO.StreamWriter(CStr(My.Application.Info.DirectoryPath & "" & ListBox1.Items(i) & ".txt"))
For j = i + 1 To ListBox1.Items.Count - 1
p.WriteLine(ListBox1.Items(j))
If ListBox1.Items(j) = "***" Then
p.Close()
i = j
Exit For
End If
Next j
Case Is = "DRS"
For j = i + 1 To ListBox1.Items.Count - 1
If ListBox1.Items(j) = "***" Then
i = j
Exit For
End If
Next j
End Select
Next i
' fichier seulement de nom "DRS"
Dim q As New System.IO.StreamWriter(CStr(My.Application.Info.DirectoryPath & "\DRS.txt"))
Dim ecrit As Boolean = False
For i = 0 To ListBox1.Items.Count - 1
If ListBox1.Items(i) "DRS" Then ecrit True
If ecrit = True Then q.WriteLine(ListBox1.Items(i))
If ListBox1.Items(i) "***" Then ecrit False
Next i
q.Close()
Dim lgr As Integer = FileLen(My.Application.Info.DirectoryPath & "\DRS.txt")
If lgr < 7 Then Kill(My.Application.Info.DirectoryPath & "\DRS.txt")
MsgBox("Créations de fichiers terminée " & vbLf, vbExclamation)
End
End Sub
End Class