Re,
A vrai dire tu peux le faire directement dans excel s'il fait moins de 65536.
Je ne sais pas combien de lignes il y a dans excel2007.
En ce qui concerne les colonnes avec zéro de toute façon excel va formater
Par exemple si tu as 0000 excel va écrire 0, si tu as 001 excel va écrire 1
En ce qui concerne la suppression ou le fait d'avoir une colonne vide tu peux le faire après l'ouverture de fichier .csv
Mets ton fichier dans C: et appelle le fichier.txt
Ensuite tu n'as qu'à compiler (je l'ai fait avec codeblocks)
Tu obtiendras un fichier fic.csv dans C:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *f1,*f2;
if(NULL==(f1=fopen("c:\\fichier.txt","r")))
return EXIT_FAILURE;
if(NULL==(f2=fopen("c:\\fic.csv","w")))
return EXIT_FAILURE;
char s[256];
char s1[9],s2[5],s3[5],s4[18],s5[10],s6[7],s7[18],s8[11],s9[6],s10[18];
char s11[10],s12[7],s13[18],s14[11],s15[6],s16[3],s17[4],s18[9],s19[23];
while (fscanf(f1,"%s",s)!=EOF){
sscanf(s,"%8s%4s%4s%17s%9s%6s%17s%10s%5s%17s%9s%6s%17s%10s%5s%2s%3s%8s%22s",
s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19);
fprintf(f2,"%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s\n",
s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19);
}
fclose(f1);
fclose(f2);
return EXIT_SUCCESS;
}
Au cas où voici aussi le fichier exe
http://cjoint.com/?geuPNXDqza
CodeBlocks tu peux le télécharger ici
codeblocks-8.02mingw-setup.exe
Pour écrire toutes les variables, je ne l'ai pas fait à la main ;-)
J'ai utilisé ton exemple et hop avec un script perl j'ai écrit le code de programme.
Il y a sûrement d'autres moyens de le faire, mais comme tu as dis que tu es débutant, j'ai écrit le code de façon assez compréhensible. Enfin, c'est ça que je crois ;-))
Tu as dit que tous les caractères sont collés. Toutefois j'ai remarqué un espace que j'ai supprimé dans le teste que j'ai fait.
Voici le fichier que j'ai utilisé pour test
http://cjoint.com/?geuTynS2wr
106485010510997108