C - Recherche dans utf-8

C - Recherche dans utf-8 - C - Programmation

Marsh Posté le 18-04-2005 à 14:07:51    

bonjour [:god]
 
soit un document en utf(n) samere(tm)
 
est ce que a votre avis, est ce qu'on peut utliser des algos classique de recherche de chaine de caractere sur ledit document utf-8, ou le systeme d'encodage de ce dernier risque de tout ruiner ? (donc je rapelle en gros les trucs classiques : comparaisons octet par octet)
 
merci [:negueu]
 
 
exemple :
 
j'ai un document encodé en mac roman
j'ai une chaine de caractère en iso-8859-1
 
je converti tout ca en utf-8 et j'utilise un boyer moore classique la dessus


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 18-04-2005 à 14:07:51   

Reply

Marsh Posté le 18-04-2005 à 14:10:01    

ça marche mais si tu commences la balayage depuis le début de la chaine et que tu utilises des routines spécifiques pour de déplacer caractère par caractère. ou alors tu passes en utf-32 :)

Reply

Marsh Posté le 18-04-2005 à 14:12:11    

Taz a écrit :

ça marche mais si tu commences la balayage depuis le début de la chaine et que tu utilises des routines spécifiques pour de déplacer caractère par caractère. ou alors tu passes en utf-32 :)


 
ca m'a l'air un peu casse gueule, non ? l'utf 32, oué, pourquoi pas, c'est une bonen feinte du pere la feinte, j'y avais pas pensé, tiens, c'est pas con.
 
edit : bon par contre pour le boyer moore faudra changer la table de lookup [:petrus75]


Message édité par chrisbk le 18-04-2005 à 14:12:40

---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 18-04-2005 à 14:13:22    

non, c'est pas trop casse gueule. j'utilise ça avec glib/gtk et ça marche pas trop mal. Faut juste oublier ses habitudes de ++p c'est tout.

Reply

Marsh Posté le 18-04-2005 à 14:14:46    

Reply

Marsh Posté le 18-04-2005 à 14:16:43    


 
tiens, bin tant qu'on y est, y'a une feinte pour savoir quelle version de glib on a d'installé ? (on a pas un linux de derniere fraicheur, donc bon. Du redhat 7.4 si je ne m'abuse)


Message édité par chrisbk le 18-04-2005 à 14:17:20

---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 18-04-2005 à 16:05:54    

pkg-config --modversion glib-2.0

Reply

Marsh Posté le 18-04-2005 à 16:06:53    

pkg-config --list-all | grep glib
 
déjà
 
cela dit pour un bon support, je te conseille de mettre à jour ta glib (ou du moins d'utiliser une version récente à côté)

Reply

Marsh Posté le 18-04-2005 à 16:19:23    

ah bin on a la 2.0 [:god]  
 
bin c'ets pas trop mon pc, mais plutot le serveur de prod, donc bon, en fait on prefere pas trop y toucher
 
Sinon, tiens, sans rapport et tant que je t'ai sous la main, y'a moyen de creer un fichier sous unix en specifiant directement la taille sur disque ? (genre pour ne pas avoir a le remplir a coup de fwrite tout pourri)
 
 


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 18-04-2005 à 16:23:25    

1) ben tu peux installer ta glib-2.0 récente dans un coin, sans problème. pkg-config te rends service pour ajuster ton LDPATH et CPPPATH. Penses-y.
2) oui. tu ouvres, et tu fais un seek, t'écris 1 octets bidon, et voilà, t'as un fichier à trou.

Reply

Marsh Posté le 18-04-2005 à 16:23:25   

Reply

Marsh Posté le 18-04-2005 à 20:25:42    

alors ça passe ?

Reply

Marsh Posté le 18-04-2005 à 20:50:45    

pas eu le tps [:le kneu]
demain jmeclate avec tout ca [:le kneu]
 
merci [:le kneu]
 
par contre ton fseek j'ai pas tout compris [:le kneu]


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 18-04-2005 à 21:16:27    

ben sous unix, tu as des fichiers à trou.
 
taille logique > espace disque occupé
 
donc pour faire un trou, c'est simple. exemple rapidos
 
 

Code :
  1. Python 2.3.5 (#2, Mar 26 2005, 17:49:17)
  2. [GCC 3.3.5 (Debian 1:3.3.5-12)] on linux2
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> fd = open("/tmp/sparse", "w" )
  5. >>> fd.seek(1 << 30)
  6. >>> fd.write("plop" )
  7. >>> fd.close()
  8. >>>
  9. [21:15:09][pts/2][~][#3][&0]
  10. benoit@ibook >>> ls -lh /tmp/sparse
  11. -rw-------  1 benoit benoit 1,1G 2005-04-18 21:15 /tmp/sparse
  12. [21:15:15][pts/2][~][#4][&0]
  13. benoit@ibook >>> du -h /tmp/sparse
  14. 1,1M    /tmp/sparse


 
vois ça comme une allocation paresseuse. c'est une technique très employée.

Reply

Marsh Posté le 18-04-2005 à 21:18:04    

ah d'accord, je connaissais pas, interessant. question rapidos : si apres je map ce fichier en mémoire en MAP_SHARED, j'ai bien acces au 1.1go sans gag ? (juste pour etre sur)


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 18-04-2005 à 22:01:12    

mais jme demandais, c'est bien conforme aux normes ce comportements ? [:petrus75]


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 18-04-2005 à 23:19:24    

C'est style les Sparse Files de NTFS ?

Reply

Marsh Posté le 18-04-2005 à 23:26:39    

l'inverse !

Reply

Marsh Posté le 18-04-2005 à 23:27:32    

et oui, c'est normalisé ce genre de comportement, messieurs les dev de SGBD s'en servent beaucoup d'ailleurs

Reply

Sujets relatifs:

Leave a Replay

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