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

Outils pour utilisateurs

Outils du site


copie_partielle_bloc

Warning: Undefined array key -1 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/html.php on line 1458

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
Prochaine révision
Révision précédente
copie_partielle_bloc [2010/03/27 18:18]
tyrtamos
copie_partielle_bloc [2010/03/27 18:36]
tyrtamos
Ligne 8: Ligne 8:
  
 L'objectif est donc de faire ce travail en utilisant exclusivement les lectures/écritures binaire par bloc. On verra que comme les blocs sont de même taille, Python reprendra facilement les mêmes zones mémoire.  L'objectif est donc de faire ce travail en utilisant exclusivement les lectures/écritures binaire par bloc. On verra que comme les blocs sont de même taille, Python reprendra facilement les mêmes zones mémoire. 
 +
 +Petite restriction du code ci-dessous: ça marche, à condition que l'encodage des caractères type unicode (=caractères codés sur plusieurs octets) ne contienne pas d'octet identique à la fin de ligne cherchée.
  
 ===== Trouver l'adresse sur disque du début d'une ligne de texte ===== ===== Trouver l'adresse sur disque du début d'une ligne de texte =====
Ligne 47: Ligne 49:
 </code> </code>
  
 +Si le numéro de ligne demandé dépasse le nombre de lignes du fichier, la fonction retourne -1.
 +
 +\\
 Testons ce code. On va fabriquer un fichier de 200000 lignes, qui comportera comme contenu: '0', '1', '2', ..., '199999'. On pourra donc facilement vérifier que la ligne lue est bien celle qu'on voulait. Testons ce code. On va fabriquer un fichier de 200000 lignes, qui comportera comme contenu: '0', '1', '2', ..., '199999'. On pourra donc facilement vérifier que la ligne lue est bien celle qu'on voulait.
  
Ligne 82: Ligne 87:
 ===== Copier les lignes n1 à n2 d'un fichier texte par bloc binaire ===== ===== Copier les lignes n1 à n2 d'un fichier texte par bloc binaire =====
  
-Pour copier les lignes n1 à n2 par bloc binaires, le principe est simple: on va utiliser la fonction précédente pour calculer les adresses sur disque du début de la 1ère ligne et celle de la dernière ligne, et on va copier par bloc tous les octets entre ces 2 limites.+Pour copier les lignes n1 à n2 (non inclue) par blocs binaires, le principe est simple: on va utiliser la fonction précédente pour calculer les adresses sur disque du début de la 1ère ligne et celle de la dernière ligne, et on va copier par bloc tous les octets entre ces 2 limites.
  
 Voilà le code: Voilà le code:
copie_partielle_bloc.txt · Dernière modification: 2010/03/27 18:36 de tyrtamos