Euh...
Ben imaginons que le fichier contienne à un instant "t" qui a une taille T1:
abcdefrehfiehfihrfhrfo
frhfiehfi
friejfoierjfioejfoijerfoijeroifj
forforjfojforjforjfojrfojrofjorfjorjfor
donc vous le lisez, puis vous voyez que la taille change, donc que des octets ont été rajoutés (fichier a la taille T2):
abcdefrehfiehfihrfhrfo
frhfiehfi
friejfoierjfioejfoijerfoijeroifj
forforjfojforjforjfojrfojrofjorfjorjfor
llllllllllllllllllllllllllllllll
mmmmmmmmmmmmmmmmmmmmmmmmmmmm
Comme vous avez utlisé le "flit", vous êtes déjà positionné à la fin de la ligne "forforjfojforjforjfojrfojrofjorfjorjfor"
Donc si vous faites un flit de "x" octets (T2-T1), vous aurez en mémoire:
llllllllllllllllllllllllllllllll
mmmmmmmmmmmmmmmmmmmmmmmmmmmm
et votre pointeur sera à la fin de la ligne des "m"...
Après, il suffit de détecter les "RC" (RC = \r\n ou caract(10)+caract(13)) (ou caract(10) ou caract(13) selon le type de renvoi à la ligne) et de faire une boucle...
Genre:
ch_org contenant "llllllllllllllllllllllllllllllll
mmmmmmmmmmmmmmmmmmmmmmmmmmmm"
nb_lig=chaineoccurrence(ch_org,RC)
nb_lig++ //on rajoute un car si on a:
// ligne1 RC ligne2, il y a 2 lignes à traiter pour 1 RC
for k=1 to nb_lig
temp=extraitchaine(ch_org,k,RC)
//traiter la ligne contenue dans temp
end
A affiner bien sûr...
Autre cas, si vous n'avez pas une ligne complète, genre:
llllllllllllllllllllllllllllllll
mmmm
et plus tard:
llllllllllllllllllllllllllllllll
mmmmmmmmmmmmmmmmmmmmmmmmmmmm
nnnnnnnnnnnnnnnnn
il faudra détecter donc que la ligne des "m" était incomplète (il manquait le RC à la fin par exemple ou longueur de la chaîne etc...) et garder pour le flit d'après donc
dans une variable, genre:
ch_org=flit(no_fichier,nombre_octets)
ch_org=last_buffer+ch_org //on rajoute le buffer de l'autre fois, les "m" non traités.
Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=3505&post_id=14845