Message de rapport:
 

Re: execution d'un thread secondaire

Sujet: Re: execution d'un thread secondaire
par lmame sur 9/2/2006 14:56:54

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
mmmm

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.
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2