Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Urgent : lecture et écriture dans fichiers text [ Archives Visual Basic / Fichier / Disque ] (jl)

vendredi 3 août 2001 à 00:46:13 | Urgent : lecture et écriture dans fichiers text

jl

Problème :

- j'ai un fichier A qui contient des références :
345
987
587
345
345
987
100
etc
- je veux lire le fichier A et créer un fichier B résultant
contenant la référence trouvée dans A et le nombre de fois que l'on a trouvé cette référence :
345 3
987 2
587 1
100 1

je ne vois pas comment faire cela simplement. Si quelqu'un a déjà fait ou a une idée, ce serait super simpa de m'aider.
merci d'avance, jl

dimanche 5 août 2001 à 12:04:33 | Re : Urgent : lecture et écriture dans fichiers text

JamelB

-------------------------------
Réponse au message :
-------------------------------
1 - créer un nouveau projet avec 1 feuille nommée frmMain
2 - créer 2 ListBox lstfrmMain(0) et lstfrmMain(1)
3 - créer 2 boutons de commande cmdfrmMain(0) et cmdfrmMain(1)
4 - caption de cmdfrmMain(0) = "Ouvrir" Caption de cmdfrmMain(1) = "Quitter"
5 - Dans le code des boutons de commande ajouter ce code :
Private Sub cmdfrmMain_Click(Index As Integer)
Dim Trouvé As Boolean
Dim CanalLibre As Integer, i As Integer, Quantité As Integer
Dim Chaine As String
Select Case cmdfrmMain(0).Caption
Case "Ouvrir"
'Récupérer un canal libre pour l'ouverture du fichier
CanalLibre = FreeFile
'Ouvrir le fichier en lecture
Open App.Path & "\a.txt" For Input As #CanalLibre
'Faire tant qu'il reste des données
Do While Not (EOF(CanalLibre))
'Récupérer les valeurs et les ajouter à la liste
Line Input #CanalLibre, Chaine
frmMain!lstfrmMain(0).AddItem Chaine
Loop
'Changer la propriété "Caption" du bouton de commande
frmMain!cmdfrmMain(0).Caption = "Trier"
Close #CanalLibre
Case "Trier"
Do While frmMain!lstfrmMain(0).ListCount <> 0
'Prendre les éléments de la liste
Chaine = frmMain!lstfrmMain(0).List(0)
For i = 0 To frmMain!lstfrmMain(1).ListCount - 1
If Left(frmMain!lstfrmMain(1).List(i), 3) = Chaine Then
Trouvé = True
Exit For
End If
Next i
If Trouvé = False Then
frmMain!lstfrmMain(1).AddItem Chaine & Chr(9) & "1"
Else
Quantité = Val(Right(frmMain!lstfrmMain(1).List(i), 1)) + 1
frmMain!lstfrmMain(1).AddItem Chaine & Chr(9) & Trim(Str(Quantité))
frmMain!lstfrmMain(1).RemoveItem i
End If
frmMain!lstfrmMain(0).RemoveItem 0
Trouvé = False
Loop
'Changer la propriété "Caption" du bouton de commande
frmMain!cmdfrmMain(0).Caption = "Enreg"
Case "Enreg"
CanalLibre = FreeFile
'Créer le fichier final
Open App.Path & "\b.txt" For Output As #CanalLibre
For i = 0 To frmMain!lstfrmMain(1).ListCount - 1
Chaine = frmMain!lstfrmMain(1).List(i)
Print #CanalLibre, Chaine
Next i
Close #CanalLibre
End Select
If Index = 1 Then
Unload Me
End If
End Sub

Prévoyez un fichier texte a.txt dans le dossier du programme contenant les références
Dans l'espoir d'avoir aidé.
Cordialement
Jamel Bennadja

lundi 6 août 2001 à 00:34:00 | Re : Urgent : lecture et écriture dans fichiers text

jl

J'ai travaillé ce week-end sur le sujet et ai trouvé la solution suivante:
Elle est basée sur le principe suivant :

j'ai un fichier A.txt d'origine (les ref font 3 de long)
je crée l'entête du fichier résultant B.txt
je duplique A.txt en temp.txt

je commence à lire A
je regarde dans B si la ref existe; si c'est le cas, je n'en tiens plus compte, sinon,
je lis temp et compte les ref identiques
J'enregistre le résultat dans B
Voici pour le principe.

Ci dessous le code, il te suffit juste de créer une forme avec un bouton (Start) dessus et d'y recopier ce source.
Le différents fichiers seront dans "app.path".

Public Sub Start_click()

'Création du fichier résultant (REF, NB of REF)
Set fso = CreateObject("Scripting.FileSystemObject")
Set a = fso.CreateTextFile(App.Path & "\B.Txt")
a.writeline ("REF ; Nb ")
a.writeline ("----;----")
a.Close
DoEvents

'Recopie le fichier d'origine
Dim fso3
Set fso3 = CreateObject("Scripting.FileSystemObject")
fso3.CopyFile (App.Path & "\A.txt"), (App.Path & "\temp.Txt")

' on ouvre le fichier d'origine A
Open (App.Path & "\a.txt") For Input As #1
While Not EOF(1)
NOCOUNT = False
' On récupère la reférence
Line Input #1, REF
REF1 = REF
' On lit le fichier résultant pour voir si cette référence a été trouvée précédemment
Open App.Path & "\B.txt" For Input As #3
While Not EOF(3)
Line Input #3, REFCOMP
' Si on trouve, on set NOCOUNT à true
' Les ref sont de longueur fixe = à 3
If REF1 = Left(REFCOMP, 3) Then
NOCOUNT = True
GoTo xx
End If
Wend
xx:
Close (3)
NBREF = 0
' On lit le fichier dupliqué (temp) et on compte
Open App.Path & "\temp.txt" For Input As #2
While Not EOF(2)
Line Input #2, BREF1
If BREF1 = REF1 Then
NBREF = NBREF + 1
End If
Wend
Close (2)
If NOCOUNT = False Then
' si c'est la première fois que l'on a la ref, alors on enregistre la résultat du compte dans B
DataSauve = REF1 & " ; " & NBREF
Dim nFreeFile As Integer
nFreeFile = FreeFile
Close #nFreeFile
Open (App.Path & "\b.txt") For Append As #nFreeFile
Print #nFreeFile, DataSauve
Close #nFreeFile
End If
Wend
Close (1)

' suppression du fichier dupliqué
Dim fso2
Set fso2 = CreateObject("Scripting.FileSystemObject")
fso2.deletefile (App.Path & "\temp.txt")

End

End Sub



-------------------------------
Réponse au message :
-------------------------------

Problème :

- j'ai un fichier A qui contient des références :
345
987
587
345
345
987
100
etc
- je veux lire le fichier A et créer un fichier B résultant
contenant la référence trouvée dans A et le nombre de fois que l'on a trouvé cette référence :
345 3
987 2
587 1
100 1

je ne vois pas comment faire cela simplement. Si quelqu'un a déjà fait ou a une idée, ce serait super simpa de m'aider.
merci d'avance, jl



Cette discussion est classé dans : fichier, lecture, urgent, fichiers, écriture


Répondre à ce message

Sujets en rapport avec ce message

écriture et lecture d'un fichier texte [ par mfaure ] Bonjour à tous je suis en train de faire une macro qui me permet de renseigner des paramètres concernat des fichiers dans un fichier texte. Je suis c Lecture de plusieurs fichiers csv [ par Claire7799 ] Bonjour, je débute en VB sous excel et je suis déjà confrontée à un problème: je souhaite ouvrir plusieurs fichiers.csv dans des feuilles excel afin e lecture et écriture sur fichier texte [ par larbaletier ] Salut tout le monde voici mon code, il alimente trois ComboBox (vrp,client,profil). Pour la lecture pas de problème  par contre lorsque je renseigne u vb et lecture des fichiers [ par gladiator ] salut tout le monde mon pronleme et le suivant part1: comment je peux lire le contenu d'un fichier qlq (par exemple un .doc) avec le vb. part2 VB et la lecture d'un fichier "URGENT" [ par bouboussjunior ] comment faire pour afficher le contenu d'un fichier .txt dans une textbox de mon programme ??c'est assez urgentj'espere avoir des réponses rapidemente URGENT!! faire une copipe de fichiers avec test lors de la destination [ par patoche590 ] Bonjourje débute en vb mais bon il me manque quelques notions et donc je recherche un exemple de programme qui effectue une copie de fichier d'un doss URGENT ! probléme de lecture des fichier ".exe" [ par sam5 ] Bonjour, Alors j'ai un petit soucie. Donc je souhaite envoyer des mail avec comme piéce jointe des fichier ".exe" sous Outlook.Mais le probléme c'est Urgent excel/vb [ par CAOVINCE ] Voila, j'ai 2 fichiers, 1 original et 1 trié (que je modifie) a partir de l'original. Je veux comparer ces 2 fichiers et reecrire le tout dans un 3eme URGENT! Problème de lecture de fichier avec Windows 95 [ par toto1980 ] J'ai la ligne:Set fso = CreateObject("Scripting.FileSystemObject")Set FIC = fso.OpenTextFile("c:\cheminbdd.txt", 1)pour lire un fichier texte. Ce prog Lecture des fichiers dans un répertoire [ par NuNu ] Bonjour à tous,ça fait longtemps que je ne suis pas venue; je faisais totalement autre chose.Aujourd'hui j'ai un tout petit programme à réaliser en vb


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.