Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
fichier_acces_direct [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


fichier_acces_direct

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Dernière révision Les deux révisions suivantes
fichier_acces_direct [2008/12/21 09:22]
tyrtamos
fichier_acces_direct [2008/12/21 11:22]
tyrtamos
Ligne 45: Ligne 45:
  
 C'est assez facile pour l'enregistrement de chaines de caractères, à une exception près: attention aux encodages unicode qui "consomment" plus de place en octets qu'il n'y a de caractères imprimables! Il serait d'ailleurs sage qu'il y ait dans le code en même temps une vérification/alerte de dépassement et un tronquage pour éviter qu'une chaine trop longue ne recouvre le début de l'enregistrement suivant. C'est assez facile pour l'enregistrement de chaines de caractères, à une exception près: attention aux encodages unicode qui "consomment" plus de place en octets qu'il n'y a de caractères imprimables! Il serait d'ailleurs sage qu'il y ait dans le code en même temps une vérification/alerte de dépassement et un tronquage pour éviter qu'une chaine trop longue ne recouvre le début de l'enregistrement suivant.
- 
-Si vous voulez évaluer le nombre d'octets nécessaire pour stocker une chaine encodée en utf-8, sur la base de statistiques, vous pouvez créer cette fonction: 
- 
-<code python> 
-def lenunic(ch): 
-    n = 0 
-    for c in ch: 
-        n += 1 + int((ord(c) > 255)) 
-    return n 
- 
-x = u"éèàçôîêöùλ" 
-print len(x) # => affiche 10 (il y a bien 10 lettres) 
-print lenunic(x)  # => affiche 11, car les 10 lettres codées en utf-8 prendront 11 octets à cause de la dernière lettre "λ": ord(u"λ")=955 
-</code> 
  
 Pour conserver cette longueur d'une session à l'autre, quand il n'y a qu'un seul programme qui accède au fichier, on peut la conserver dans le programme en la codant "en dur" (exemple: lge = 25). Pour conserver cette longueur d'une session à l'autre, quand il n'y a qu'un seul programme qui accède au fichier, on peut la conserver dans le programme en la codant "en dur" (exemple: lge = 25).
fichier_acces_direct.txt · Dernière modification: 2010/10/28 15:43 de tyrtamos