Couper un fichier texte et sauvegarder les portions de textes [Résolu]

Signaler
Messages postés
7
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2012
-
Messages postés
7
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2012
-
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.

Merci d'avance!

AMS
M_0001
1500
1000
500
1
ivoire
***
BLT
800
500
1
jaune
1
****

10 réponses

Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Bonjour,

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) ?

Au plaisir, cordialement.

Joe.
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
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.

Sinon tu n'apprendras jamais.


Calade
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Bonjour,

Si ton fichier texte n'est pas trop gros et que tu connais le/les caractère(s) (retour charriot ?), regarde la fonction Split.

Après il te suffira de faire un for...Next dans ton tableau.


Calade
Messages postés
7
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2012

bonjour,
Je ne sais pas faire car je débute en programmation vbnet.
Merci d'avance.
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
C'est tout simple.
Tu appuies sur F1 et dans la zone de saisie tu tapes "split" (sans les guillemets évidemment).


Calade
Messages postés
7
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2012

bonjour,
Donne moi un exemple car je comprend mieux avec un exemple
merci d'avance.
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Bonjour,

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 ?

Dans cette attente, au plaisir.

Cordialement.
Messages postés
7
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2012

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...

Exemple:
M_0001
1500
1000
500
1
ivoire
***
M_0002
1500
1000
500
1
ivoire
***
M_0003
1500
1000
500
1
ivoire
***
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Bonjour,

Voici le code testé :

' 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

Cordialement.

Joe.
Messages postés
7
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2012

bonjour Joe,

Merci pour ton aide.
Je débute en vbnet, mais je compte bien apprendre.

Cordialement,
PM