Hola foro estoy intentando que mi aplicacion modifique un numero de un archivo html
ejemplo

Código: Seleccionar todo

<html>
<body>
ejemplo este numero = "1"
</body>
</html>

pense en que primero sería algo asi:

Código: Seleccionar todo

dim num as integer
num = 2
Open Environ("windir") & "\ejemplo.html" For Binary As #1
Put #1, LOF(1) + 1, ((((pero aqui no se como decir que valla a la linea tal y a la altura entre " y " para modificar el 1)))) & num
Close #1
Imagen

(cuanto más sabes, más cuenta te das de lo poco que sabes).

Mostrar/Ocultar

Hace ya mucho tiempo quue no programo en VB y ya se me ha olvidado un poco la sintaxis por lo que alguien que programe en ese lenguaje te puede explicar mejor.

Creo recordar que en VB existe una función llamada Replace$() (buscala en google). Entonces solo abres el archvo y almacenas su contenido en una variable y después con replace cambias el 1 por otro numero y después guardas el archivo con el contenido modificado...

PD: Es mejor que te leas también esto: [Enlace externo eliminado para invitados] para que te des una idea de como manejar archivos en VB
mmm Bueno lo que entendi es que tiene un Archivo .html y quieres remplazar una cadena de texto dentro de comillas.
BlackSlash tu idea es buena pero si existe una letra igual antes de la que quieres encontrar se reemplazan.
Aunque puedes usar la funcion Replace cargando todo el archivo en una variable y luego buscarla, el codigo sería algo así

Código: Seleccionar todo

Dim File As String
Open Environ("WinDir") & "\ejemplo.html" For Binary As #1
File = Space(LOF(1))
Get #1, , File
Close #1

File = Replace(File, Chr(34) & "1" & Chr(34), "Texto que reemplazará") 'Le pides a la funcion que busque desde el princio, en la cadena File , contiene el archivo html, y Chr(34) & "1" & Chr(34))  es = "1"
Kill Environ("WinDir") & "\ejemplo.html"
Open Environ("WinDir") & "\ejemplo.html" For Binary As #1
Put #1, , File
Close #1
Lo puedes hacer Funcion o un Sub para practicidad, supongo que modificandolo un poco se puede usar en cualquier archivo
Saludos y espero te sirva!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
creo que les sería más sencillo si usaran archivos de texto en vez de archivos binarios para manejar los html.. pero bueno para gustos...
la idea en general es hacer un replace.. pero para decirle cuál exactamente es el caracter que vas a reemplazar necesitas saber si es la primera aparición de ese caracter por ejemplo, pero si le dices que compruebe desde el inicio del archivo puede que reemplace otro caracter que no querías.

a mí se me ocurre que utilices los id del html (creo recordar que los tag <div> admiten que le asignes un id). si buscas la coincidencia exacta "id = xxx" puedes saber ya la posición en el fichero donde aparece tu número, a partir de esa posición ya sería la primera aparición.

saludos
R-007 escribió:creo que les sería más sencillo si usaran archivos de texto en vez de archivos binarios para manejar los html.. pero bueno para gustos...
Tambien habia pensado en eso pero no me se una forma rapida de almacenar todo un archivo en una variable, se puede hacer con Line Input pero deberias hacer un Do/Loop para cargarlo en una variable, ademas no se pierden caracteres si abres en modo binario lo he probado y no me ha dado problemas.
Supongo que tambien se puede hacer por Line Input y con ua comprobacion InStr pero con el simple hecho de cargar todo el archivo y usar Replace se reemplazan todas las cadenas que concuerden.
Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Tambien habia pensado en eso pero no me se una forma rapida de almacenar todo un archivo en una variable, se puede hacer con Line Input pero deberias hacer un Do/Loop para cargarlo en una variable, ademas no se pierden caracteres si abres en modo binario lo he probado y no me ha dado problemas.
Supongo que tambien se puede hacer por Line Input y con ua comprobacion InStr pero con el simple hecho de cargar todo el archivo y usar Replace se reemplazan todas las cadenas que concuerden.
Saludos!
Nah usa LOF e Input y ya, lo abras en binario o como tipo Input lo puedes leer con LOF lo ideal es que no lo abras como binario. La verdad no me se la diferencia de abrirlo así o no pero pues un .html no es un bin...
//mHmm..
Lo mas facil es el uso de Replace...Si te ves con ganas de Intentarlo con InStr,Mid e similares podés...Incluso ahí arriba decían Split.

Todo es probar,Aunque con Replace lo tenés facil...
Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
Blog: http://www.seginformatica.net
Twitter: https://twitter.com/#!/p0is0nseginf
al final termino haciendo este quemaso pero bueno lo posteo no por ser la mejor solucion si no como respuesta a mi mismo aunque como ya digo seguramente con el replace o alguna de las otras posiblidades dadas iria igual de bien

Código: Seleccionar todo

Open Environ("HOMEDRIVE") & "\wamp\www\index2.html" For Output As #1
Print #1, Chr(60) & "html" & Chr(62) & Chr(60) & "head" & Chr(62) & Chr(60) & "script" & Chr(62) & "setTimeout" & Chr(40) & Chr(39) & "num.value=" & Chr(34) & "4" & Chr(34) & Chr(39) & ",4000" & Chr(41) & Chr(59) & Chr(60) & Chr(47) & "script" & Chr(62) & Chr(60) & Chr(47) & "head" & Chr(62) & Chr(60) & "body" & Chr(62)
Print #1, Chr(60) & "input type=" & Chr(34) & "text" & Chr(34) & " id=" & Chr(34) & "user" & Chr(34) & " value=" & Chr(34) & "xxxxxxx" & Chr(34) & Chr(62)
Print #1, Chr(60) & "input type=" & Chr(34) & "text" & Chr(34) & " id=" & Chr(34) & "pass" & Chr(34) & " value=" & Chr(34) & "xxxxxxx" & Chr(34) & Chr(62)
Print #1, Chr(60) & "input type=" & Chr(34) & "text" & Chr(34) & " id=" & Chr(34) & "ip" & Chr(34) & " "
Print #1, Chr(62) & "                         "
Print #1, Chr(60) & "input type=" & Chr(34) & "text" & Chr(34) & " id=" & Chr(34) & "num" & Chr(34) & " value=" & Chr(34) & "3" & Chr(34) & Chr(62)
Print #1, Chr(60) & Chr(47) & "html" & Chr(62) & Chr(60) & Chr(47) & "head" & Chr(62)
Close #1

Call Sleep(1000)

Open Environ("HOMEDRIVE") & "\wamp\www\index2.html" For Binary As #1
temp = Space(LOF(1))
Get #1, , temp
jiji = InStr(temp, Chr(34) & "4" & Chr(34))
jojo = InStr(temp, Chr(34) & "3" & Chr(34))
ipp = InStr(temp, Chr(34) & "ip" & Chr(34))
Seek #1, jiji + 1
Put #1, , "2"
Seek #1, jojo + 1
Put #1, , "3"
Seek #1, ipp + 5
Put #1, , " value=" & Chr(34) & ip & Chr(34) & Chr(62)
Close #1
Imagen

(cuanto más sabes, más cuenta te das de lo poco que sabes).

Mostrar/Ocultar

Responder

Volver a “VB/.NET”