c++ c haskell ms-word doc

c++ - Buscar por programación+reemplazar en un.doc



haskell ms-word (4)

¿Por qué quieres usar C / C ++ / Haskell u otro lenguaje compilado? No estoy muy familiarizado con Haskell, pero en general diría que C no es un buen lenguaje para procesar texto. Muchos lenguajes interpretados (Perl, Python, etc.) también tienen poderosas bibliotecas de expresiones regulares que son adecuadas para encontrar y reemplazar frases.

Dicho esto, como han señalado los otros carteles, aún tendrá que lidiar con las excentricidades del formato .doc.

Si me dan un archivo .doc con etiquetas especiales, como [first_name], ¿cómo hago para reemplazar todas las apariciones con algo como "Clark"? Un reemplazo binario simple solo funciona si la cadena de reemplazo tiene exactamente la misma longitud.

Las respuestas de Haskell, C y C ++ serían las mejores, pero cualquier lenguaje compilado funcionaría. También preferiría hacer esto sin una biblioteca externa, ya que tiene que implementarse en Windows y Linux y el manejo de dependencias multiplataforma es una perra.

Para resumir...

.doc -> magic program -> .doc with strings replaced


Primero lea la especificación del documento de Word .

Si eso no te ha aterrorizado, entonces deberías encontrarlo bastante sencillo para descifrar cómo leerlo y escribirlo. Debe ser posible; Word logra hacerlo la mayor parte del tiempo.


Probablemente tengas que usar la programación .Net (VB o C #) para crear un objeto de Word.Application y luego usar el modelo de objetos de MS Word para manipular tu documento.


Puede usar el componente COM de Word ("Word.Application") en Windows para abrir el archivo, hacer los reemplazos, guardar el archivo y cerrarlo. Sin embargo, esto es solo para Windows y puede tener errores.

Otra cosa que podría hacer es usar la interfaz de línea de comandos de OpenOffice.org para convertir el archivo al formato ODF, descomprimir el archivo (ODF es principalmente XML comprimido), hacer los reemplazos con los archivos dentro, volver a comprimir el archivo y volver a -convertirlo en formato .doc. Sin embargo, OpenOffice.org no siempre lee los archivos de Word correctamente (especialmente si hay un montón de formateo complejo) y puede dificultar la distribución (los usuarios deben tener OpenOffice.org o debe distribuirlo con su programa).

Además, si tiene un archivo en formato .docx, puede descomprimirlo, hacer los reemplazos y volver a comprimirlo.