• Domingo 22 de Diciembre de 2024, 13:32

Autor Tema:  Para Brroz  (Leído 1578 veces)

Jorge López

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Para Brroz
« en: Jueves 11 de Marzo de 2004, 21:17 »
0
Brroz si tengo el archivo en un servidor, que esta fuera de la oficina como puedo hacer para decirle donde buscarlo por Visual Basic?

Si me puedes ayudar estaria agradecido..


otra cosa, en este mismo tema...si tengo el .txt con miles de lineas de esta forma:

09:05:45 xxx hhh
  • [0][0][0][0][0][0][0]8[0]0[0]1234567[0][0]1000[0]6666 xzy...



como hago para reducirlo a:
&&&&&09054512345&&&&&1000
          12345...      11.....n
o generar uno  nuevo con este formato sin alterar el de origen?
el archivo esta en un directorrio de un servidor...de forma
200.44.198.30\data\archivo.txt ó arrchivo.xml
los (&) necesito agregararselos al principio y despues de la posición 11 de los digitos..

si me puedes ayudar en esto de verdad que me urrge..y estaariaa agraddecido... :comp:
Un fracasado es un hombre que ha cometido un error pero que no es capaz de convertirlo en experiencia.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Para Brroz
« Respuesta #1 en: Viernes 12 de Marzo de 2004, 09:32 »
0
Hola Jorge López.

Comienza buscando desde tu pc el equipo con el que te quieres conectar seleccionando desde 'Inicio' buscar un pc. Usa su ip o su nombre de dominio. Si encuentras la máquina, no tendrás otra cosa que hacer que al crear la cadena de conexión con la bd referierte a ella de la forma que te comenté en tu anterior post (DataSource=\\99.99.99\Ruta\bd.mdb). Que esto funcione correctamente puede depender de la configuración de la red y de sus equipos, en este tema, la configuración de routers que utilices, túneles definidos, y cosas por el estilo, pueden ser determinantes.

Otra opción es que uses RDO. Yo no estoy nada puesto en el tema, pero por ahí supongo que habrá abundante información.

Sobre lo que comentas del archivo que deseas procesar, no comprendo cúal tiene que ser el resultado de la función que buscas, pero básicamente lo que haría es leer línea a línea de un archivo, procesar cada línea y guardarlo en otro archivo. Algo así:

Código: Text
  1.  
  2. Private Function Proceso() As Boolean
  3.    On Error Goto Err_Proceso
  4.    Dim intCanalI as Integer, intCanalO as integer
  5.    intCanalI = Freefile
  6.    Open "C:\Ruta\ArchivoI.txt" For Input As #intCanalI
  7.    intCanalO = Freefile
  8.    Open "C:\Ruta2\ArchivoO.txt" For Output As #intCanalI
  9.    Dim str1 As String
  10.    Do until EOF(intCanalI)
  11.          Line Input #intCanalI, str1
  12.          print #intCanalO, ProcesoLinea(str1)
  13.    Loop
  14.    Proceso = True
  15.  
  16. Exit_Proceso:
  17.     On Error Resume Next
  18.     Close #intCanalI
  19.     Colse #intCanalO
  20.     Exit Function
  21.  
  22. Err_Proceso:
  23.     Msgbox "(" & Err.Number & ") " & Err.Description, vbCritical,"Proceso"
  24.     Resume Exit_Proceso
  25.  
  26. End Function
  27.  
  28. Private Function ProcesoLinea(Byval Linea As String) As String
  29. 'Esta función debería procesar una línea.
  30. 'ProcesoLinea=xxxxxxx
  31. End Function
  32.  
  33.  

A la función 'ProcesoLinea' se le pasa como parámetro cada una de las lineas del archivo de entrada, la procesaría según tus necesidades, y devolvería una cadena con el resultado, que a su vez es grabada en el archivo de salida.
Si tienes problemas con el código para procesar cada línea, no dudes en preguntar... te diría algo, pero es que no he comprendido lo que necesitas.

Suerte.

Jorge López

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Para Brroz
« Respuesta #2 en: Viernes 12 de Marzo de 2004, 16:35 »
0
Gracias Brroz...te cuento lo que necesito..
tengo archivos planos en un servidor..el cual accedemos remota mmente con un user y un password..
en un directorio de la unidad d, hay unos archivos planos..
ejemplos en d:\data\archivos\plano.txt ó plano .xml
este archivo tiene información de la forma:

04:00:25 4G <0>
  • [0][0]
  • [0][0]3333[0][0]
  • [0]584129836044[0][0][0]465


de esta forma es que estan las lineas del archivo en el servidor..
quiero sacar de alli un archivo que contenga lineas como esta..

0400000058412983604400000000000000033332003120106262400001000
donde :

04000000584129836044= id de la persona. + 000000000000000 = obligatorios +3333 + 20031201062624 = fecha y hora +00001000= obligatorios...

como puedo hacer para generalr este nuevo txt?



De verdad me urge hacer esto pero no tengo ni idea como realizarlo..

Un millon...Brroz
Un fracasado es un hombre que ha cometido un error pero que no es capaz de convertirlo en experiencia.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Para Brroz
« Respuesta #3 en: Lunes 15 de Marzo de 2004, 17:44 »
0
Hola Jorge.

Antes de nada, disculpa la tardanza en responder, pero no sé que rayos ha pasado que desde mi anterior respuesta no he sido capaz de entrar en solocodigo hasta ahora mismo.

Una vez que tienes una línea del archivo, para obtener la que tu deseas debes trocearla según posiciones y/o ciertos carácteres y montar la cadena que necesitas...

La función 'ProcesoLinea' del código anterior debería quedar algo así:
Código: Text
  1.  
  2. Public Function ProcesoLinea(ByVal Linea As String) As String
  3.    
  4.     On Error Resume Next
  5.     ProcesoLinea = &#34;04000000&#34; & Mid(Linea, 53, InStr(54, Linea, &#34;[0]&#34;) - 53)
  6.     ProcesoLinea = ProcesoLinea & &#34;000000000000000&#34;
  7.     ProcesoLinea = ProcesoLinea & Mid(Linea, 36, InStr(37, Linea, &#34;[0]&#34;) - 36)
  8.     ProcesoLinea = ProcesoLinea & Format(Now, &#34;yyyymmddhhmmss&#34;)
  9.     ProcesoLinea = ProcesoLinea & &#34;00001000&#34;
  10.  
  11. End Function
  12.  
  13.  

Realmente no sé si esto es lo que tienes que hacer con la línea original, hoy debo de estar espeso, pero para que te hagas una idea... En principio, si llamas a la función con el parámetro que pones como ejemplo de entrada, obtendrás la salida que dices necesitar.

Suerte.

Jorge López

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Para Brroz
« Respuesta #4 en: Lunes 15 de Marzo de 2004, 19:00 »
0
mil gracias amigo ya mmee diste la idea de como hacer lo que necessitoo...

un abrrazzo...desde Venezuela...


Saludos...
Un fracasado es un hombre que ha cometido un error pero que no es capaz de convertirlo en experiencia.