Manipulation fichier TXT

Résolu
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009 - 24 juil. 2006 à 12:28
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 - 24 juil. 2006 à 15:21
Salut tout le monde!

Voici ce que je cherche à faire en VB, je ne sais pas comment m'y prendre :

j'ai un fichier texte, je veux aller lire la dernière ligne, dans cette ligne, je souhaite récupérer séparément les caractères 51à71 et les caractères 72à86.

Comment est ce que je peux faire cela??

Merci d'avance pour votre aide!!

10 réponses

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
24 juil. 2006 à 15:21
Ok, de rien. Pense à valider la réponse.


 


@+
3
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
24 juil. 2006 à 13:23
Simple, copie ce code :

Dim sFile As String, sLine As String
Dim sVal1 As String, sVal2 As String



'Chemin du fichier à ourvir

sFile = "c:\....\.txt"
'On ouvre le fichier
Open sFile For Input As #1
    'On récupère toutes les lignes une par une
    Do While Not EOF(1)
        Line Input #1, sLine
    Loop
'On ferme le fichier
Close #1
'Arrivé ici sLine a forcément en valeur la dernière ligne du fichier



'On récupère donc les partie de la lignes qui nous interressent

sVal1 = Mid$(sLine, 51, 20)
sVal2 = Mid$(sLine, 72, 14)

Bonne prog ++
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 juil. 2006 à 13:29
Salut
Pas mieux

@+, Julien
Pensez:Moteur de Recherche,
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
24 juil. 2006 à 13:41
Merci beaucoup!!!
En fait je veux compiler en exe sous Visual studio, j'ai le code suivant : (Ca me sort des erreurs sur ce qui est en rouge;j'ai aussi : Open n'est pas déclaré, la fonctionnalité d'E/S de fichier est disponible dans l'espace de noms Microsoft.VisualBasic)

Imports

System.IO
Imports

System
Imports

Microsoft.VisualBasic 

Public

Class Form1

Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load

Dim sFile
As
String, sLine
As
String

Dim sVal1
As
String, sVal2
As
String

'Chemin du fichier à ourvir sFile =

"c:\....\.txt"

'On ouvre le fichierOpen (sFile)

For Input
As
(#1)

'On récupère toutes les lignes une par une

Do
While
Not EOF(1)Microsoft.VisualBasic.FileSystem.LineInput (#1)
, sLine

Loop

'On ferme le fichierClose (#1)

'Arrivé ici sLine a forcément en valeur la dernière ligne du fichier

'On récupère donc les partie de la lignes qui nous interressent sVal1 = Mid$(sLine, 51, 20)

sVal2 = Mid$(sLine, 72, 14)

End
SubEnd

Class
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
24 juil. 2006 à 13:46
Ah fallait précisé que tu étais sous .NET

Désolé je ne connais pas assez le .NET pour t'aider

Bonne prog ++
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
24 juil. 2006 à 14:05
Alors, la c'est ok, sauf que mes valeurs sont sur l'avant dernière ligne... comment supprimer la dernière ligne puis se positionner sur la derniere ensuite...?

Imports



System.IO


Imports



System


Imports



Microsoft.VisualBasic 



Public






Class
Form1


Private



Sub
Form1_Load(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles



MyBase
.Load


Dim
FIC

As



String
, sLine

As



String
=

""






Dim
sVal1

As



String
, sVal2

As



String






'Chemin du fichier à ourvir

FIC =




"D:\D071603.TXT"






'On ouvre le fichier






Using
liste

As
StreamReader =

New
StreamReader(FIC)


Do



While
liste.Peek() >= 0

'lit le prochain charactère et retourne <0 si impossible de le lire

sLine = liste.ReadLine()







Loop






'On ferme le fichier

liste.Close()







'Arrivé ici sLine a forcément en valeur la dernière ligne du fichier






'On récupère donc les partie de la lignes qui nous interressent

sVal1 = Mid$(sLine, 51, 21)


sVal2 = Mid$(sLine, 72, 15)







End



Using 








End



SubEnd





Class
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
24 juil. 2006 à 14:31
Salut,

Ajoute tes lignes dans un tableau, et lis l'avant dernière ligne de ce tableau.
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
24 juil. 2006 à 14:49
De quelle manière est ce que je peux faire ça? Il faut que je donne le séparateur ds mon code?
Apparemment, ce sont des espaces, est ce que cela a une importance si il y en a plusieurs de suite?
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
24 juil. 2006 à 15:04
Voici un bout de code qui fonctionne en VB.NET (je sais toujours pas avec quoi tu bosses...)



Dim



sReader

As
System.IO.StreamReader


Dim
filename

As



String
=

"C:\...."






Dim
ligne

As



New
ArrayList


Dim
file

As



New
System.IO.FileInfo(filename)


Dim
sVal1, sVAl2

As



String






If
file.Exists

Then

sReader = file.OpenText()







While
sReader.Peek >= 0ligne.Add(sReader.ReadLine)


End



While

sVal1 = ligne(ligne.Count - 2).Substring(51, 21)


sVAl2 = ligne(ligne.Count - 2).Substring(72, 15)







End



If
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
24 juil. 2006 à 15:19
Impecc merci beaucoup!!!
Je suis sous visual studio en .net!
0
Rejoignez-nous