Índice del Foro www.mediocad.com www.mediocad.com
TODO SOBRE MICROSTATION. MDL, MVBA, MACROS.
 
 F.A.Q.F.A.Q.   BuscarBuscar   Lista de MiembrosLista de Miembros   Grupos de UsuariosGrupos de Usuarios   RegístreseRegístrese 
 PerfilPerfil   Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   ConectarseConectarse 

Copíar el texto de un .txt a word

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro www.mediocad.com -> MVBA
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Orphen



Registrado: 21 Dic 2005
Mensajes: 38

MensajePublicado: Mar Dic 09, 2008 10:29 pm    Título del mensaje: Copíar el texto de un .txt a word Responder citando

Hola mediocad, disculpa por esta pregunta pero me ha quitado un poco las canas.
Como hago para copiar la toda la info de un achivo txt a un archivo de word?
Ya anteriomente me distes una pista de hacer con la referencia de objeto de de word, pero la verdad no logre hacerlo.
Puedes publicar un codigo para esto.

Muchas gracias Crying or Very sad
Volver arriba
Ver perfil del usuario Enviar mensaje privado
mediocad
Gran Maestro
Gran Maestro


Registrado: 09 Jun 2005
Mensajes: 1509
Ubicación: Madrid

MensajePublicado: Mie Dic 10, 2008 12:09 pm    Título del mensaje: Código Responder citando

Hola,

Aquí te dejo un ejemplo sencillo y práctico.

Crearemos una aplicación bajo Visual Basic que interactúe con Microsoft Word, la idea básica es que desde una aplicación desarrollada en VB6 podamos crear un documento en Word. Este tipo de implementaciones se llamaban hace un tiempo "Automatizacion OLE", ahora con la llegada de la tecnología ActiveX este tipo de aplicaciones se paso a llamar COM.

Primero que nada debemos crear una referencia a la aplicación Word, para esto vamos al menú Proyecto > Referencias y seleccionamos "Microsoft Word 9.0 Object Library".



Como siempre digo puede que tengas otra versión, no lo he probado con otra versión pero supuestamente no debe haber inconvenientes.

Ahora creamos el aspecto del formulario, para ello agregamos un TextBox y un CommandButton a los cuales les dejamos el nombre que les toca por defecto. Las únicas modificaciones que debemos realizar son:

En el control Text1...

    Multiline = TRUE
    ScrollBars = 2 - Vertical
    Control CommandButton1
    Caption = "Enviar a Word >>>"
También se puede modifiar el tamaño del control Text1, lo ideal seria que el aspecto final del formulario sea este...



El código

Código:
Private Sub Command1_Click()
Dim MSWord As New Word.Application
Dim Documento As Word.Document
Dim Parrafo As Paragraph

Set Documento = MSWord.Documents.Add
Set Parrafo = Documento.Paragraphs.Add

Parrafo.Range.InsertAfter Text1.Text

MSWord.Visible = True
End Sub


Explicando el código

Este código se ejecuta al hacer click en el CommandButton1, las primeras tres líneas de código definen las variables a utilizar, la primer variable "MSWord" nos servirá para poder cargar Word y así poder manejar todo lo que crearemos, la segunda variable "Documento" nos servirá para crear el documento y por ultimo "Párrafo" sirve para poder agregar texto a nuestro documento.

Lo mas importante aquí es el método "InsertAfter" que lo que hace es insertar en nuestro documento el texto pasado como parámetro (Text1.Text). Por ultimo con la línea "MSWord.Visible = TRUE" mostramos la aplicación Word y el nuevo documento creado.

Una cosa a tener en cuenta es lo que se denomina jerarquía de clases, en nuestro caso seria MSWord > Documento > Párrafo.

Un saludo y espero que te sirva de ayuda. En tu caso cambias el Text1.txt por tu texto y ya lo tienes.
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Orphen



Registrado: 21 Dic 2005
Mensajes: 38

MensajePublicado: Mie Dic 10, 2008 8:26 pm    Título del mensaje: Gracias Responder citando

Muchas Gracia ho gran maestro, muchas gracias por tu ayuda, mas sin embargo, yo deseaba primero leer un archivo *.txt y copiar su contenido a un archivo word.

Gracuas Wink
Volver arriba
Ver perfil del usuario Enviar mensaje privado
mediocad
Gran Maestro
Gran Maestro


Registrado: 09 Jun 2005
Mensajes: 1509
Ubicación: Madrid

MensajePublicado: Jue Dic 11, 2008 1:40 pm    Título del mensaje: Código Responder citando

Aquí tienes el código para leer de un fichero de texto.

Código:
Private Sub Command1_Click()
Dim MSWord As New Word.Application
Dim Documento As Word.Document
Dim Parrafo As Paragraph
Dim strLinea As String

Set Documento = MSWord.Documents.Add
Set Parrafo = Documento.Paragraphs.Add

'Aquí escribe el contenido del fichero
Open "C:\mifichero.txt" For Input As #1
Do Until EOF(1)
  Line Input #1, strLinea
  Parrafo.Range.InsertAfter strLinea 'Aquí tienes que insertar un retorno
de carro
Loop
Close #1

End Sub

Detrás de
Código:
Parrafo.Range.InsertAfter strLinea

añade un salto de línea o retorno de carro para que te vaya escribiendo en word línea por línea y no todo seguido. No puedo poner el retorno de carro como sería en Visual Basic por que el servidor lo toma como código maligno y aborta el post. Sería:
Código:
& C h r ( 13)

quitando los espacios entre las letras.
Un saludo


Ultima edición por mediocad el Mie Dic 17, 2008 7:40 am; editado 1 vez
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Orphen



Registrado: 21 Dic 2005
Mensajes: 38

MensajePublicado: Mar Dic 16, 2008 10:26 pm    Título del mensaje: Mensaje de error Responder citando

Bueno, he probado instertar el codigo y con el retorno de carro, segun como me especificastes en el post, mas sin embargo me envia un mensaje de error "Loop" como que hace falta,

posdata: tambien agregue la libreria de microsoft word 12
Volver arriba
Ver perfil del usuario Enviar mensaje privado
mediocad
Gran Maestro
Gran Maestro


Registrado: 09 Jun 2005
Mensajes: 1509
Ubicación: Madrid

MensajePublicado: Mie Dic 17, 2008 7:41 am    Título del mensaje: Faltaba Loop Responder citando

Hola,

Efectivamente faltaba el Loop para cerrar el bucle. Ya está modificado en el código del post.

Un saludo
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro www.mediocad.com -> MVBA Todas las horas están en GMT + 1 Hora
Página 1 de 1

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas


Powered by phpBB © 2001, 2005 phpBB Group