VB
Résolu
mya1
Messages postés
334
Date d'inscription
Statut
Membre
Dernière intervention
-
mya1 Messages postés 334 Date d'inscription Statut Membre Dernière intervention -
mya1 Messages postés 334 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je ss complètement une débutante en VB 6.0 et j'ai une application à réaliser au cours de ma période de stage! le pb que je rencontre mtn est le fait de concrétiser mon algorithme sous VB. je m'explique: la fonction doit me permettre d'extraire un mot d'un fichier(que je dois copier par après en excel cette fonction de copier en excel je l'ai déjà testé et ça marche!) mais moi je vx juste qu'il me copie depuis le mot que je veux: je vous lance mtn mon algorithme dans l'espoir de trouver qq1 qui pourra m'aider à le codifier en VB:
en 1èr lieu j'ouvre le fichier en mode lecture
je déclare des variables : s=chaine de caractère que je dois initialiser par la 1ère chaine du fichier
D=chaine de caractère initialisée tjs par "ENU"(le mot que je cherche dans tous les fichiers)
i= c'est un compteur qui va s'incrémenter
p=de type pointeur qui va pointer sur la 1ère ligne et l'incrémenter a chaque fois qu'il achève la ligne et ne trouvant pas le mot
trouve=une booléenne initialisée à false
je commence la boucle
tant qu'il n'est pas arrivé à la fin du fichier faire:( do while EOF(1)=false)
compare "s" avec "d"
si s==d alors
trouve=true
copier le texte depuis "ENU"
sinon
on incrémente le compteur
on passe à la ligne suivante(à l'aide du pointeur)
fin tant que
SVP j'ai vraiment besoin de votre aide sinon je serai fichue nan mais complètement fichue.
NB: je dois rendre ce projet dans 2jours et il me reste bcp de choses à traiter.. j'ai confiance en vos compétences pr m'aider
je ss complètement une débutante en VB 6.0 et j'ai une application à réaliser au cours de ma période de stage! le pb que je rencontre mtn est le fait de concrétiser mon algorithme sous VB. je m'explique: la fonction doit me permettre d'extraire un mot d'un fichier(que je dois copier par après en excel cette fonction de copier en excel je l'ai déjà testé et ça marche!) mais moi je vx juste qu'il me copie depuis le mot que je veux: je vous lance mtn mon algorithme dans l'espoir de trouver qq1 qui pourra m'aider à le codifier en VB:
en 1èr lieu j'ouvre le fichier en mode lecture
je déclare des variables : s=chaine de caractère que je dois initialiser par la 1ère chaine du fichier
D=chaine de caractère initialisée tjs par "ENU"(le mot que je cherche dans tous les fichiers)
i= c'est un compteur qui va s'incrémenter
p=de type pointeur qui va pointer sur la 1ère ligne et l'incrémenter a chaque fois qu'il achève la ligne et ne trouvant pas le mot
trouve=une booléenne initialisée à false
je commence la boucle
tant qu'il n'est pas arrivé à la fin du fichier faire:( do while EOF(1)=false)
compare "s" avec "d"
si s==d alors
trouve=true
copier le texte depuis "ENU"
sinon
on incrémente le compteur
on passe à la ligne suivante(à l'aide du pointeur)
fin tant que
SVP j'ai vraiment besoin de votre aide sinon je serai fichue nan mais complètement fichue.
NB: je dois rendre ce projet dans 2jours et il me reste bcp de choses à traiter.. j'ai confiance en vos compétences pr m'aider
A voir également:
- VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Vb express - Télécharger - Langages
78 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok capitain...; je te laisse le ts qu'il faudra!! je t'assure que je sais plus comment te remercier!!
encore mon binome qui vx me créer des soucis av mon sauveur, dès que je me lève de la chaise elle commence à utiliser mon compte à gauche et à droite, fais po attention
bon.. Pas trop long ?
Tu remplace toute la sub par
A+
Tu remplace toute la sub par
Private Sub cmdTextEXCEL_Click() Dim EX As New Application Dim Book As Workbook Dim Feuille As Worksheet Dim i As Integer Dim ff As Integer Dim Contenu As String Dim TB1, TB2 Dim s As String Dim P As Integer Dim d As String Dim e As Integer Dim T As Boolean ff = FreeFile Open "G:\stage\TextversEXCEL\rabat2.txt" For Input As #ff 'Open "E:\rabat3.txt" For Input As #ff While Not EOF(ff) Line Input #ff, Contenu If Left(Contenu, 4) = " ENU" Then Contenu = Mid(Contenu, 2) GoSub MiseEnForme TB1 = Split(Contenu, " ") Line Input #ff, Contenu Contenu = Mid(Contenu, 2) GoSub MiseEnForme TB2 = Split(Contenu, " ") GoTo Fermer End If Wend Fermer: Close #ff d = "ENU" Set EX = CreateObject("Excel.application") EX.Visible = True Set Book = EX.Workbooks.Add Set Feuille = Book.Sheets(1) With Feuille For i = 0 To UBound(TB1) .Cells(1, i + 1) = TB1(i) .Cells(2, i + 1) = TB2(i) Next i End With Exit Sub MiseEnForme: e = 1 While e < Len(Contenu) If Asc(Mid(Contenu, e, 1)) = 32 Then If Not T Then T = True Else Contenu = Left(Contenu, e - 1) & Mid(Contenu, e + 1) Debug.Print Contenu Debug.Print Asc(Mid(Contenu, e, 1)) e = e - 1 End If Else T = False End If e = e + 1 Wend Return End Sub
A+
Je comprend que tu soit impatiente mais faut laisser le temps au temps...
Ca se fait pas en un coup de cuill§re à pot.
Ca se fait pas en un coup de cuill§re à pot.
wooooooooooooooooooooooow toi t le meilleur!! permet moi de te dire chapeau!!!! je sais pas comment te remercier
vraiment chapeau!! les mots m'echappent
vraiment chapeau!! les mots m'echappent
et ces 3 là aussi
'Open "E:\rabat3.txt" For Input As #ff
Debug.Print Contenu
Debug.Print Asc(Mid(Contenu, e, 1))
'Open "E:\rabat3.txt" For Input As #ff
Debug.Print Contenu
Debug.Print Asc(Mid(Contenu, e, 1))
ok mon sauveur, en fait si par exemple le fichier que je possède contient bcp de ligne, par exemple comme le fichier ci joint https://www.cjoint.com/?jdqshuVEfT!! comment pourrai-je faire pr qu'il me copie tt le fichier ??
en fait j'ai trouvé une solution qui est comme suit:
le code cherche le mot ENU c bon, là je vx lire le numéro de la ligne où se trouve ENU
après on affecte cette valeur (c a d le numéro de la ligne) à une variable "j"(qu'on déclare as integer)
après je compte le nombre des lignes du fichier à l'aide de strLigne qu'à son tour je l'affecte à une autre variable "nbr" (declarée comme integer), après je fais un for " l"(variable déclaré comme integer) l que je lui affecterai j to UBound(nbr)
for l=j to UBound(nbr)
et je commence à copier
voilà l'algorithme!! px tu me ré-aider§?
PS: je sais que j'abuse trop de ta gentillesse mais t'es mon sauveur :D
le code cherche le mot ENU c bon, là je vx lire le numéro de la ligne où se trouve ENU
après on affecte cette valeur (c a d le numéro de la ligne) à une variable "j"(qu'on déclare as integer)
après je compte le nombre des lignes du fichier à l'aide de strLigne qu'à son tour je l'affecte à une autre variable "nbr" (declarée comme integer), après je fais un for " l"(variable déclaré comme integer) l que je lui affecterai j to UBound(nbr)
for l=j to UBound(nbr)
et je commence à copier
voilà l'algorithme!! px tu me ré-aider§?
PS: je sais que j'abuse trop de ta gentillesse mais t'es mon sauveur :D
J'espère que t'a tout dit maintenant parce que c'est faire et refaire et refaire le boulot...
A+
Private Sub cmdTextEXCEL_Click() Dim EX As New Application Dim Book As Workbook Dim Feuille As Worksheet Dim i As Integer Dim ff As Integer Dim Contenu As String Dim TB Dim s As String Dim P As Integer Dim D As Boolean Dim e As Integer, Lig As Integer Dim T As Boolean Set EX = CreateObject("Excel.application") EX.Visible = True Set Book = EX.Workbooks.Add EX.ScreenUpdating = False Set Feuille = Book.Sheets(1) Lig = 1 ' Première ligne où mettre les données, peut être changer. 'Mise en forme du tableau With Feuille With .Columns("A:AC") .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With .Rows("1:1").Select Selection.RowHeight = 19.5 With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With With Selection.Font .Name = "Arial" .Size = 12 .ColorIndex = 3 End With With Selection.Interior .ColorIndex = 6 End With End With ff = FreeFile Open "G:\stage\TextversEXCEL\rabat2.txt" For Input As #ff While Not EOF(ff) Line Input #ff, Contenu If Left(Contenu, 4) = " ENU" Then D = True End If If D Then If Len(Contenu) < 2 Then GoTo Fermer Contenu = Mid(Contenu, 2) GoSub MiseEnForme TB = Split(Contenu, " ") With Feuille For i = 0 To UBound(TB) .Cells(Lig, i + 1) = TB(i) Next i End With Lig = Lig + 1 End If Wend Fermer: Close #ff Range("A2").Select EX.ScreenUpdating = True Exit Sub MiseEnForme: e = 1 While e < Len(Contenu) If Asc(Mid(Contenu, e, 1)) = 32 Then If Not T Then T = True Else Contenu = Left(Contenu, e - 1) & Mid(Contenu, e + 1) e = e - 1 End If Else T = False End If e = e + 1 Wend Return End Sub
A+