CONVERSION DE FICHIER TEXTE DOS/WINDOWS EN FICHIER TEXTE UNIX
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
17 avril 2004 à 20:29
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
18 avril 2004 à 02:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 18 avril 2004 à 02:25
'probablement' tu peux le remplacer par enormement, dans un prog comme celui ci 98 % du temps se passe en acces disques donc reduction est (32 * 1024 FOIS), c'est pas rien.
*d++ = *c se decompose en:
*d = *c;
d++;
Le goto est une vieille habitude qui m'evite des indentations parfois qui n'en finissent plus avec des while, for... Dans tous les cas le compilo ecrira des goto (JMP en ASM) donc resultat est idem.
BruNews, Admin CS, MVP Visual C++
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 18 avril 2004 à 02:19
tu peux me rappeler si *d++ correspond à (*d)++ ou à *(d++) ? merci ^^
accessoirement, j'aurais utilisé une while plutôt qu'un système de goto, est-ce que le goto est, d'une manière oe d'une autre, plus rapide, ou est-ce que c'est une de tes habitudes de codage?
finalement, la seule chose qui change c'est que tu traîtes un plus gros volume d'un coup, tu fais des économies d'échelle ^^ c vrai que c probablement plus rapide.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 18 avril 2004 à 02:10
il s'agit de saquer un octet donc simplissime.
Alloues un buffer 32 Ko par exemple (pbuff). On boucle tant qu'on aspire.
A chaque tour:
BYTE *c, *d, *pout;
NextPass:
... lecture fichier
c d pbuff;
pout = pbuff + nAspires;
while(c < pbuff) {
if(*c !13) *d++ *c;
c++;
}
WriteFile(hfl, pbuff, d - pbuff, &dw, 0);
if(nAspires >= sizeBuff) goto NextPass;
BruNews, Admin CS, MVP Visual C++
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 18 avril 2004 à 02:00
BruNews, tu ferais comment pour limiter les accès? Tu peux pas non plus lire tout le fichier dans un tableau puis le récrire, c'est antiproductif. Et puis pour altérer des données, je vois que ça... tu lis, tu traîtes, tu écris.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 avril 2004 à 20:29
voila qui fera 2 acces fichiers par octet, un en lecture et un en ecriture.
Vous devez avoir le temps dans votre fac.
18 avril 2004 à 02:25
*d++ = *c se decompose en:
*d = *c;
d++;
Le goto est une vieille habitude qui m'evite des indentations parfois qui n'en finissent plus avec des while, for... Dans tous les cas le compilo ecrira des goto (JMP en ASM) donc resultat est idem.
BruNews, Admin CS, MVP Visual C++
18 avril 2004 à 02:19
accessoirement, j'aurais utilisé une while plutôt qu'un système de goto, est-ce que le goto est, d'une manière oe d'une autre, plus rapide, ou est-ce que c'est une de tes habitudes de codage?
finalement, la seule chose qui change c'est que tu traîtes un plus gros volume d'un coup, tu fais des économies d'échelle ^^ c vrai que c probablement plus rapide.
18 avril 2004 à 02:10
Alloues un buffer 32 Ko par exemple (pbuff). On boucle tant qu'on aspire.
A chaque tour:
BYTE *c, *d, *pout;
NextPass:
... lecture fichier
c d pbuff;
pout = pbuff + nAspires;
while(c < pbuff) {
if(*c !13) *d++ *c;
c++;
}
WriteFile(hfl, pbuff, d - pbuff, &dw, 0);
if(nAspires >= sizeBuff) goto NextPass;
BruNews, Admin CS, MVP Visual C++
18 avril 2004 à 02:00
17 avril 2004 à 20:29
Vous devez avoir le temps dans votre fac.
BruNews, Admin CS, MVP Visual C++