Private Sub Bp_go_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bp_go.Click
Dim fichier_message As String
Dim Form_save As New SaveFileDialog
With (Form_save)
.InitialDirectory = Application.StartupPath 'répertoire sur lequel s'ouvrira la boite
.Title = "Selectionner le chemin et le nom de votre message" 'titre de la barre
.Filter = "Fichiers message(*.html)|*.html" 'filtre, seules les fichiers du soft apparaîtront
.DefaultExt = "html" 'extension par défaut
.OverwritePrompt False 'Message si le fichier existe déjàfalse = ouvrir un fichier existant
.SupportMultiDottedExtensions = False ' je ne veux que cette extension
.FileName = "message à " & Tb_titre.Text 'nom par défaut du fichier
If .ShowDialog() = DialogResult.OK And _
Not (.FileName Is Nothing) Then 'si clic sur OK et nom de fichier <> nothing attribu le
fichier_message = .FileName 'nom du fichier choisi ( avec extension)
' ouverture du fichier trame.html (qui la source avec les textes **xx** et récupération de chaque ligne dans un tableau
Dim lignes_sources() As String = File.ReadAllLines("trame.html")
' création du fichier de destination
Dim fichier_final As New StreamWriter(fichier_message)
' modifie si besoin et écrit chaque ligne dans le fichier final
For Each ligne In lignes_sources
'les Tb sont des textbox, les MTb des maskedtextbox, etc...
If ligne.Equals("**titre**") Then ligne = Tb_titre.Text
If ligne.Equals("**adresse1**") Then ligne = Tb_adr1.Text
If ligne.Equals("**adresse2**") Then ligne = Tb_adr2.Text
If ligne.Equals("**adresse3**") Then ligne = Tb_adr3.Text
If ligne.Equals("**mail**") Then ligne = Tb_mail.Text
If ligne.Equals("**ville**") Then ligne = Tb_ville.Text()
If ligne.Equals("**tel**") Then ligne = MTb_tel.Text
If ligne.Equals("**fax**") Then ligne = MTb_fax.Text
If ligne.Equals("**cp**") Then ligne = MTb_cp.Text
If ligne.Equals("**textedumessage**") Then ligne = RTb_message.Text
fichier_final.WriteLine(ligne)
Next
fichier_final.Close()
End If
End With
End Sub
procédure simple mais qui impose :
-que chaque **xxx** soit sur une seul ligne (plus simple et ne pose aucun soucis en html
-mauvaise gestion des accents (pas de convertion des accent en Html, ni en codage dans le writeline)
Voila de quoi bosser, bonne prog et @ ++
tiens j'ai bricolé cela (de tête, donc peut être des erreurs de syntaxe) en plus cela tellement longtemps que je ne fais plus de vb, j'ai peut être un peu mélangé la syntaxe avec du VBA ^^, mais bon cela te servira de piste.
Soit deux fichiers, un qui existe, et un autre que l'on va créer.
Il suffit de lire ligne à ligne en vérifiant pour chacune d'elles s'il faut la modifier ou pas.
'Copie d'un fichier type avec modification de certaine ligne
dim temp_ligne as string
dim ligne as string
Open Fichier_final.htm For Output As #2
Open "C:\Fichier_source.htm" For Input As #1
Do While Not EOF(1)
'lecture d'une ligne
Line Input #1, temp_ligne
'si cette ligne correspond à une zone à modifier alors là modifie
If (temp_ligne Like "*recherche_ligne1*") Then
ligne = "
voici une ligne modifié "
Print #2, ligne
ElseIf (temp_ligne Like "*recherche_ligne2*") Then
ligne = "La ligne est modifié à son tour"
Print #2, ligne
'sinon ce contente simplement de recopier cette ligne
Else
Print #2, temp_ligne
End If
Loop
Close #1
Close #2
Private Sub Bp_go_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bp_go.Click
Dim fichier_message As String
Dim Form_save As New SaveFileDialog
With (Form_save)
.InitialDirectory = Application.StartupPath 'répertoire sur lequel s'ouvrira la boite
.Title = "Selectionner le chemin et le nom de votre message" 'titre de la barre
.Filter = "Fichiers message(*.html)|*.html" 'filtre, seules les fichiers du soft apparaîtront
.DefaultExt = "html" 'extension par défaut
.OverwritePrompt False 'Message si le fichier existe déjàfalse = ouvrir un fichier existant
.SupportMultiDottedExtensions = False ' je ne veux que cette extension
.FileName = "message à " & Tb_titre.Text 'nom par défaut du fichier
If .ShowDialog() = DialogResult.OK And _
Not (.FileName Is Nothing) Then 'si clic sur OK et nom de fichier <> nothing attribu le
fichier_message = .FileName 'nom du fichier choisi ( avec extension)
' ouverture du fichier trame.html (qui la source avec les textes **xx** et récupération de chaque ligne dans un tableau
Dim lignes_sources() As String = File.ReadAllLines("trame.html")
' création du fichier de destination
Dim fichier_final As New StreamWriter(fichier_message)
' modifie si besoin et écrit chaque ligne dans le fichier final
For Each ligne In lignes_sources
'les Tb sont des textbox, les MTb des maskedtextbox, etc...
If ligne.Equals("**titre**") Then ligne = Tb_titre.Text
If ligne.Equals("**adresse1**") Then ligne = Tb_adr1.Text
If ligne.Equals("**adresse2**") Then ligne = Tb_adr2.Text
If ligne.Equals("**adresse3**") Then ligne = Tb_adr3.Text
If ligne.Equals("**mail**") Then ligne = Tb_mail.Text
If ligne.Equals("**ville**") Then ligne = Tb_ville.Text()
If ligne.Equals("**tel**") Then ligne = MTb_tel.Text
If ligne.Equals("**fax**") Then ligne = MTb_fax.Text
If ligne.Equals("**cp**") Then ligne = MTb_cp.Text
If ligne.Equals("**textedumessage**") Then ligne = RTb_message.Text
fichier_final.WriteLine(ligne)
Next
fichier_final.Close()
End If
End With
End Sub
procédure simple mais qui impose :
-que chaque **xxx** soit sur une seul ligne (plus simple et ne pose aucun soucis en html
-mauvaise gestion des accents (pas de convertion des accent en Html, ni en codage dans le writeline)
Voila de quoi bosser, bonne prog et @ ++
Soit deux fichiers, un qui existe, et un autre que l'on va créer.
Il suffit de lire ligne à ligne en vérifiant pour chacune d'elles s'il faut la modifier ou pas.
'Copie d'un fichier type avec modification de certaine ligne
dim temp_ligne as string
dim ligne as string
Open Fichier_final.htm For Output As #2
Open "C:\Fichier_source.htm" For Input As #1
Do While Not EOF(1)
'lecture d'une ligne
Line Input #1, temp_ligne
'si cette ligne correspond à une zone à modifier alors là modifie
If (temp_ligne Like "*recherche_ligne1*") Then
ligne = "
voici une ligne modifié "
Print #2, ligne
ElseIf (temp_ligne Like "*recherche_ligne2*") Then
ligne = "La ligne est modifié à son tour"
Print #2, ligne
'sinon ce contente simplement de recopier cette ligne
Else
Print #2, temp_ligne
End If
Loop
Close #1
Close #2
++
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.