Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Manejo de archivos (https://www.clubdelphi.com/foros/showthread.php?t=49022)

zvf 10-10-2007 21:28:12

Manejo de archivos
 
Hola a todos!!

Estoy un poco perdida y se que ustedes me pueden orientar, porque siempre lo han hecho :p

Necesito saber como hacer, primero para poner un objeto que tenga un botón examinar y me permita abrir un archivo *.doc.

Luego, con el programa en delphi, ir leyendo letra por letra e ir presentando un mensaje que vaya diciendo la letra que voy leyendo. Esto lo necesito para un programa más grande, pero sabiendo como se hace esto, me ayudará a continuar.

Por ejemplo:
Presiono el botón examinar, busco un archivo *.doc, el contenido de este archivo no me interesa que se vea en la pantalla escrito, solo necesito que al indicarle que archivo abra, comience por ejemplo, si el archivo dice: "Este es el concepto que trabajaremos...", aparezca un mensaje, primero con la letra 'E', cuando le doy a un botón, me aparezca otro con la letra 's', después otro con la letra 't', y así hasta llegar a la última letra del archivo seleccionado.

No se si me di a entender...
Espero puedan orientarme un poco .... :confused:

aeff 10-10-2007 22:55:25

saludos, espero que te sirva esto:

implementa esta función en tu unit:

Código Delphi [-]
...
  uses ComObj;
...
procedure GetDocAsTxt(FileName, SaveTxtFileTmp: string; var TxtDoc: string);
var
  WordApp: Variant;
  vTxtFile: TextFile;
  TxtData: string;
begin
  WordApp := CreateOleObject('Word.Application');
  WordApp.Documents.Open(FileName);
  WordApp.ActiveDocument.SaveAs(string(SaveTxtFileTmp), 2);
  WordApp.ActiveDocument.Close;
  WordApp.Quit;
  AssignFile(vTxtFile, SaveTxtFileTmp);
  Reset(vTxtFile);
  TxtDoc := '';
  while not Eof(vTxtFile) do
    begin
      Readln(vTxtFile, TxtData);
      TxtDoc := TxtDoc + TxtData + #13#10;
    end;
  CloseFile(vTxtFile);
  DeleteFile(SaveTxtFileTmp);
end;

ahora, en el evento onclick de un button por ejemplo, pon esto:

Código Delphi [-]
var
  Archivo: string;
  i: Integer;
begin
  GetDocAsTxt('C:\aeff.doc', 'C:\aeff.txt', Archivo);
  for i := 1 to Length(Archivo) do
    ShowMessage(Archivo[i]);

dime si te funciona ¿ok?

saludos

aeff!!

aeff 10-10-2007 23:00:12

ahhh!!, si notas que se tarda mucho, entonces te recomiendo que hagas lo siguiente:

Dentro de la función GetDocAsTxt hay dos lineas que dicen asi:
Código Delphi [-]
  WordApp.ActiveDocument.Close;
  WordApp.Quit;

esas dos remplazala por estas:

Código Delphi [-]
  ShellExecute(Application.Handle, nil, 'tskill', 'WINWORD', nil, SW_HIDE);
  Sleep(100);

y no olvides añadir en el uses la unit ShellApi si vas a trabajar con ShellExecute,

saludos,
aeff!!

zvf 11-10-2007 15:47:11

Gracias
 
Muchas muchas gracias, funciona de maravilla... :)
De verdad que me impresiona ver como ustedes prestan su tiempo para apoyar a otras personas, esto que te estoy pidiendo es para hacer un proyecto que va a beneficiar a personas SordoCiegas aquí en México, así que si funciona como lo planeamos, prometo darte créditos :) y además claro, de promover el foro.:rolleyes:

Oye, una duda más, si yo quiesiera que no solo fueran archivos *.doc; sino tambien *.pdf o de otras extensiones.

¿Hay alguna forma de hacerlo?

Gracias!

aeff 11-10-2007 19:53:25

mira, no te preocupes por los creditos, si vas a ser referecia a esta ayuda que te he dado solo hazlo a nombre de ClubDelphi,

te doy gracias a ti por haberme agradecido, asi de simple,

bueno, para los *.pdf si no tengo ni idea, pero te prometo que voy investigar como hacer los mismo con estas extenciones, puede que exista alguna forma de hacer automatizaciones con Acrobat Reader o encontrar algunos componentes para leer *.pdf que yo no conozco y es posible que alguien aqui en este club conozca.

por favor, respondanle a [zvf] lo antes posible si alguien conoce de esto, ya saben que el objetivo de su trabajo ayudara a personas con discapacidades.
muchas gracias, y un gran saludo

aeff!!


La franja horaria es GMT +2. Ahora son las 11:00:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi