[résolu]recherche dans un fichier encodé en utf8

recherche dans un fichier encodé en utf8 [résolu] - C++ - Programmation

Marsh Posté le 18-07-2009 à 18:57:18    

Dans le but de faire un lecteur flash de dictionnaire (utilisant les dico stardict), et l'actionscript étant quasiment incapable de controler des données de bas niveau, il faudrait que je puisse recréer le fichier index, qui contient: chaque mot, sa position et la longueur de la définition dans le fichier du dictionnaire (encodé en utf8).

Citation :

<k>ABANDONNEMENT</k><pos><abr>n. m.</abr></pos>
 
Action de s’abandonner, de se laisser aller, de se livrer avec trop de facilité. <c c="#b8860b"><i>Il avait pour elle une tendresse qui allait jusqu’à l’abandonnement de toute volonté. Les fautes de ce prince résultèrent de son entier abandonnement à d’indignes favoris.</i></c> Il vieillit.  
 
Employé absolument, il signifie Dérèglement dans la conduite, dans les moeurs. <c c="#b8860b"><i>Vivre dans l’abandonnement, dans le dernier abandonnement.</i></c>
 
Il signifie, en termes de Droit, surtout dans le style du notariat, Attribution, à chacune des parties qui sont dans l’indivision, de certains biens ou de certaines valeurs pour les remplir de leurs droits dans le partage ou dans la liquidation.
 
<c c="#b8860b"><i>Contrat d’abandonnement,</i></c> se dit quelquefois dans le sens d’Abandon de biens ou de Cession de biens.
<k>ABANDONNER</k><pos><abr>v. tr.</abr></pos>


 
le fichier ressemble à ça, et il faudrait que je puisse obtenir en gros le positionnement de chaque balise <k>.
 
Le c++ pourrait-il faire cela? Si oui, avec quelles fonctions obtenir une string contenant le texte?
Sinon ca devrait marcher avec java...


Message édité par islington le 19-07-2009 à 02:22:13
Reply

Marsh Posté le 18-07-2009 à 18:57:18   

Reply

Marsh Posté le 18-07-2009 à 20:20:55    

l'UTF-8 rentre sans souci dans les chaines standard du C++ (std::string)
 
Faire un fichier d'index à partir de ton format de fichier n'a pas l'air bien compliqué, oui, mais cela dit, tu pourrais sans doute t'en sortir plus rapidement via un petit script perl ou python (voire shell, à coups de sed) et tu l'écrirais sans doute plus rapidement.


---------------
last.fm
Reply

Marsh Posté le 19-07-2009 à 02:21:46    

Effectivement ca se fait très bien en pyhton merci :bounce:  
>

Code :
  1. source = open( "Dico_result_38.xdxf.dict", 'r')
  2. newlist = open("entries.idx",'w')
  3. dic = source.read()
  4. i=0
  5. tab = dic.split("<k>" )
  6. for defi in tab :
  7. word = defi.split("</k>" )[0]
  8. newlist.write(word + " " + str(i) + " "+ str(len(defi) + 3) + "\n" )
  9. i = i+len(defi) + 3


Message édité par islington le 19-07-2009 à 02:22:36
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed