[AS] Coup de pouce
Le
benoit

Bonjour,
J'ai besoin de resortir mon bon AS et je suis un paumé après tant
d'années. J'ai un fichier contenant du texte (des définitions) et je
souhaite générer un fichier par entrée.
exemple :
ACCENT V.Arçon.
ACCROCHE-C¼URS Favoris (Vidocq). -- Allusion aux accroche-coeurs
féminins, petites mèches contournées et plaquées prétentieusement sous
la tempe.
ACCROCHER Mettre au Mont de Piété, c'est-à-dire au clou. Ce dernier
mot explique le verbe. -- « Ah ! les biblots sont accrochés.» -- De
Montépin.
ACCROCHER Consigner un soldat, c'est-à-dire l'accrocher à son
quartier, l'empêcher d'en sortir.
Il y a une tabulation entre le mot (ou groupe de mots) qui servira de
nom de fichier et sa définition. Mais il y a des mots avec plusieurs
définitions et je souhaite avoir un fichier (texte) différent (genre
ACCROCHER 1, ACCROCHER 2)
Je suis paumé avec le fait que je veux utiliser la tabulation comme
séparateur (au lieu de l'espace) et qu'il faille aussi séparer par
paragraphe. Un coup de pouce ?
D'avance merci
P.S. je suis en train de me (re)concocter un dictionnaire d'argot qui
utilise une dizaine de sources différentes et Spotlight est idéal pour
rechercher des définitions ou synonymes dans une base de fichiers avec
un fichier par mot.
--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne et
personne ne sait pourquoi !" [ Albert Einstein ]
J'ai besoin de resortir mon bon AS et je suis un paumé après tant
d'années. J'ai un fichier contenant du texte (des définitions) et je
souhaite générer un fichier par entrée.
exemple :
ACCENT V.Arçon.
ACCROCHE-C¼URS Favoris (Vidocq). -- Allusion aux accroche-coeurs
féminins, petites mèches contournées et plaquées prétentieusement sous
la tempe.
ACCROCHER Mettre au Mont de Piété, c'est-à-dire au clou. Ce dernier
mot explique le verbe. -- « Ah ! les biblots sont accrochés.» -- De
Montépin.
ACCROCHER Consigner un soldat, c'est-à-dire l'accrocher à son
quartier, l'empêcher d'en sortir.
Il y a une tabulation entre le mot (ou groupe de mots) qui servira de
nom de fichier et sa définition. Mais il y a des mots avec plusieurs
définitions et je souhaite avoir un fichier (texte) différent (genre
ACCROCHER 1, ACCROCHER 2)
Je suis paumé avec le fait que je veux utiliser la tabulation comme
séparateur (au lieu de l'espace) et qu'il faille aussi séparer par
paragraphe. Un coup de pouce ?
D'avance merci
P.S. je suis en train de me (re)concocter un dictionnaire d'argot qui
utilise une dizaine de sources différentes et Spotlight est idéal pour
rechercher des définitions ou synonymes dans une base de fichiers avec
un fichier par mot.
--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne et
personne ne sait pourquoi !" [ Albert Einstein ]
Quel type d fichier ? .txt ou .rtf ?
Parce que ce à quoi je pense , passant par une commande Shell pour la
création du dit fichier, la syntaxe est simple pour du .txt et assez
"spéciale" pour du .rtf
À part ça, dans les exemples que tu donnes, les coupures sont générées
par MacSoup, ou la définition et exemples peuvent prendre plusieurs
lignes (paragraphes pour AppleScript) pour un même mot ?
Si c'est sur plusieurs lignes, ça va pas rendre les choses
faciles-faciles !
La tabulation devra effectivement servir de repère (TID) pour créer le
nom du fichier.
--
J. B.
Capitaine, je ne peux pas pulso-relayer l'aéro-aimant parce que la
crevasse oblative est sur le point de neutraliser le penta-transistor
binaire !
Benoit nous a bien apitoyés :
Si tu es toujours intéressé, j'ai pondu un script qui te fait un fichier
.txt par entrée et ajoute un incrément si entrées répétitives.
--
J. B.
Tout va bien à bord. Le morpho-trigloïde cythérien semble calcifrer
correctement. Mais nous devrions transformer le plasma résistant pour
plus de sécurité.
txt suffit amplement pour ça.
C'est bien sur une seule ligne
Oui. J'ai absorbé une dizaine de dicos sur le web et je cherche à rendre
le tout facile à utiliser. Donc nettoyage du html puis consolidation des
fichiers sur un seul pour mettre de l'ordre et régler les pbs d'un
fichier avec plusieurs entrées (même mot plusieurs définitions) pour un
fichier par entrée.
Tout ça est assez propre et parès de nombreuses relectures les fautes
humaines doivent être limitées (si je maîtrisais le grep il y aurait
poins de fautes:)
--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
Je veux bien oui:
P.S. je suis en train de mettre mon nez dans le corvophraseur et je
prépare pour lui des listes de mots plus contemporains.
--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
Si tu n'y vois pas d'inconvénient, je vais déposer le script sur Cjoint
pour que d'autres puissent profiter du moteur.
Dans l'exemple que j'utilise tu verras que la balise de titre est bien
la tabulation, le titre lui-même pouvant être en deux mots.
Je pense que ça devrait répondre à ton attente.
Tu auras juste à intégrer la gestion du presse-papier pour alimenter
l'enrée du texte original que tu veux éclater en autant de fichiers.
Dans le courant de l'après-midi je vais mettre un lien Dropbox pour
CovoX2 (celui qui crée ma signature ici) qui est sur la base des
dictionnaires du CorvoPhraseur original, mais dont j'ai largement
réécrit le moteur pour qu'il tire toute la puissance des fonctions
d'AppleScript.
Donc la manière de taguer les mots est légèrement différente (au lieu de
chiffres abscons, un nom féminin est tagué "F", un mot qui demande
l'élision de l'article ou de la préposition est tagué "e", par exemple)
Tu verras si tu veux t'en servir ou pas.
--
J. B.
Pas de panique ! Turbo-encoder la bulbo-grille érectile ne nous empêche
pas d'inhiber la sustentation pourniflante ni même d'amplifier
l'octo-déflecteur polymorphe.
Merci, tu me remets ça dans la cabohe. Par contre j'ai un paquet de
questions
Exactement.
Oui, je vais essayer de faire un script avec des trucs perso qui me
reviennent maintenant à l'esprit. Genre :
- tell "TextWrangler" to set enterText to content of front document
(ce n'est peut-être pas content mais every character, every item, every
paragraph... à voir)
Comme ça je peux imaginer faire un repeat sur les documents ouverts.
- faire un path ailleurs que sur le desktop (mettre 3000 fichiers
dessus...)
Par contre il y a des trucs que je ne comprends pas du tout comme le
shell script ou le « -2 » dans :
-- set indexedname to (words 1 thru -2 of theEntry & space & theIndex)
as text
Je vais m'y mettre une fois que j'ai terminé le script.
--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
C'est comme la bicyclette, quand on arrête de coder on sait encore
enfourcher la bécane, mais on ne vaut plus rien dans les côtes ;-)
Alors bon courage ;-)
Indibutablement ! Je me doutais bien que tu voudrais un dossier pour ça,
mais tu n'as plus qu'à mettre son chemin en dur dans le script, à la
place de celui du Bureau.
Ah, oui, d'aucuns bèent d'admiration devant la concision des commandes
Shell, mais perso je trouve ça horriblement abscons, même si j'utilise
la puissance des outils.
Pour faire la même chose en invoquant TextEdit, ce n'était pas une
ligne, mais 8 qu'il aurait fallu !
dans une liste, de mots, caractères, items, le répérage absolu de
l'objet cible se fait soit positivement en comptant du début (à gauche)
/word 4 of "ceci est un exemple hautement pédagogique"/ ==> "exemple"
soit négativement en partant de la fin du conteneur
character -3 of "exemple" ==> "p"
d'où
/words 1 thru -2 of theEntry/ ==> récupère du premier à l'avant dernier
mot du conteneur <theEntry>, bornes incluses.
Bonne continuation.
--
J. B.
Damned, le supra-gain moncturien ne peut pas morvo-phaser la
micro-capacité magnétique ! Nous allons être obligés de recombiner la
capillectomie bouffonnée...
Attention, une correction à apporter au script :
qui devient caduque
Un bug dans le handler / on increment()/
fait que si plusieurs entrées de même nom, au delà de 2 les fichiers
suivants ne sont pas créés mais écrasent le précédent sans incrémenter
le nombre.
Voici le script corrigé, avec exemple inclus pour tester que cette fois
il y a bien création de
ACCROCHER ; ACCROCHER 2 ; ACCROCHER 3 ; ACCROCHER 4
--
J. B.
Il est possible que le morvo-survolteur microscopique puisse rediriger
la singularité à court rayon d'action, mais seulement si nous pouvons
induire le trophoblaste phasé et infra-morfler le continuum vagal !
Exactement, c'est pourquoi on demande un coup de main pour savoir où
redébuter avec une descente, avant d'attaquer le plat... les côtes c'est
pour plus tard ;)
Comme tu fais appel à des routines externes (c'est comme ça que ça
s'appelle ?) je suis un peu largué.
En tout cas c'est plus propre que ce que j'aurai fait, du genre
Pourquoi ? Je boucle en prenant le document au premier plan et quand il
n'y en a plus... j'ai une erreur et je sors ;)
C'est moins de lignes que le tien, mais il n'y a pas la gestion des
fichiers avec un nom identique :
tell application "TextWrangler"
activate
set text item delimiters to tab
repeat until false
set myNewText to paragraph 1 of project window 1
make new text document at project window 1
set character 1 to myNewText
set myName to item 1 of myNewText and ".txt"
save text document 1 to file "HD:Users:me:Desktop:" & myName
without saving as stationery
close text document 1 saving yes
set paragraph 1 of project window 1 to ""
end repeat
set text item delimiters to ""
end tell
Pas testé du tout (je vais d'abord assuré avec le tien). Si je viens de
testé et ça ne marche pas. Je verrais ça plus tard, beaucoup plus tard.
Oui, je m'en rappelle bien et -1 est le dernier.
Oui, mais pourquoi l'avant dernier ? Quel est le dernier ? Tu ne
supprimes pas le chiffre ?
Merci
--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
Heu, il n'y avait pas de scepticisme narquois dans ma remarque mes
encouragements allaient l'ensemble de ton projet qui a l'iar assez
ambitieux. C'est tout.
La présence du chiffre ayant été implicitement détectée plus haut, cette
commande sert justement à ne garder du nom précédent (stocké en tampon)
que la partie originale en écartant l'index, qui sera incrémenté à part.
ACCROCHER 2
le premier mot est ACCROCHER
l'avant dernier mot est ACCROCHER
Du premier à l'avant dernier inclus = ACCROCHER
il ne reste plus qu'à faire <last word (ici c'est 2) as integer +1> pour
avoir 3
on réassemble le tout avec les TID réglés à /space/
et ça donne ACCROCHER 3.
--
J. B.