ScSami
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
13 déc. 2005 à 04:28
Open "chemin et nom du fichier d'entrée" For Input As #1
Open "
chemin et nom du fichier de sortie" For Output As #2
varRecherche$ = InputBox("Entrez une forme :", "Filtrage", "République")
'Choix du format, soit par une User_Form, soit par une MsgBox comme ceci :
'vbNewLine est une constante intrinsèque de VisualBASIC représentant une retour chariot (CR)
'Le symbole "&" concatène des chaines de caractères tout comme "+" mais c'est plus propre!
varMsg$ = "Le format de sortie par défaut du fichier est RTF." & vbNewLine
varMsg$ = varMsg$ & "Préférez-vous utiliser plutôt le format HTML à la place ?"
'Affiche une fenêtre avec l'icône "?" (vbQuestion) et les 2 boutons "Yes/No".
varReponse = MsgBox$(varMsg, vbYesNo + vbQuestion, "Choix du format de sortie")
'Initialisation de l'en-tête du document selon le format :
If varReponse = vbNo Then
'Format RTF
Print #2, "{\rtfl\ansi ...
"
Else
'Format HTML
Print #2, "<html>"
Print #2, " <head>"
Print #2, "
<title>Résultat de filtrage</title>"
Print #2, "
</head>"
Print #2, "
"
End If
While (EOF(1) = 0)
Line Input #1, varLigneTexte$
If InStr(
varLigneTexte$, varRecherche$) > 0 Then
'Découpage de la phrase pour mettre la graisse
varNewLigne$ = ""
While Len(varLigneTexte$) > 0
varPosCaraRecherche = InStr(varLigneTexet$, varRecherche$)
If varPosCaraRecherche > 1 Then
varNewLigne$ = Mid$(varLigneTexte$, 1, varPosCaraRecherche - 1)
'Ajoute la graisse et la forme recherchée
'Le caractère "_" permet d'écrire une ligne de code sur plusieurs lignes physiques.
varNewLigne$ = varNewLigne$ & _
Iif(varReponse = False, "{\b ", "") & _
Mid$(varLigneTexte$, varPosCaraRecherche, Len(varRecherche$))
If Len(varLigneTexte$) > 0 Then
'On enlève à la source ce qu'on vient d'ajouter à la sortie.
varLigneTexte$ = Mid(varLigneTexte$, _
varPosCaraRecherche + Len(varRecherche$), _
Len(varLigneTexte$) - (varPosCaraRecherche + Len(varRecherche$) )
End If
Else
If Len(varLigneTexte$) > 0 Then
'On termine le découpage...
varNewLigne$ = varNewLigne$ & varLigneTexte$
varLigneTexte$ = ""
End If
End If
Wend
Print #2, varNewLigne$
End If
Wend
If varReponse = False Then
'RTF
Print #2, "}"
Else
'HTML
Print #2, ""
End If
Close #1
Close #2
End Sub
Voilli voilou, et je l'ai même colorisé manuellement alors, s'il te plaît, donne toi la peinne de l'étudier et de le tester car je ne l'ai pas fait (puisqu'on est hors contexte). Il se peut donc qu'il ai un ou deux petits bugs mais dans l'ensemble je pense qu'il doit être au poil (même si je n'en jurerais pas sur ma vie!). De plus, c'est à toi de l'adapter à tes besoins concrêts (nom de fichiers, de fenêtres, de variables, ...).
Bon, si tu as la moindre question sur quoi que ce soit, je reste à ton service, alors, n'hésite pas... Et apprends toute seule... fait marcher tes méninges...
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )