PDA

Ver la Versión Completa : error con wordapplication y worddocument


lookmydoom
14-04-2007, 07:19:07
Que tal, tengo un problemita y quisiera que alguien me corrija un pequeño codigo que no lo entender por que no funciona. Se supone que el codigo deberia abrir un documento .doc y grabarlo en formato .txt

Me falto decir que para esto uso delphi 7 y office 2003 y que tambien antes de postear esto revice todos los post parecidos y ninguno me funciono


procedure TForm1.Button1Click(Sender: TObject);
const
p='c:\prueba\xxx.doc';
p2='c:\prueba\zzz.txt';

var Word: Variant; Documento: Variant;
begin
Word := CreateOleObject('Word.Application');
Documento:=CreateOleObject('word.document');
Word.Documents.Open(p);
Documento.ConnectTo(Word.ActiveDocument);
Documento.SaveAs(p2);
end;


Si le quito la parte de ConnecTo logra abrir sin problemas el documento, pero dejandocelo me sale un error de que el metodo ConnectoTo no es soportado por el objeto.

aeff
14-04-2007, 18:01:20
hola colega, he intentado resolver algo de tu problemita,
me ha funcionado de lo mejor en Delphi 5, pruebalo, es posible que te de buenos resultados:

uses ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
WordApp, WordDoc: OleVariant;
begin
Screen.Cursor := crHourGlass;
WordApp := CreateOleObject('Word.Application'); {Creo el objeto Word.Application}
WordDoc := WordApp.Documents; {Obtengo el metodo Documents de la app.Word creada}
WordDoc.Open('C:\aeff.doc'); {Abro el archivo "C:\aeff.doc"}
WordApp.ActiveDocument.SaveAs('C:\aeff.txt', 2); {Le digo a la app.Word que le documento activo lo guardaré
en "C:\aeff.txt", ahora, como decias .txt, el parametro 2,
es quien especifica ese formato}
WordApp.Quit; {Por ultimo, cierro la app.word}
Screen.Cursor := crDefault;
ShowMessage('Ya se ha guardado su TXT, puede continuar...');
end;

espero que te sea util mi respuesta, si tienes alguna otra dudita, publicala en el foro para poder intentar resolverla

salu2!! aeff!!

lookmydoom
15-04-2007, 07:01:08
mmm pos te cuento que de grabar, graba pero no lo hace como si lo hiciera el mismo word osea solo el contenido en texto plano, lo graba pero con todos los tags de referentes al formato y demas, osea en ves de grabar el contenido que deberia ser "Hola Mundo" me salen "{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stsh......." y asi un monton de tags.

no hay alguna forma de especificarle el formato de archivo? osea que solo lo grabe como txt sin tags?

aeff
17-04-2007, 01:12:07
hola, probe nuevamente estos codigos que te mostre anteriormente y aqui ha funcionado perfectamente nuevamente, creo que vas a tener que probar otra vez.

suerte!!! salu2!!! aeff

lookmydoom
18-04-2007, 07:20:41
Bueno amigo no se que era pero hice lo siguiente "no te rias" primero desinstale el delphi 7 y luego instale delphi 5 para probar el codigo, tal como dijiste el codigo funciono sin hacerle ningun cambio, tons bastante perturbado desintale el D5 para instalar otra ves el D7, prove el codigo en la aplicacion que ya tenia antes y claro no funciono, tons pence no sera alguna de las 37 unidades basura que declare en parte de uses :confused: asi que abri otra aplicacion nueva e intente de nuevo, mi sorpresa fue que si funciono.

Bueno esto me queda como anecdota "te dije no te rias" de todas formas gracias, me salvaste el pellejo.

aeff
18-04-2007, 16:44:05
ok brother, si has encontrado la solucion a tu problema entonces, ¡¡¡ya no hay problema!!!

pero, que curioso no? eso de las 37 units declaradas en tu uses realmente fueron las causantes de tu dolor de cabeza.

salu2!! aeff!!