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

Crear Archivo Txt

Estas en el tema de Crear Archivo Txt en el foro de Visual Basic clásico en Foros del Web. Hola amigos, necesito hacerme un programita que me genere un archivo txt con la informacion de un text, ya se crearlo pero cada que lo ...
  #1 (permalink)  
Antiguo 12/09/2007, 07:00
 
Fecha de Ingreso: junio-2006
Mensajes: 240
Antigüedad: 17 años, 10 meses
Puntos: 1
Crear Archivo Txt

Hola amigos, necesito hacerme un programita que me genere un archivo txt con la informacion de un text, ya se crearlo pero cada que lo ejecuto me escribe a continuacion de lo que ya esta escrito en el archivo, necesito es que en cada ejecucion sobrescriba todo con la nueva informacion. Alguien me puede ayudar con un ejemplo sencillo (Un text y un boton) y que me cree en C: el archivo. GRCAIAS
  #2 (permalink)  
Antiguo 12/09/2007, 07:55
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: Crear Archivo Txt

No lo abras como Append sino como Output

Open "C:loquesea.txt" for Output as #5
Write #5, Text1.Text
Close #5

...pero eso está en la ayuda del vb ........ !!!
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #3 (permalink)  
Antiguo 12/09/2007, 08:11
 
Fecha de Ingreso: junio-2006
Mensajes: 240
Antigüedad: 17 años, 10 meses
Puntos: 1
Re: Crear Archivo Txt

LAFORGE muchas gracias, era precisamente lo que necesitaba, muy amable ehh.
Laforge tengo otra inquietud respecto al mismo proyecto. Teniendo ya esta parte en que se crea el archivo txt es posible automaticamente o seguidamente enviarlo a "x" impresora? sin necesidad de ir a C:\ y abrirlo? Si es posible me ayudas pliss de como tendrìa que adicionar el còdigo al que tu me diste? Muchas gracias de nuevo. Buen dia.
  #4 (permalink)  
Antiguo 12/09/2007, 08:35
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: Crear Archivo Txt

...lo mejor es que una vez creado el txt lo vuelvas a abir y lo mandes a la impresora. El tiempo de proceso para hacer el Open para leer el archivo es mínimo (teniendo en cuenta que estamos hablando de archivos de texto y que son, relativamente cortos) y te ahorras un montón de problemas en posible bucleados. De todas formas, a no ser que pierdas los datos contenidos en el textbox, lo que puedes hacer es limitarte a imprimir lo que contiene el textbox.


Solución 1: (habiendo creado el archivo lo reabres y lo imprimes)

Dim lineaN
Open "C:loquesea.txt" for Input as #9
Do While Not EOF(9)
Input #9, lineaN
Printer.Print lineaN
Loop
Close #9
Printer.EndDoc

Solución 2: (imprimir contenido de Textbox)
en el fondo dependerá si lo tienes con multiLine = True, aunque, en ese caso te recomiendo utilizar un RichTextBox en vez de TextBox porque a la hora de separar las líneas es mucho más sencillo -> usas Split con vbCr o vbLf y imprimes cada uno de los valores de la matriz.

Dim MatrizDeLineas, i
MatrizDeLineas = Split(RichTextBox.Text, vbCr, -1, vbTextCompare)
for i=0 to UBound(MatrizDeLineas)
Printer.Print MatrizDeLineas(i)
Next i
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #5 (permalink)  
Antiguo 12/09/2007, 10:38
 
Fecha de Ingreso: junio-2006
Mensajes: 240
Antigüedad: 17 años, 10 meses
Puntos: 1
Re: Crear Archivo Txt

Laforge la primera opcion es la que necesito, pues cuando me referia a abrirlo de nuevo lo que queria decir era tener que explorar el disco C y buscarlo e imprimirlo, pero abrirlo en el mismo proceso es precisamento lo que quiero. Hay un problema y es especificar la impresora, pues necesariamente debo enviarlo a una impresora Zebra que tiene desde luego una ruta que yo podria darle internamente en el codigo, pero no se como hacerlo, pues si intento imprimir tal cual tu dices en el codigo anterior, me imprime en la impresora que esta predeterminada y que no es la que necesito, pues manejamos varias impresoras. Es posible especificar la impresora en el codigo? Cuando estuve haciendo el proyecto en excel mediante el editor de visual fue facil porque grabè una macro donde seleccionaba la impresora, pero Directamente en Visual basic 6 NO SECOMO HACERLO. En excel el codigo me quedaba asi:

Application.ActivePrinter = "\\502313CARLOSACH\zebra_despachos en Ne01:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"\\502313CARLOSACH\zebra_despachos en Ne01:", Collate:=True

Donde "\\502313CARLOSACH\zebra_despachos en Ne01:" es la impresora que necesito.

Como tendria que hacerlo para enviarlo a esa impresora? Lo demas ya esta todo ok, me crea el txt y me imprime pero en la predeterminada.


Muchas gracias .
  #6 (permalink)  
Antiguo 12/09/2007, 15:32
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Re: Crear Archivo Txt

Para cambiar la impresora predeterminada creas un command dialog y pones

Código:
With CommonDialog1
    .DialogTitle = "Seleccionar Impresora"
    .Flags = cdlPDPrintSetup
    .ShowPrinter
End With
Al cambiar la impresora, el tipo de papel etc y al hacer click en Aceptar automaticamente cambia y al imprimir con el objeto printer te usa la configuracion que especificaste...

No es optimo si queres que el usuario no intervenga en seleccionar la impresora
  #7 (permalink)  
Antiguo 12/09/2007, 15:49
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Re: Crear Archivo Txt

Aca te pongo una funcion que hise para cambiar la impresora sin intervencion del usuario (obviamente tenes que conocer el nombre exacto).

Código:
'========== Codigo realizado por CULD ==========
'============= [email protected] ===============
'Esta funcion cambia el objeto printer por la
'impresora que deseamos. Obviamente tenemos que
'conocer el nombre de la misma e ingresarlo correctamente
'===============================================
Public Function CambiarImpresora(Nombre As String) As Boolean
Dim Impresora As Printer 'creo un objeto para la impresora

For Each Impresora In Printers 'recorro todas las impresoras disponibles
    If UCase(Impresora.DeviceName) = UCase(Nombre) Then 'verifico si la impresora actual es la que quiero
        Set Printer = Impresora 'como encontre la impresora la asigno al objeto printer
        CambiarImpresora = True 'informo que se cambio correctamente
    End If
Next
CambiarImpresora = False 'no se encontro la impresora asi que no se pudo asignar
End Function
Para verificar que funciona correctamente, teniendo mas de una impresora EJ: tenes una EPSON y una HP, predetermina la EPSON, y agrega la funcion y pone un boton y pone lo siguiente:

Código:
Private Sub Command1_Click()
MsgBox Printer.DeviceName
CambiarImpresora ("Nombre exacto de la impresora HP")
MsgBox Printer.DeviceName
End Sub
Vas a notar que primero te aparece el nombre de la impresora epson y luego de la HP eso significa que se cambio correctamente.

IMPORTANTE: Esto no cambia la impresora predeterminada, es decir que sigue siendo la misma. Solamente cambia la impresora a utilizar por el objeto printer
  #8 (permalink)  
Antiguo 13/09/2007, 11:05
 
Fecha de Ingreso: junio-2006
Mensajes: 240
Antigüedad: 17 años, 10 meses
Puntos: 1
Re: Crear Archivo Txt

Hola amigos, toda su ayuda ha sido fundamental y ya logre que me cree el archivo txt en el disco duro, pero tengo un problema y es que al imprimir desde la misma aplicacion con:

Dim lineaN
Open "C:pestañas.txt" for Input as #9
Do While Not EOF(9)
Input #9, lineaN
Printer.Print lineaN
Loop
Close #9
Printer.EndDoc

No me lo imprime tal cual esta en el archivo, cuando abro el archivo explorando C:\ e imprimiedo desde Archivo-imprimir si me sale bien. No entiendo por que desde la aplicacion de Visual directamente no?

Mi ra mi form1 en el boton tiene este codigo que me crea desde luego el archivo pestañas.txt:

Private Sub Command2_Click()

Open "c:\pestañas.txt" For Output As #1

Print #1, "^XA"
Print #1, "^BY1,1,075"
Print #1, "^FO050,010^BCN,,N,N,N^FD" & Text1.Text & "^FS"
Print #1, "^FO220,015^AS^FD" & Text1.Text & "^FS"
Print #1, "^FO220,050^AS^FDCal.: " & Text2.Text & "^FS"
Print #1, "^FO475,010^BCN,,N,N,N^FD" & Text1.Text & "^FS"
Print #1, "^FO650,015^AS^FD" & Text1.Text & "^FS"
Print #1, "^FO650,050^AS^FDCal.: " & Text2.Text & "^FS"
Print #1, "^PQ001"
Print #1, "^XZ"

Close #1
Form2.Show ' Para abrir otro form de impresiòn

End Sub

Lo que esta en rojo es lo que escribo en los text1 y dos del form, lo demas es simple texto en lenguaje que entiende la impresora Zebra. Lo escencial es que listo me crea el archivo correctamente y si imprimo abriendolo por bloc de notas me sale excelente.

En el form2 de impresion en el boton puse:

Private Sub Command1_Click()
Dim lineaN
Open "c:\pestañas.txt" For Input As #1 'ABRO EL ARCHIVO
Do While Not EOF(1)
Input #1, lineaN
Printer.Print lineaN
Loop
Close #1
Printer.EndDoc

End Sub

Que debe abrirme el archivo tal cual esta en C:\ pero al imprimir no me sale bien. No entiendo. Existira otro metodo para imprimir? para probar con otro. Es que como se trata de generar unas pestañas que llevan codigo de barras y imprimirlas en impresora zebra, no se donde estara el error cuando se abre el archivo desde la aplicacion visual.


Es posible hacer que en el form2 de impresion colocar un text o label donde me muestre previamente lo que contiene el archivo "pestañas.txt" tal cual esta, es decir linea por linea y no de corrido para luego asi enviar a la impresora el contenido del text o label .?


Muchas gracias ehhh, son unos bacanes.

Última edición por ideasking; 13/09/2007 a las 11:10
  #9 (permalink)  
Antiguo 14/09/2007, 04:24
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: Crear Archivo Txt

...prueba usando WRITE #N en vez de PRINT #N cuando crees el archivo
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #10 (permalink)  
Antiguo 14/09/2007, 11:30
 
Fecha de Ingreso: junio-2006
Mensajes: 240
Antigüedad: 17 años, 10 meses
Puntos: 1
Re: Crear Archivo Txt

Pues lo voy a usar, pero como comentaba arriba, la cuestion o el error no està en la creada del archivo, pues con print me lo crea bien, tanto asi que si lo abro por Bloc de notas e imprimo desde Archivo-Imprimir me sale bien, tal cual debe salir.El problema radica es al imprimirlo desde Visual que no se què pasa que me envia la imformacion mal a la impresora, pero el archivo como tal esta bien creado.

Nosotros aca utilizamos programas que imprimen varias cosas, tanto en impresoras nornales para texto o para zebras, entendiendo que para zebra se debe usar codificaciòn especial para que ella entienda, pero ese codigo ya lo tengo bien, pues es solo texto y lo que modifica el usuario pues si son text, que es lo unico que cambia en cada ejecuciòn. Cuando por ejemplo imprimimos un rotulo que lleva barras lo enviamos a la zebra y el cuadro o formulario de impresiòn me da la posibilidad de imprimir, de ver el informe (Aca abre el archivo txt en bloc de notas) . Hago esta anotaciòn para ver si en Visual es posible hacer lo mismo, es decir que al crear el archivo txt y querer imprimirlo pueda verlo previamente? Gracias
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 16:30.