3.915 messaggi dal 28 gennaio 2003
Dato un file .rtf, vorrei, da programma, sostituire la stringa contenuta, [c_field] con un determinato valore.
Il problema è che word, quando salva un file in formato rtf, mette i salto-riga, un po' dove gli pare.
Perciò, la stringa "[c_field]" può o non può contenere il salto riga \r\n

Con questa premessa, come si potrebbe fare la sostituzione di quella stringa (con o senza salto riga all'interno)? con le espressioni regolari?

Pietro
scusa, i \r\n sono sempre in una posizione specifica della stringa "[c_field]" (ad es. sempre all'inizio o alla fine) o la posizione e' casuale?
3.915 messaggi dal 28 gennaio 2003
è in posizione casuale e può anche non esserci!

ciao

Pietro
Puoi incollare su questo thread una porzione dell'RTF di esempio? Vorrei capire esattamente in che situazione ti trovi...
3.915 messaggi dal 28 gennaio 2003
In effetti non serve incollare una stringa particolare rtf.
Basta avere una stringa semplice, del tipo:

dim s as string = "parola parola [c_field] parola "

dove, all'interno di [c_field] può esserci o non esserci un altro carattere, per esempio, |. Per chiarezza posso avere per esempio:

"parola parola [c_field] parola "
"parola parola [c_|field] parola "
"parola parola [|c_field] parola "
"parola parola [c_field|] parola "


A me interessa costituire il segnaposto [c_field] (con o senza quel carattere all'interno, in qualunque posizione) con un altro valore.
Non è necessario farlo con le espressioni regolari.
Ciao.

Pietro
24 messaggi dal 19 ottobre 2010
Ciao farei il replace con le espressioni regolari mettendo in or la possibilita' del ritorno a capo.

l'espressione regolare : (\[c_field\])|(\[c_field\]\r\n)

per testare le espressioni regolari puoi utilizzare Expresso.


Regex.Replace("contenuto","regexpattern","replace")
24 messaggi dal 19 ottobre 2010
questa prevede tutti i ritorni a capo in qualsiasi punto

(\r\n|)\[(\r\n|)c(\r\n|)_(\r\n|)f(\r\n|)i(\r\n|)e(\r\n|)l(\r\n|)d(\r\n|)\](\r\n|)
3.915 messaggi dal 28 gennaio 2003
 Ti ringrazio. Però ho dubbi.
Voglio fare una procedura riutilizzabile.
I parametri da passare dovrebbero essere più o meno questi:
testo -> testo da modificare
campo -> nome del campo da modificare, inizia con [ e termina con ]
valore -> testo da sostituire a campo

ciao

Pietro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.