Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

hacer un programa que genere páginas HTml en VisualBasic 2010

Estas en el tema de hacer un programa que genere páginas HTml en VisualBasic 2010 en el foro de Visual Basic clásico en Foros del Web. Estoy haciendo un programa en visual basic 2010 para facilitarme el trabajo con mi página web. El programa quiero que genere una página HTML. Mi ...
  #1 (permalink)  
Antiguo 05/07/2010, 03:08
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 4 meses
Puntos: 1
hacer un programa que genere páginas HTml en VisualBasic 2010

Estoy haciendo un programa en visual basic 2010 para facilitarme el trabajo con mi página web.
El programa quiero que genere una página HTML.

Mi duda es cómo puedo hacer que al pulsar en el botón "generar" el programa sustituya cada
una de las palabras determinadas, de la página html que tiene en memoria, por la de cada texbox y la guarde.


No se si me explico, aquí pongo un ejemplo:

Yo abro el programa y relleno los campos:

textbox1: titulomodificado
textbox2: texto1modificado


Pulso el botón generar y entonces el programa genera una página en HTML a partir de la que tiene:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>titulo</title>
</head>
<body>
texto
<br>
</body>
</html>

El programa genera una sustituyendo la palabra "titulo" por el textbox1.text y la palabra "texto" por el textbox2.text y la guarda en formato HTML.


¿Cómo puedo hacerlo?

Muchas gracias
  #2 (permalink)  
Antiguo 05/07/2010, 03:40
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Hola, por lo que dices el programa te genera una nueva página a partir de la que tiene, pero la pregunta es ¿como tienes en la memoria de tu programa la página?, porque si se tratase de generar la página a partir de este modelo es diferente ya que se trataría tan sólo de sustituir

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>TextBox1.Text</title>
</head>
<body>
TextBox2.Text
<br>
</body>
</html>

Pero si se trata de MODIFICAR la página actual, dependiendo de como la tengas deberás localizar el tramo comprendido entre <title> y </title> y reemplazarlo por el contenido de TextBox1.Text y lo mismo con <body> y </body> por lo tanto evidentemente si lees un archivo secuencial, difiere mucho el cambio si el contenido está así:

<title>Prueba</title>

o si está de esta otra manera:

<title>
Prueba
</title>

o de está

<title>Prueba
</title>

incluso de esta

<title>
Prueba</title>

piensa que todo esto son lineas HMTL correctas pero deben modificarse de distinta manera.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 05/07/2010, 03:48
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Yo lo que quiero es solo que sustituya, pero tampoco sé como ponerle en memoria la página, no tengo mucha experiencia en esto.
Explicame como puedo hacer que tenga en memoria la página y que sustituya porfavor.

Gracias
  #4 (permalink)  
Antiguo 05/07/2010, 05:31
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Hola, dependiendo del contenido del fichero creo que vas a tener algunos problemas, pero esto puede ser la primera idea:

El proyecto de este ejemplo necesita un Command1 y un TextBox multilinea que en principio recibirá todo el contenido. Recuerda que el TextBox tiene limites de capacidad y si lo excedes, deberas utilizar un RichText


Private Sub Command1_Click()
' Debes cambiar aqui el nombre del fichero a cargar
Text1.Text = FicheroCompleto("C:\TuFichero.htm")
End Sub

La siguiente Función te devuelve el contenido del fichero completo que le indicas y en el Sub anterior lo que hace mos es volcar el contenido del fichero en el TextBox

Código vb:
Ver original
  1. Private Function FicheroCompleto(Fichero As String) As String
  2.   Dim Numero As Integer
  3.   Numero = FreeFile
  4.   Open Fichero For Binary As #Numero
  5.     FicheroCompleto = String(LOF(Numero), " ")
  6.     Get #Numero, , FicheroCompleto
  7.   Close #Numero
  8. End Function

De este modo ya tienes el fichero completo en pantalla e incluso podrías modificarlo directamente sobre el TextBox o RichText y después guardarlo de nuevo integramente, teniendo cuidado de no machacar las etiquetas.

El problema que puedes encontrarte por alguno HTM que he cargado es que por ejemplo no todos los <body> empiezan así, alguno por ejemplo puede ser <body background ....> entonces creo que esto te lo puede complicar algo o bastante.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #5 (permalink)  
Antiguo 05/07/2010, 07:16
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Hola, he puesto un Richtextbox1 y he puesto el código:

Código:
Public Class Form1
    Private Sub Command1_Click()
        RichTextBox1.Text = FicheroCompleto("C:\TuFichero.html")
    End Sub

    Private Function FicheroCompleto(ByVal Fichero As String) As String
        Dim Numero As Integer
        Numero = FreeFile()
  Open Fichero For Binary As #Numero
    FicheroCompleto = String(LOF(Numero), " ")
    Get #Numero, , FicheroCompleto
  Close #Numero
    End Function

End Class
Y me ha dado estos errores:

Código:
Error	1	'Open' is not declared. File I/O functionality is available in the 'Microsoft.VisualBasic' namespace.	C:\Users\Javier\Desktop\WindowsApplication1\WindowsApplication1\Form1.vb	9	3	WindowsApplication1
Error	2	Method arguments must be enclosed in parentheses.	C:\Users\Javier\Desktop\WindowsApplication1\WindowsApplication1\Form1.vb	9	8	WindowsApplication1
Error	3	Comma, ')', or a valid expression continuation expected.	C:\Users\Javier\Desktop\WindowsApplication1\WindowsApplication1\Form1.vb	9	16	WindowsApplication1
Error	4	'String' is a class type and cannot be used as an expression.	C:\Users\Javier\Desktop\WindowsApplication1\WindowsApplication1\Form1.vb	10	23	WindowsApplication1
Error	5	'.' expected.	C:\Users\Javier\Desktop\WindowsApplication1\WindowsApplication1\Form1.vb	10	29	WindowsApplication1
Error	6	'Get' statements are no longer supported. File I/O functionality is available in the 'Microsoft.VisualBasic' namespace.	C:\Users\Javier\Desktop\WindowsApplication1\WindowsApplication1\Form1.vb	11	5	WindowsApplication1
Error	7	Expression expected.	C:\Users\Javier\Desktop\WindowsApplication1\WindowsApplication1\Form1.vb	12	9	WindowsApplication1
Error	8	Method arguments must be enclosed in parentheses.	C:\Users\Javier\Desktop\WindowsApplication1\WindowsApplication1\Form1.vb	12	9	WindowsApplication1
¿Qué es lo que he puesto mal?

Gracias por la ayuda y saludos.
  #6 (permalink)  
Antiguo 05/07/2010, 08:13
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Hola, si has puesto lo que indicas en un Formulario, se supone que le sobra, por lo menos en Visual Basic la parte que te marco en Azul, ya que debe estar en el código del Formulario.


Public Class Form1
Private Sub Command1_Click()
RichTextBox1.Text = FicheroCompleto("C:\TuFichero.html")
End Sub

Private Function FicheroCompleto(ByVal Fichero As String) As String
Dim Numero As Integer
Numero = FreeFile()
Open Fichero For Binary As #Numero
FicheroCompleto = String(LOF(Numero), " ")
Get #Numero, , FicheroCompleto
Close #Numero
End Function

End Class


Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #7 (permalink)  
Antiguo 05/07/2010, 12:09
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Hola, perdón pero no lo entiendo, esque soy novato en visual basic, porfavor explícamelo.

Gracias y saludos.
  #8 (permalink)  
Antiguo 05/07/2010, 14:10
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Imagino que aunque seas novato, tienes mínimamente claro lo que es un Formulario, un Módulo y el código del Formulario. Debes Copiar y Pegar el código que te indiqué en la parte de código del Formulario.

¿ Seguro que estas en Visual Basic 6 clásico ?

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #9 (permalink)  
Antiguo 05/07/2010, 15:13
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Perdón, yo uso Visual Basic 2010. Por eso creo que no me funciona el código.
Perdón y muchas gracias. Saludos
  #10 (permalink)  
Antiguo 05/07/2010, 15:23
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Hola de nuevo, aunque utilices Visual Basic 2010 el cual desconozco totalmente, por poco que se asemeje al Visual Basic las instrucciones que te he dado son tan elementales que probablemente sea fácil adaptarlas.

Un saludo.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #11 (permalink)  
Antiguo 06/07/2010, 11:59
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Hola, ya he conseguido hacer que lo abra y lo ponga sobre un textbox para poderlo modificar.
Ahora necesito hacer que unas palabras determinadas del archivo html se reemplazen por las que yo escriba en un textbox.

¿Cómo lo puedo hacer?
  #12 (permalink)  
Antiguo 06/07/2010, 12:27
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: hacer un programa que genere páginas HTml en VisualBasic 2010

Muchas gracias pero ya lo he conseguido.

Saludos

Etiquetas: html, programa, visualbasic
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:21.