Lecture octet par octet

cs_manu18 Messages postés 3 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 13 février 2004 - 16 mai 2003 à 11:05
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 22 juin 2005 à 10:56
Jerem :shy)

J'aurai besoin de votre aide

Je programme sous Delphi et j'essaye de lire octet par octet un fichier avec la fonction "Read(F,value)"
Malheureusement c'est trés long..trop long pour la lecture sur de gros fichier!
On m'a expliqué que si je passe par de l'asm j'irai bcp plus vite..
Je vous en supplie.. ça serait possible de m'aider!!
Un simple code qui permet de lire octet par octet et que je puisse traiter l'octet lu (ou sois en asm ou sous delphi)

je vous remercie d'avance de votre precieuse aide..

Merci..

Salut a tous..

3 réponses

filter Messages postés 42 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 16 mai 2003
16 mai 2003 à 16:13
> Je programme sous Delphi et j'essaye de lire octet par octet un fichier avec la fonction "Read(F,value)"
> Malheureusement c'est trés long..trop long pour la lecture sur de gros fichier!
Qu'est-ce que tu appelles gros fichier???????

> On m'a expliqué que si je passe par de l'asm j'irai bcp plus vite..
N'importe koi. Les seuls optimizations possible peuvent etre fait au niveau du cache, et je doute que ceci t'interesse.
Bien sur, lire octet par octet est le pire facon de lire un fichier volumineux.
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
17 mai 2003 à 19:47
Päs obligatoirement, si tu programme cela en C ou encore mieux utiliser l'API Windows pour effectuer un Memory File Mapping c'est à dire une projection du fichier en mémoire, Windows gèrera un accès bufferisé optimal.

Core Breaker :)
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
22 juin 2005 à 10:56
ReadLn et ses amis sont déjà faits en assembleur. On ne peut pas aller plus vite.

Ces fonctions ont un buffer de 128 octets, et ce qui prend du temps, c'est surement la taille de ce petit buffer. Enfin... ?!?

Autre pb avec ces fonctions: tu ne peux pas lire les fichiers binaires (*.exe par exemple), car il y a blocage si on recontre un octet 1Ah. Non corrigé jusqu'à Delphi 7. J'ai implanté une classe permettant de passer outre cette restriction, et je sens que je vais la soumettre, car elle est vraiment bien... sous DelphiFr seulement qui propose un code TBitStream. Ca donnera déjà un avant goût...

===========
Validez les réponses si ok...

ViewVite : HTML
0
Rejoignez-nous