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

pactodev08 7 Messages postés dimanche 1 novembre 2009Date d'inscription 15 mars 2012 Dernière intervention - 15 avril 2011 à 00:27 - Dernière réponse : pactodev08 7 Messages postés dimanche 1 novembre 2009Date d'inscription 15 mars 2012 Dernière intervention
- 17 avril 2011 à 14:47
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
****
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 15 avril 2011 à 08:32
3
Merci
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.

Merci ehjoe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de ehjoe
Meilleure réponse
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 16 avril 2011 à 17:43
3
Merci
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

Merci Calade 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de Calade
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 15 avril 2011 à 13:00
0
Merci
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
Commenter la réponse de Calade
pactodev08 7 Messages postés dimanche 1 novembre 2009Date d'inscription 15 mars 2012 Dernière intervention - 16 avril 2011 à 16:07
0
Merci
bonjour,
Je ne sais pas faire car je débute en programmation vbnet.
Merci d'avance.
Commenter la réponse de pactodev08
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 16 avril 2011 à 16:11
0
Merci
C'est tout simple.
Tu appuies sur F1 et dans la zone de saisie tu tapes "split" (sans les guillemets évidemment).


Calade
Commenter la réponse de Calade
pactodev08 7 Messages postés dimanche 1 novembre 2009Date d'inscription 15 mars 2012 Dernière intervention - 16 avril 2011 à 17:04
0
Merci
bonjour,
Donne moi un exemple car je comprend mieux avec un exemple
merci d'avance.
Commenter la réponse de pactodev08
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 16 avril 2011 à 17:13
0
Merci
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.
Commenter la réponse de ehjoe
pactodev08 7 Messages postés dimanche 1 novembre 2009Date d'inscription 15 mars 2012 Dernière intervention - 16 avril 2011 à 17:42
0
Merci
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
***
Commenter la réponse de pactodev08
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 17 avril 2011 à 06:59
0
Merci
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.
Commenter la réponse de ehjoe
pactodev08 7 Messages postés dimanche 1 novembre 2009Date d'inscription 15 mars 2012 Dernière intervention - 17 avril 2011 à 14:47
0
Merci
bonjour Joe,

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

Cordialement,
PM
Commenter la réponse de pactodev08

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.