OVH Cloud OVH Cloud

remplacement de caractères dans OpenOffice

34 réponses
Avatar
yapu
dans le cadre de mes bricolages de fichiers, il m'arrive souvent d'avoir
besoin de remplacer un certain caractère par un autre sur tout un
fichier. Généralement, cela implique un marqueur de tabulation ou de
paragraphe.

je n'ai pas trouvé comment faire dans neoOffice ni dans OpenOffice...
donc je continue à passer par ce bon vieil Appleworks, qui fonctionne
toujours aussi bien sous 10.5.8...
bon, en fait c'est surtout le paragraphe qui me gene (pour tab, c'est
\t, mais \p ne fonctionne pas)

bien sur, je pourrais utiliser TextWrangler, voire le terminal... mais
j'aime bien utiliser le moins d'outils possible.

Personne n'a trouvé comment faire dans OO ?



mais personne

--
Philippe Manet
en fait, c'est manet avant @

10 réponses

1 2 3 4
Avatar
blanc
JiPaul wrote:

C'est ces fonctions qui sont une fantaisie.



Bon. J'y suis peut-être allé un peu fort ici ;-)

En effet, après recherche, ces d, w font parties d'une extension non
posix [...] utilisée dans le langage python.



Extension non posix, mais assez importantes quand-même, puisqu'il s'agit
des PCRE utilisées dans Perl, Python, Java, .NET, etc...
Et voici un lien particulièrement intéressant à ce sujet :
<http://lumadis.be/regex/tuto_pcre.php>

Ceci étant il est clair que OOo n'utilise pas les PCRE, mais les ERE (et
peut-être pas toutes).

--
JiPaul.
/ /--/--// Jean-Paul Blanc
|/| L | quelquepart en (somewhere in)
/|| = ||| FRANCE
Avatar
blanc
Paul Gaborit wrote:

Un petit bug sympa de OOo:
- choisir un remplacement par expression regulière,
- demander à remplacer $ (une fin de paragraphe) par nn (deux fins de
paragraphes).

Si on applique cela à un document sans paragraphe vide, ça fonctionne
(sauf pour le tout dernier paragraphe). Dès que OOo atteint un
paragraphe vide, il boucle indéfiniment...



Oui, oui... ça bug aussi en remplaçant par un seul n
Voir la première partie de ce fil :-)

Par contre il est vrai que dans les deux cas ça bug seulement s'il y a
des § vides.
--
JiPaul.
/ /--/--// Jean-Paul Blanc
|/| L | quelquepart en (somewhere in)
/|| = ||| FRANCE
Avatar
Paul Gaborit
À (at) Thu, 20 May 2010 17:12:21 +0200,
(JiPaul) écrivait (wrote):

Oui, oui... ça bug aussi en remplaçant par un seul n
Voir la première partie de ce fil :-)



Oui. Désolé pour cette redite : je n'ai lu le reste du fil qu'après
avoir répondu.

Par contre il est vrai que dans les deux cas ça bug seulement s'il y a
des § vides.



C'est vraiment programmé avec les pieds ce moteur de regexp dans
OOo... ;-)

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
SAM
Le 5/20/10 12:07 PM, JiPaul a écrit :
SAM wrote:

Quant à AW,
qui ne s'occupe pas de RegExp mais aussi de mise en forme,
moins de 10 secondes pour 250 000 remplacements



Pas de regexp, donc moins de temps. :-)



Heu ... qui sait si en interne il ne s'appuie pas sur des espèces de
RegExp ?

Et puis ... non, les RegExp c'est au contraire ultra rapide.

Mais c'est surtout que dans ses fichier AW sépare le texte de la forme,
il n'y a donc qu'à chercher dans le texte "brut"
(éventuellement avec des pointeurs pour corriger la forme ensuite ?)

Ceci étant je le répète, je ne cherche pas à excuser les concepteurs
d'OOo, même s'il faut reconnaître qu'ils ont fait un sacré boulot !...



Certes, je ne serais pas capable d'en faire le 1/10000000000000,
mais puisqu'ils s'en sentaient ... hein ?
Ils ont fait un sacré boulot ... à l'ancienne je dirais.
(mais c'est pas nouveau j'ai déjà pas mal radoté à ce sujet de manque de
nouveauté, d'ergonomie)
Bon, il doit il y avoir le pb du portage sous Mac, mais à ce niveau, je
trouve qu'ils n'ont pas mal bossé, ça a fait de gros progrès, et ils ne
peuvent refaire tout le soft (mal pensé au départ).

Les fichiers OOo sont un imbroglio de signes cabalistiques,
un fatras où tout semble mélangé, contenu et forme.
Pas très étonnant qu'il s'y perde !
Qu'il lui faille un "certain" temps pour ouvrir/sauvegarder ses fichiers.

et pour Word, il semblerait que lui aussi sépare la forme du contenu
(qui est en texte brut dans les fichiers que j'ai explorés)


Quant à Pages c'est une horreur !
D'une ergonomie lourdingue (comparativement à AW).
Ne s'embarrasse pas à proposer des remplacements
et encore moins des "remplacer tout".
Comme ça on ne pourra le juger à ce sujet ;-)

--
sm
Avatar
SAM
Le 5/20/10 5:03 PM, JiPaul a écrit :
JiPaul wrote:

C'est ces fonctions qui sont une fantaisie.



Bon. J'y suis peut-être allé un peu fort ici ;-)



Merci de l'aveu.

En effet, après recherche, ces d, w font parties d'une extension non
posix [...] utilisée dans le langage python.



Extension non posix, mais assez importantes quand-même, puisqu'il s'agit
des PCRE utilisées dans Perl, Python, Java, .NET, etc...



Ha! Y m'semblait bien que c'était tt de même assez usuel ;-)

Même si mon langage préféré (le JavaScript) use de PCRE réduites,
il connait au moins pas mal de ces fantaisies.

Et voici un lien particulièrement intéressant à ce sujet :
<http://lumadis.be/regex/tuto_pcre.php>

Ceci étant il est clair que OOo n'utilise pas les PCRE, mais les ERE (et
peut-être pas toutes).



Bon, on dira que c'est à y manipuler avec des pincettes.
(très fines les pincettes !)


--
sm
Avatar
sebastienmarty
SAM wrote:

Quant à Pages c'est une horreur !
D'une ergonomie lourdingue (comparativement à AW).
Ne s'embarrasse pas à proposer des remplacements
et encore moins des "remplacer tout".



Tu as mal cherché ;)

--
[SbM]
<http://sebastienmarty.free.fr> - <http://tradintosh.free.fr>
<http://sbm.ordinotheque.free.fr> - <http://palmiciel.free.fr>
"If the French were really intelligent, they'd speak English" (W. Sheed)
Avatar
yapu
JiPaul wrote:

Alors ^ représente le début de ligne et $ la fin de ligne



génial, merci à tous les 2.

mais pourquoi donc ne pas l'écrire dans l'aide...
--
Philippe Manet
en fait, c'est manet avant @
Avatar
yapu
JiPaul wrote:

$ la fin de ligne



3000 lignes d'une colonne de tableur copiée dans writer
remplacer els fins de lignes par ";" en 10" sur mon vieux G5

eu la flemme d'essayer avec 100 000... mais en tout cas, ça me va comme
ça.
--
Philippe Manet
en fait, c'est manet avant @
Avatar
SAM
Le 5/20/10 10:11 PM, Philippe Manet a écrit :
JiPaul wrote:

Alors ^ représente le début de ligne et $ la fin de ligne



génial, merci à tous les 2.

mais pourquoi donc ne pas l'écrire dans l'aide...



parce que ce sont des RegExp
et que tout le monde connait les RegExp
m'enfin quoi !

;-)

Plus sérieusement, c'est bien écrit dans l'aide.

^ Trouve le terme recherché uniquement si celui-ci figure
au début d'un paragraphe. Les caractères spéciaux
(tels que les champs vides et les cadres ancrés comme caractères)
(( je ne sais de quoi qu'ils causent là .... ! ))
situés au début d'un paragraphe sont ignorés.
Exemple : ^Pierre
... trouvera 'Pierre' s'il est en début de § (paragraphe)

$ Trouve le terme recherché uniquement si celui-ci figure à la fin
d'un paragraphe. Les caractères spéciaux (tels que les champs vides
et les cadres ancrés comme caractères) situés à la fin d'un
paragraphe sont ignorés.
Exemple : Pierre$
... trouvera 'Pierre' s'il est en fin de §
(( c'est à dire jamais, puisque normalement là c'est un point ))

Encore que ... "bien écrit" ...
je ne sais qui l'a pondue ou traduite mais c'est dans l'ensemble
n'importe quoi ces explications de caractères de recherche.
(ne serait-ce que pour *)
voir : <http://cjoint.com/data/fuxOfbfLD1.htm>

Après ... il faut avoir un peu essayé et user de pas mal de jugeote !

donc le motif (pattern) ^$ signifie § vide
et probablement le motif $^ signifiera le retour entre § ???
le motif $ cherchera tous les débuts de §

le motif ^([A-Z].)([0-9]+)
cherchera en début de § : A.1 A.2 ... A.99 ... Z.99999
et pourra se faire remplacer par $10$2
(on garde le groupe entre () 1 et celui 2, et intercale un 0)
soit : A.01 A.02 ... A.099 ... Z.099999
(les trucs en minuscules auront été ignorés)
OOo devrait permettre de changer le style des trucs trouvés, pas essayé.

On veut mettre un point en fin de § s'il a été oublié (et qu'il est
précédé d'une lettre)
([a-zA-Z])$ --> $1. (en remplacement le . n'est pas à échapper)
On veut supprimer tous les espaces en fin de § même si suivis d'1 .
[ ]+(.?)$ --> $1

Tu peux, pour te cultiver à ce propos, par exemple et en anglais,
télécharger TextWrangler (ou même BBEdit) et soit fouiller dans le
paquet de l'appli pour trouver 'grep', soit lancer l'appli, demander
l'aide, y trouver 'grep'.
Ça te fera une 30aine de pages de lecture.

Sauf que, bien sûr, dans OOo les options y sont moins riches.
Cependant dans TW ou BBE, pour les options communes à OOo ça y est
beaucoup mieux essspliqué !!!

Le NG des RegExp : fr.comp.lang.regexp
<http://groups.google.fr/groups/search?as_ugroup=fr.comp.lang.regexp>

--
sm
Avatar
SAM
Le 5/20/10 11:25 PM, Philippe Manet a écrit :
JiPaul wrote:

$ la fin de ligne



3000 lignes d'une colonne de tableur copiée dans writer



déjà, ça, j'ai eu un mal fou à y arriver

remplacer els fins de lignes par ";" en 10" sur mon vieux G5



1,5 s sur mon vieil iMac-intel (33000 lignes)

immédiat dans BBE ou AW

--
sm
1 2 3 4