Como copiar dentro de un .txt desde visual?

Iniciado por Fucko, 20 Febrero 2011, 01:24 AM

0 Miembros y 1 Visitante están viendo este tema.

Fucko

Hola, necesito copiar en un .txt lo que contengo un un campo de texto.... como puedo hacer??


Private Sub txtGenerados_GotFocus()
    txtGenerados.SelStart = 0
    txtGenerados.SelLength = 65535
    SendKeys "^C"
End Sub

con esto, hago que el texto me quede todo seleccionado, y copiado en el portapapeles...
pero necesitaría que se envié directamente a un .txt
es posible?
como??

gracias
saludos
Cree en los que buscan la verdad, duda de los que la han encontrado...

seba123neo

Hola, te recomiendo no usar sendkeys, y directamente grabar lo que hay en el textbox en el .txt, no hace falta tampoco que selecciones el texto.

busca como abrir un archivo de texto y escribir en el, es muy facil.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Fucko

Gracias NEO...

me olvidaba de decir, que ya sabía como hacerlo, aca en el foro está este código...

Private Sub Command1_Click()
Dim canalLibre As Integer
'Obtenemos un canal libre que nos dará
'el sistema oparativo para poder operar
canalLibre = FreeFile
'Abrimos el fichero en el canal dado
Open "C:\fichero.txt" For Output As #canalLibre
'Escribimos el contenido del TextBox al fichero
Print #canalLibre, Text1
Close #canalLibre
End Sub


que funciona de 10....
lo que me olvidé de decir, es que tiene que ser en tiempo real....
o digamos, que yo tengo que tener el archivo abierto, y ver mientras se van pegando los datos...
o sino, que al abrir el txt el code de arriba, vaya al final del texto, y pegue, así no sobreescribe el contenido :D

pero sería ideal ver en tiempo real mientras se van pegando los datos....
gracias de nuevo
Cree en los que buscan la verdad, duda de los que la han encontrado...

seba123neo

sobreescribe el contenido del archivo, porque el modo de apertura del archivo esta en
Output , deberias ponerlo en Append para que te vaya agregando a lo que ya hay.

igualmente eso de que se vaya actualizando el archivo mientras lo tenes abierto, creo que no posible, por lo menos nunca vi algo asi.

lo que si podes hacer es cargar cada determinado tiempo el archivo en un textbox y asi vas viendo si se guardo algo en el.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Fucko

lastima... pensé que si se podía...
o quiza no me expresé bien....

tengo un boton que me genera un string random, y me lo muestra en un textbox.

como yo ese string random lo tengo que guardar en la pc, (a veces tengo que generar 100) lo que quería era, que al generar el string, este se vea, en vez de un TEXTBOX, en un archivo TXT que tengo abierto.

con el code que subí arriba del seleccionar todo y copiar, solucioné gran parte del problema, ya que solo tengo que seleccionar el txt abierto y hacer click derecho y pegar, o ctrol + v

pero por eso, pensé que se podía hacer...

sino la otra puede ser, que genere todo, y lo vaya guardando en un textbox, y al finalizar, lo mande a un .txt... eso podría servir también...
ya se como hacerlo, pero si existe la otra posibilidad es mejor...

gracias por tu ayuda :)
Cree en los que buscan la verdad, duda de los que la han encontrado...

seba123neo

te doy las posibles soluciones:

1 - que cuando generes el string o los strings, lo guardes inmediatamente en el archivo de texto, y en otro textbox al terminar de guardarlo, carges el archivo que recien guardaste y asi vas viendo el progreso como vos queres...desde la misma aplicacion tuya.

2 - lo de actualizar el archivo mientras lo tenes abierto no se puede, lo que si se puede es hacer lo que vos haces, de copiar y pegar en la ventana del archivo de texto ya abierto, pero usar sendkeys no es muy optimo, te digo porque no funciona en todos lados, a veces falla, y creo que en windows vista o 7 necesita permisos, lo que si podes usar en vez de sendkeys es la api llamada keybd_event, aca tenes un ejemplo:

Utilizar el Api keybd_event en vez de SendKeys

pero igualmente no me gusta ya que tenes que tener el foco en en archivo abierto, y si llegas a minimizar la ventana te lo pega en cualquier parte, ya que solo funciona con la ventana que tiene el foco.

3 - siguiendo con el ejemplo del archivo abierto (supongamos con el bloc de notas de windows), lo que podes hacer que nunca fallaria, es pasar el texto con apis, esto es usar la api de findwindow para obtener la ventana del bloc de notas y con la api sendmessage pasar el texto, por mas que lo tengas minimizado o otra aplicacion tenga el foco, siempre lo enviaria a esa ventana, pero el tema es que solo funcionaria con el bloc de notas, ya que si lo abris con otro editor de texto, por ejemplo el wordpad, ya no funcionaria el envio del texto a la ventana, porque los nombres de clases de la ventana de los programas son distintos.

pregunta, ¿es necesario tener ese archivo abierto ? porque sino usa la opcion 1 y lo ves en tu mismo programa...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Fucko

Gracias Neo de nuevo...
no, no es necesario tenerlo abierto... quiza tambien pueda agregar un textbox grande, donde vea lo que voy generando, y un boton para mandar al .txt

sería bueno poder generar un nombre para el .txt, en base a la hora o fecha.... eso se podrá???

porque de ser así, voy creando los strings de 10 en 10 o 20 en 20, y al tocar un botón, que los envie a un .txt
pero al .txt habría que crearlo, con un nombre en base a la fecha, hora u algo... como para que no me vaya sobreescribiendo....

ya mismo me pongo a buscar como :)
Cree en los que buscan la verdad, duda de los que la han encontrado...

Fucko

Solucionado :)

lo que hice fue agregarle un textbox grande a mi programa, y medida que iba generando strings, que me lo vaya mostrando en ese textbox, junto con un contador, para saber la cantidad de strings generados, luego un botón para generar el .txt en modo append, y ya... eso es todo....

muchas gracias por la ayuda! :)
Cree en los que buscan la verdad, duda de los que la han encontrado...