VB
Résolu
mya1
Messages postés
352
Statut
Membre
-
mya1 Messages postés 352 Statut Membre -
mya1 Messages postés 352 Statut Membre -
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 audio 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+