Page 1 sur 1
Evitez un bug avec FileSeek() !!
Publié : jeu. 21/août/2008 21:54
par Mytic
J’avais un code créée avec la version 4.10 de PureBasic, il marchait très bien, jusqu’au jour où je le compile avec la version 4.20 !
Là j’avais le même problème à chaque fin de procédure ( EndProcedure ) comme dans ce topic sur les Thread’s :
http://www.purebasic.fr/french/viewtopic.php?t=8429
Sauf que la cause est différentes, c’est FileSeek() la cause cette fois !
Avant elle acceptait comme position les Double ! Mais maintenant sauf les Quad !
Donc à faire très attention, sinon les résultats seront erronées.
C’est écrie timidement dans la doc :
FileSeek(#Fichier, Position.q)

Publié : ven. 22/août/2008 9:29
par djes
Tu veux dire que ton ancien code ne fonctionne plus à cause d'un passage des doubles aux quads? C'est vraiment bizarre! Il devrait y avoir conversion automatiquement, au moins dans la procédure fileseek! Tu es sûr de toi?
Publié : ven. 22/août/2008 13:07
par Mytic
Oui sûrrrr, sinon je n’aurai pas créé ce topic !

Publié : ven. 22/août/2008 13:41
par djes
Faudrait mettre en valeur le bug, et l'envoyer pour test sur le forum anglais, avant de l'envoyer dans la section bugs.
Publié : jeu. 12/mars/2009 10:25
par Backup
depuis la version 4.30
fileseek refuse un deplacement negatif !!
bref on ne peut plus reculer !!

Publié : jeu. 12/mars/2009 10:28
par Anonyme
Perso , je map le fichier en mémoire avec ReadData()
puis je me balade avec des peek poke , beaucoup plus souple

Publié : jeu. 12/mars/2009 13:18
par Backup
Cpl.Bator a écrit :Perso , je map le fichier en mémoire avec ReadData()
puis je me balade avec des peek poke , beaucoup plus souple

oui , mais pour de tres gros fichier ...
de plus on a Fileseek(), qui est prévue pour bouger la tete de lecture
sans pouvoir reculer, cette procedure n'a pas d'interet !!
fini le direct2disk !!

Publié : jeu. 12/mars/2009 14:06
par Backup
bon !! fileseek() marche tres bien , c'est moi qui deconne !!

Publié : jeu. 12/mars/2009 15:09
par Anonyme
oui , mais pour de tres gros fichier ... Confused
Bah , je vois pas le rapport , qui soit gros ou petit , ton fileseek() ne lit pas directement sur le disque , mais en mémoire.
ReadData permet de choisir la "longueur" à lire , tu lis par exemple 4 bytes après la position que tu souhaites , et voila ton "fileseek()" maison...

Publié : sam. 21/mars/2009 4:24
par Ollivier
Cpl.Bator a écrit :oui , mais pour de tres gros fichier ... Confused
Bah , je vois pas le rapport , qui soit gros ou petit , ton fileseek() ne lit pas directement sur le disque , mais en mémoire.
ReadData permet de choisir la "longueur" à lire , tu lis par exemple 4 bytes après la position que tu souhaites , et voila ton "fileseek()" maison...

Même quand le fichier fait plusieurs Go, FileSeek lit en mémoire?