Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Eliminar una imagen de 3000 archivos Word (https://www.clubdelphi.com/foros/showthread.php?t=70196)

jhonny 06-10-2010 01:05:31

Eliminar una imagen de 3000 archivos Word
 
Hola amigos, hoy traigo una duda que me asalta en gran manera...

Tengo 3.000 archivos creados en Word, los 3.000 archivos tienen una imagen cada uno.

¿Conocen alguna manera de automatizar un proceso, para que elimine de los 3.000 documentos esa imagen?, no importa si se puede hacer con codigo Delphi (Aunque sería mucho mejor, pues aprenderiamos más) o de alguna otra manera.

Por el tiempo y atención, muchas gracias.

BlueSteel 06-10-2010 01:51:39

Hola

Revisa este link... puede que te sirva la macro que sale allí

Salu2:p:D

jhonny 06-10-2010 15:22:41

Ey, que bien, segun veo podría tratar de traducir eso a Delphi también, voy a intentarlo y les contaré que sucede.

Muchas gracias.

BlueSteel 08-10-2010 23:55:11

Cita:

Empezado por jhonny (Mensaje 378563)
Ey, que bien, segun veo podría tratar de traducir eso a Delphi también, voy a intentarlo y les contaré que sucede.

Muchas gracias.


Hola Jhonny.. y como te fue con este tema.. pudistes cambiar la imagen de todos tus archivos... la pudistes pasar a Delphi...

salu2:p:D

roman 09-10-2010 02:09:21

Mmm. No sé el macro, pero en delphi podría funcionar esto:

Código Delphi [-]
uses ComObj;

const
  wdInlineShapePicture = 3;
  wdInlineShapeLinkedPicture = 4;

procedure QuitaImagenes(Archivo: String);
var
  WordApp: OleVariant;
  Documento: OleVariant;
  Shape: OleVariant;
  I: Integer;

begin
  WordApp := ComObj.CreateOleObject('Word.Application');
  Documento := WordApp.Documents.Open(Archivo);

  for I := Documento.InlineShapes.Count downto 1 do
  begin
    Shape := Documento.InlineShapes.Item(i);
    if Integer(Shape.Type) in [wdInlineShapePicture, wdInlineShapeLinkedPicture] then
      Shape.Delete;
  end;

  Documento.Close;
  WordApp.Quit;
end;

Aunque imagino que aplicado a 3000 archivos puede ser un poco lento.

// Saludos


La franja horaria es GMT +2. Ahora son las 13:52:51.

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