bonjour,
Je suis débutante en C, j'essaye de lire un fichier ascii.
Je travaille sur un mainframe MVS et quand je transfert des fichiers vers ma machine USS, ces fichiers sont codés en EBCEDIC je les convertit alors en ASCII (commande iconv) mais apres comment je fais pour lire ces fichiers là par un programme en C?
Au fait, je dois lire les 3 premières lignes et vérifier qu'ils commencent par une chaine fixe "prefix" (par exemple) en plus que je dois sauvegarder le texte de la ligne 2 de la colonne 12 jusqu'au caractère ' ' (espace).
j'ouvre le fichier en mode binaire fopen (file, "rb");
char *prefix = "PREFIX";
puis j'utilise fgets(file, ligne_lue) //ligne_lue est un char *
printf(ligne_lue);
puis je compare if(strncmp(ligne_lue, prefix, strlen(prefix))==0)...
Résultats: le printf donne un résultat bizarre
le premier if n'est jamais vérifié donc il sort en erreur.
Questions:
est ce que mon code est bon?
est ce que l'utilisation de fread() me donnerai un autre résultat?
pourraije convertir mon prefix en ascii ? si oui comment (quelle est la fonction qui le fait) ? et comment comparer deux chaines ascii et estraire l'information de la ligne 2?
comment je fais?
Merci d'avance
... // et ainsi de suite (comme un text normal)
Partager