begin process at 2012 05 30 13:28:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Tester fichier UNIX ou Windows...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tester fichier UNIX ou Windows...

lundi 28 juin 2004 à 16:42:17 | Tester fichier UNIX ou Windows...

Clonk


Bonjour,
Voilà mon problème, je dois gérer des fichiers textes, mais ils peuvent être indifféremment au format UNIX ou Windows... comme tout est géré ligne par ligne, je voudrais vérifier s'ils sont sous Windows ou UNIX.
J'avais fais cette fonction pour tester :

int testUNIX(char * fname)
{
FILE *F;
int taille;
char * ligne = new char[256];
unsigned posDst = 0;
if (NULL == (F = fopen(fname, "r"))) return -1;
fseek(F, 0, SEEK_END);
taille = ftell(F);
rewind(F);
if (NULL == (fgets(ligne, taille, F))) return -1;
fclose(F);
for (posDst = 0; posDst < taille; posDst++)
{
cout<<ligne[posDst];
if (ligne[posDst] == '\n')
{
if (ligne[posDst - 1] == '\r')
return 1;
else
return 0;
}
}
return -1;
}

Je récup la taille et je fais un fgets sur la taille au acs ou la personne prenne un fichier avec une ligne enorme (ça arrive...)

Mais bon, là ça marche pas, ça me renvoie toujours 0.
J'ai toujorus pas trouvé de solution sur le net, si quelqu'un en a une....

Merci!
lundi 28 juin 2004 à 17:20:42 | Re : Tester fichier UNIX ou Windows...

aardman

Membre Club
Salut,
Si tu ouvres ton fichier en mode texte, fopen suprime tout les '\r' devant les '\n', du coup ta func retourne 0.
Pour que fopen ouvre le fichier et ne touche a rien dedant il faut l'ouvrir en mode binaire:
fopen(fname, "rb")


Cette discussion est classée dans : ligne, taille, return, unix, posdst


Répondre à ce message

Sujets en rapport avec ce message

Chaine de caractères et désallocation !! [ par flopflopp ] Bonjour, J'ai un problème de libération de mémoire sur un chaine de caractère. En effet j'au une chaine de caractère représentant une ligne de texte d contrôle EDIT retour à la ligne forcé [ par paramotdam ] Bonjour,J'ai créer une fenêtre (un peu comme msn) et j'ai créer un EDIT :hEdit[0]=CreateWindow("EDIT", "", WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_W Retour ligne dans un fichier (UNIX / Windows) [ par Clonk ] Bonjour,Voilà, j'ai un problème avec des fichiers. Ce sotn des fichiers texte générés sous UNIX que je dois traiter en C++ sous Windows (c'est comme ç Lecture de ligne dans un fichier texte sous windows et unix [ par moumouteb ] Bonjour, Je développe un code qui doit tourner sous Windows et UNIX. J'utilise la fonction getline() pour lire un fichier texte. Et bien sûr suivant Problème de récupération de valeur "fichier.csv" [ par fredrizk ] Bonjour J'ai écrit une fonction qui parcours un fichier.csv, retrouve les 2 valeurs que je lui donner et renvoi 2 valeurs correspondantes. Ensuite je Recherche chaine de caracteres [ par mogwai93 ] Bonjour j'ai fait un petit programme qui recherche dans un dossier tous les fichiers texte et qui me retourne dans un listbox toutes les lignes conte convertir fichiers textes au format unix [ par nitho ] Salut tout le monde !!!!! dites j'ai un petit souci, j'aimerais convertir plusieurs fichiers du format dos au format unix à partir de la console. Je écrire les lignes d'un fichier dans une mémoire alloué dynamiquement [ par snake57 ] Bonjour, Je voudrais lire un fichier texte ligne et écrire la ligne lue dans une variable. Comme les lignes du fichiers texte n'ont jamais la même lo tableau dynamique de structure plusieurs structure différente en C ? [ par Nico_35136 ] Bonjour a tous, Voila je débute dans l'allocation dynamique en C voici mon problème. Je possédé 5 structure de taille différentes qui vont contenir


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales