[VBA e WORD] Trovare e riscrivere parole tra #

venerdì 28 novembre 2008 - 13.08

MadBrain Profilo | Newbie

Vediamo se riesco a spiegarmi...
Per dei problemi con un printer driver avrei bisogno, prima della stampa, di cercare nel mio documento tutte le parole che cominciano e finiscono con un cancelletto, cancellarle e riscriverle uguali. (sì, è curioso lo so ma mi serve così! :D )
Per ora son riuscito prima della stampa a ciclare sulle parole del documento, il problema è che i caratteri speciali anche se attaccati a una parola vengono considerati a parte, quindi per esempio "#prova#" viene considerato come 3 parole distinte e qui non so più come proseguire...
qualche idea?!
---------------
"chi fa domande rischia di sembrare stupido
chi non ne fa rischia di restare stupido"

luigidibiasi Profilo | Guru

Ciao,

con cancellarle e riscriverle uguali vuoi dire che quando incontri un #ciao# lo riscrivi come #ciao# o come ciao?



Luigi Di Biasi

MadBrain Profilo | Newbie

Intendo riscrivere proprio #ciao# pari pari.
Cmq, son riuscito a procedere, ora riesco a fargli fare tutto quel che vorrei.
Il procedimento più o meno è questo, controllo parola per parola il testo, se trovo un cancelletto (o una serie di cancelletti) la salvo in una variabile stringa e la cancello, accodo alla stringa anche la parola successiva e la cancello, quando trovo un altro cancelletto (o serie di cancelletti) lo/li accodo alla stringa e li sovrascrivo.
La creazione della variabile e il posizionamento sul testo funziona ora ma è rimasto un problema. Fondamentalmente a me interessa togliere i caratteri di controllo (visibili solo aprendo il .doc con un texteditor) che word inserisce tra una parola e l'altra o anche all'interno di una stessa parola se vengono effettuate delle cancellazioni... col metodo di cui sopra ho eliminato quelli tra la prima serie di cancelletti e la parola ma quelli tra la parola e la seconda serie di cancelletti non vengono eliminati.

E io non so proprio più come fare...
---------------
"chi fa domande rischia di sembrare stupido
chi non ne fa rischia di restare stupido"

luigidibiasi Profilo | Guru

Ciao,
se ho capito bene a te interessa leggere solo il contenuto testuale del file.
I caratteri di cui parli sono per caso i codici escape del formato RTF? (credo di si visto che il vedi solo aprendo con notepad).

Se hai a disposizione vb6 o vb.net puoi procedere così...

- inserisci una richtextbox all'interno di un progetto
- carica il file word all'interno del controllo ( così lo visualizzi senza i codici di rtf anche se formattato in
base alle capacità del controllo rtf)
- dopo aver visualizzato il file nel controllo leggiti la proprietà TEXT e non RTF del controllo.

In questo modo riesci ad accedere al contenuto testuale evitando di dover cancellare a mano tutti i possibili escape che word inserisce ( e sono tanti !)

Se devi fare tutto da word credo tu possa comunque istanziare un controllo richtextbox senza visualizzarlo a video ma in memoria e fare il procedimento sopra descritto.

Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

MadBrain Profilo | Newbie

Interessanti consigli, grazie.
Peccato che dovendo lavorare solo con VBA in Word ed avendone poca esperienza sarà un incubo metterli in pratica!
Anche perchè c'è sempre la necessità di non variare nulla del file... e anche il mantenimento del formato mi ha dato dei problemi all'inizio.
Proverò a esplorare quel che mi hai consigliato...
---------------
"chi fa domande rischia di sembrare stupido
chi non ne fa rischia di restare stupido"
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5