none
stdout RRS feed

  • Pregunta

  • Tengo un problema al querer usar un comando en Visual Basic 6.0 es un enlace con postgres con un comando que se llama copy el ejemplo es el siguiente:

         COPY Arthist TO 'c:/archivos de programa/siaciipg/exportar/Arthist.txt' using delimiters '|' WITH NULL AS ' '

    pero para poder ejecutar este codigo tengo que tener permisos de Superusuario. Por lo que solo puedo hacerlo de esta manera

         COPY Arthist TO stdout using delimiters '|' WITH NULL AS ' '

    pero ahora necesito como redireccionar el stdout a un archivo de texto para poderlo guardar, alguien me puede decir como, agradesco de antemano su apoyo. saludos.

     

     

    jueves, 25 de octubre de 2007 15:37

Respuestas

  • ¿No te funciona lo de lanzar el comando poniendo al final "mayor que fchero"? Esto lo deberías poder hacer sin problemas con un "SHELL" desde VB6. Si no te funciona directamente, siempre puedes poner el "comando >fichero" dentro de un fichero .BAT y ejecutar ese .BAT con el comando SHELL desde VB6.

     

     

    jueves, 1 de noviembre de 2007 9:06

Todas las respuestas

  • La forma más sencilla de redireccionar el stdout de un programa a un fichero es poniendo >fichero al final del comando:

     

    COPY Arthist TO stdout using delimiters '|' WITH NULL AS ' ' >fichero.txt

     

    Pero esto no tiene nada que ver con Visual Studio, sino que es el propio intérprete de comandos el que hace esta operación cuando tecleas en consola un comando como el anterior.

     

    Si quieres hacer lo mismo desde un programa en VB.Net, utiliza Process.Start para lanzar el comando, y pásale como argumento un ProcessStartInfo especificando su propiedad RedirectStandardOutput. Luego lees el StandardOutput del objeto Process, que te da un Stream, y puedes enviar el conenido del Stream a donde quieras, por ejemplo a un archivo.

     

     

    domingo, 28 de octubre de 2007 14:18
  • bueno en este caso no cuento con esa version del visual, de hecho lo estoy haciendo con VB 6.0,  y pues ya estuve buscando la manera y creo que voy a terminar haciendolo a pie, recorriendo el recordset y con write, aqui lo malo es que son muchas tablas, asi que voy a tener que escribirlo con fields para evitar mucho codigo, como en C se puede redireccionar el stdout desde codigo pense que aqui se podia hacer lo mismo, si tienes otro comentario pero del vb 6.0, te lo agradeceria, el objetivo final es escribir un archivo de texto que sea sacado de una tabla. gracias.

     

    miércoles, 31 de octubre de 2007 15:09
  • ¿No te funciona lo de lanzar el comando poniendo al final "mayor que fchero"? Esto lo deberías poder hacer sin problemas con un "SHELL" desde VB6. Si no te funciona directamente, siempre puedes poner el "comando >fichero" dentro de un fichero .BAT y ejecutar ese .BAT con el comando SHELL desde VB6.

     

     

    jueves, 1 de noviembre de 2007 9:06