CONVERSION DE FICHIER TEXTE DOS/WINDOWS EN FICHIER TEXTE UNIX

Signaler
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22034-conversion-de-fichier-texte-dos-windows-en-fichier-texte-unix

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
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++
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

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.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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++
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

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.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
voila qui fera 2 acces fichiers par octet, un en lecture et un en ecriture.
Vous devez avoir le temps dans votre fac.

BruNews, Admin CS, MVP Visual C++