GENERATEUR DE PAGES HTML AVEC MOTS CLEFS ET BALISES META
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 2013
-
29 juin 2010 à 12:50
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 2013
-
2 juil. 2010 à 07:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 2 juil. 2010 à 07:05
j'sais pas trop.
viragoloco
Messages postés9Date d'inscriptionjeudi 17 décembre 2009StatutMembreDernière intervention25 juillet 2010 1 juil. 2010 à 23:06
ps: à quoi servent les points que l'on reçois sur ce site? Merci
viragoloco
Messages postés9Date d'inscriptionjeudi 17 décembre 2009StatutMembreDernière intervention25 juillet 2010 1 juil. 2010 à 23:05
merci bcp! C'est super d'avoir pris de ton temps pour mon codouillage. Lol.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 1 juil. 2010 à 12:37
En VB.NET je l'ai fait comme cela :
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 @ ++
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 1 juil. 2010 à 10:09
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
++
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 1 juil. 2010 à 07:58
Salut Vb.net ou Vb6 même combat,
Par exemple en recherchant une suite de caractéres et en la remplaçant par tes valeurs, dans le texte html de ton fichier type.
Je n'y ai pas réfléchi plus que ça, mais une chose est sûr, placer le code html dans le code VB n'est pas la bonne méthode. @++
viragoloco
Messages postés9Date d'inscriptionjeudi 17 décembre 2009StatutMembreDernière intervention25 juillet 2010 30 juin 2010 à 22:49
tu as raison! Mais comment intégrer ces infos au bon endroit dans la page html déja conçue? Avec des varibles? Mais par quelle méthode? Et j'ai vb 2008 express. Est ce que c.est le .net ? Que possède t-il de mieux que vb6? Merci.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 29 juin 2010 à 12:50
Salut, c'est que le début du code non ?
Ne penses tu pas qu'il serait plus pratique d'ouvrir directement un ficher type et de renseigner les trois champs de la page ? (plutôt que d'écrire dans le code la trame de la feuille )
Imagine un jour que tu veuilles le changer, ton prog est compilé donc impossible pour l'utilisateur de modifier la trame.
@++ bonne continuation.
2 juil. 2010 à 07:05
1 juil. 2010 à 23:06
1 juil. 2010 à 23:05
1 juil. 2010 à 12:37
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 @ ++
1 juil. 2010 à 10:09
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
++
1 juil. 2010 à 07:58
Par exemple en recherchant une suite de caractéres et en la remplaçant par tes valeurs, dans le texte html de ton fichier type.
Je n'y ai pas réfléchi plus que ça, mais une chose est sûr, placer le code html dans le code VB n'est pas la bonne méthode. @++
30 juin 2010 à 22:49
29 juin 2010 à 12:50
Ne penses tu pas qu'il serait plus pratique d'ouvrir directement un ficher type et de renseigner les trois champs de la page ? (plutôt que d'écrire dans le code la trame de la feuille )
Imagine un jour que tu veuilles le changer, ton prog est compilé donc impossible pour l'utilisateur de modifier la trame.
@++ bonne continuation.