Hola a todos los que pasen por aki, tengo un problema de conocimientos a la hora de convertir un archivo txt a xml y espero encontrar la respuesta aki.
genere un archivo de ejemplo el cual se llama REGISTRO.TXT
y contiene lo siguiente:
20101004UDDES
20101004UDDES
en donde los 8 primeros caracteres corresponden a la fecha y los restantes a una empresa, todos los registros en este archivo son de largo fijo y los puedo obtener facilmente con un MID y guardarlos en una variable. pero nose como insertar esas variables en un archivo xml
dejo el codigo de lo que llevo.
Private Sub Command1_Click()
cd.ShowOpen
direccion = cd.FileName
End Sub
Private Sub Command2_Click()
Dim discriminante As String
Dim archivo As String
Dim fecha As String
Dim empresa As String
Dim registro As String
Dim sw As Integer
sw = 0
Open direccion For Input As #1
While Not EOF(1)
Line Input #1, Linea
discriminante = Mid$(Linea, 1, 6)
If discriminante <> "HEADER" And discriminante <> "FOOTER" Then
fecha = Mid$(Linea, 1, 8)
empresa = Mid$(Linea, 21, 5)
sw = 1
End If
If sw = 1 Then
registro = fecha + empresa
EscriveLog registro, "REGISTRO"
sw = 0
End If
Wend
Close #1
archivo = App.Path & "\" & "REGISTRO.txt"
' aki el codigo para convertir el archivo "REGISTRO.TXT" a registro.xml
Response = MsgBox("PROCESO TERMINADO", vbInformation, "empresa x")
End Sub
Public Function EscriveLog(ByRef Texto As String, ByRef tipo As String) ', ByRef xTipo As Byte)
Dim strFile As String
Dim fn As Long
Dim strLog As String
strFile = App.Path & "\" & tipo & ".txt"
fn = FreeFile
strLog = Texto
Open strFile For Append As fn
Print #fn, strLog
Close fn
End Function
espero me puedan ayudar a crear el XML ya que no tengo idea del formato ni nada por el estilo.
de antemano. GRACIAS!
HOLA!!!
Para que querrias el XML. por que es un simple archivo de texto con extension .xml
Osea lo lees y lo escribis igual solo que en la ruta va archivo.XML
Queres presentar un informe, lo usas de debug, para que?
GRACIAS POR LEER!!!
Porque lo tengo que entregar en xml, no me sirve en txt, pq del otro lado tienen un programa q lee e importa solo archivos xml
Gracias por responder
HOLA!!!
Preguntale que formato tiene que tener el texto interno del archivo
GRACIAS POR LEER!!!
Buenas.
Lee el contenido del .txt y escribelo usando write en un archivo con la extensión .xml.
Si no sabes como guardar el valor de una variable en un archuvo desde vb usa el buscador que hay muy buenos ejemplos :rolleyes:
Saludos!
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
79137913 un XML es un archivo de texto con informacion en forma de arbol (al mas estilo HTML para los amigos :xD)
agmen tu lo que tienes que hacer es separar cada linea y cada campo, y con eso escribir algo como esto
<?xml>
<Datos>
<cuenta>
<fecha>4/10/2010</fecha>
<nombre>UDDES</nombre>
</cuenta>
<cuenta>
<fecha>5/10/2010</fecha>
<nombre>ADDES</nombre>
</cuenta>
</Datos>
:P como veras es todo estatico y maquillaje :)
De todas formas pregunta por el "information schema" para hacerlo compatible con el programa
yaa! preguntare que onda, pero mas tarde pq mi jefe se toma como 4 horas de colación, hare algo con lo que pusiste.. pero como se cuanto espacio tiene que haber entre el inico y <cuenta>
o del inico a <fecha>
o del inicio a <nombre>
???????
Gracias por responder
El espaciado no importa, el motor xml lee por etiquetas, no importa que no hayan espacios:
<?xml>
<Datos>
<cuenta><fecha>4/10/2010</fecha><nombre>UDDES</nombre></cuenta>
<cuenta><fecha>5/10/2010</fecha><nombre>ADDES</nombre></cuenta>
</Datos>
o que hayan muchos:
<?xml>
<Datos>
<cuenta>
<fecha>
4/10/2010
</fecha>
<nombre>
UDDES
</nombre>
</cuenta>
<cuenta>
<fecha>
5/10/2010
</fecha>
<nombre>
ADDES
</nombre>
</cuenta>
</Datos>
El espaciado es puramente para su mejor lectura ante los programadores, al programa le da igual (aunque se sugiere que no hayan taaantos espacios (ej: 4 lineas vacias entre cada objeto) asi no se procesa tanto)
Las unicas condiciones son:
- Tiene que haber un solo nodo raiz (cuentas)
- Repetar la jerarquia (no cierres un nodo sin cerrar los que estan adentro del mismo)
- No pueden haber nodos sin cerrar, ni cierres de nodos sin abrir
- La primera linea siempre es la definicion de que el documento es un xml
:)
Gracias, veré que resulta de todo esto.
mas tarde te cuento como me fue
GRACIAS POR TODO, TE PASASTE ;-)
te cuento,
hice lo siguiente
archivo = App.Path & "\" & "REGISTRO.txt"
Open archivo For Input As #1
Escrivexml "<?xml>", "REGISTROXML"
Escrivexml "<Datos>", "REGISTROXML"
While Not EOF(1)
Line Input #1, Linea
fecha = Mid$(Linea, 1, 8)
empresa = Mid$(Linea, 9, 5)
registro = "<cuenta>" + "<fecha>" + fecha + "</fecha>" + "<empresa>" + empresa + "</empresa>" + "</cuenta>"
Escrivexml registro, "REGISTROXML"
Wend
Escrivexml "</Datos>", "REGISTROXML"
me genero el .xml pero no abre ni a palos
tb probe insertando lo que escribiste tu cambiandole la extension, pensando que no estaba quedando =
<?xml>
<Datos>
<cuenta><fecha>4/10/2010</fecha><nombre>UDDES</nombre></cuenta>
<cuenta><fecha>5/10/2010</fecha><nombre>ADDES</nombre></cuenta>
</Datos>
pero pasa lo mismo :S
se pega el explorer abre y abre ventanas
espero me puedas ayudar. Gracias
es porque la primera linea esta mal, (no tuve ganas de buscar cual es la linea :xD) la primera linea si o si debe ser esta
<?xml version="1.0" encoding="UTF-8" ?>
y ahi si abrira :)
Gracias!!!! ahora si funka, voy a pasarle datos ahora ;-)