begin process at 2010 02 10 00:05:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

découper une chaîne da caractères à partir d'un caratère point"."


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

découper une chaîne da caractères à partir d'un caratère point"."

jeudi 1 juillet 2004 à 12:07:55 | découper une chaîne da caractères à partir d'un caratère point"."

oudkaramla

Membre Club

salut tout le monde,

j'ai un problème:

si j'ai une chaîne de caractère(nom du fichier par exemple) dont je ne sais pas la longeur, comment je fais pour récupérer l'extension toute seule et la partie sans extesion toute seule(l'extension est par exemple .tif)
la longeur n'est à priorie pas connue: c'est l'utilisateur qui tape le nom du fichier

merci
jeudi 1 juillet 2004 à 12:37:43 | Re : découper une chaîne da caractères à partir d'un caratère point

BruNews

Administrateur CodeS-SourceS
char* GetExtensionPtr(char *flname)
{
char *c, *p;
// VERIF AVANT SI EST BIEN FICHIE EXISTANT
if(GetFileAttributes(szfile) & 0x80000000) return 0;
p = flname + 4;
while(*c) c++; // arrive zero final
while(c >= p) {
if(*c == '.') return c;
if(*c == '\\') break;
c--;
}
return 0; // pas d'extension
}

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 1 juillet 2004 à 13:59:38 | Re : découper une chaîne da caractères à partir d'un caratère point

oudkaramla

Membre Club

merci,
mais j'ai ps trop bien compris
il n' y a pas une methode avec lesdeux fonctions (strrchr et strlen)
je veux savoir comment manipuler ces deux fonctions pour récupérer la sous chaîne da caractère avant le point de l'extension
je crois que je vais trouver
merci
jeudi 1 juillet 2004 à 14:16:11 | Re : découper une chaîne da caractères à partir d'un caratère point

BruNews

Administrateur CodeS-SourceS
y avait erreur de frappe plus haut:
char* GetExtensionPtr(char *flname)
{
char *c, *p;
// VERIF AVANT SI EST BIEN FICHIE EXISTANT
if(GetFileAttributes(flname) & 0x80000000) return 0;
p = flname + 4;
while(*c) c++; // arrive zero final
while(--c > p) {
if(*c == '.') return c;
if(*c == '\\') break;
}
return 0; // pas d'extension
}

si vraiment tu tiens a decouper mais je ne vois pas a quoi cela sert puisque tu as le pointeur sur le '.' non ?
char szfile[264]; // doit contenir nom du fichier
char szext[12];
char *c;

if(c = GetExtensionPtr(szfile)) {
strcpy(szext, c);
*c = 0; // tronque original
}
else {szfile[0] = szext[0] = 0;}

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 1 juillet 2004 à 15:17:12 | Re : découper une chaîne da caractères à partir d'un caratère point

oudkaramla

Membre Club

merci,
c'est trop compliqué pour moi comment savoir si un fichier existe ou pas( des commandes simples svp) avec GetFileAttributes: j'ai vue la définition de GetFileAttributes dans la MSDN il n'a y a aucune allusion à l'existence ou non du fichier voilà

merci
jeudi 1 juillet 2004 à 15:22:01 | Re : découper une chaîne da caractères à partir d'un caratère point

oudkaramla

Membre Club

c'est quoi le 0x80000000 ?
ça veut dir que le fichier N'existe pas?
et s'il existe?
jeudi 1 juillet 2004 à 15:46:45 | Re : découper une chaîne da caractères à partir d'un caratère point

vecchio56

Administrateur CodeS-SourceS
BruNews, pourquoi tu n'utilises pas strrchr

char filaname[] = "fichier.exe";
char* ext = strrchr(filename, '.'); // ext == ".exe"
jeudi 1 juillet 2004 à 15:58:11 | Re : découper une chaîne da caractères à partir d'un caratère point

oudkaramla

Membre Club

en fait j'ai fait :
GetFileAttributes(g_theFilePath);
printf("DWORD GetFileAttributes :%s\n",attribut);

la compilation passe bien mais quand j'éxécute le programme s'arrête juste avant le GetFileAttributes(g_theFilePath);!

je ne sais pas pourquoi
jeudi 1 juillet 2004 à 15:59:20 | Re : découper une chaîne da caractères à partir d'un caratère point

BruNews

Administrateur CodeS-SourceS
vecchio56 > NENNI, tu peux avoir un point dans un nom de dossier et pour autant aucune extension au fichier.

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 1 juillet 2004 à 16:02:40 | Re : découper une chaîne da caractères à partir d'un caratère point

vecchio56

Administrateur CodeS-SourceS
exact, j'avais pas vu ca
alors

char* GetExtensionPtr(char *filename)
{
char* ext = strrchr(filename, '.');
if(strchr(ext, '\\'))
return 0;
return ext;
}

1 2 3

Cette discussion est classée dans : partir, caractères, chaîne, découper, caratère


Répondre à ce message

Sujets en rapport avec ce message

Pb Chaîne de caractères [ par mmuller57 ] Bonjour,J'ai créé un petit programme qui convertit les caractères d'une chaîne de caractères par leurs codes ASCII :#include #include #include int con Construction d'un arbre à partir d'une chaine de caractères [ par dahlsimus ] Bonjour, Je souhaite construire un arbre représentant une expression booléenne saisie sous le forme d'une chaîne de caractère (ex: (a+b).C avec + OR e Affichage d'une chaîne de caractères [ par kalf2000 ] bonjour,j'ai un petit souci, je réussit à récupérer à partir d'un fichier texte une chaîne de caractère et à la mettre dans un tableau de caractère (c Conversion d'un DWORD en chaîne de caractères [ par annplop ] Bonjour,je code en c++ (avec visual c++ 6), et j'ai besoin de convertir une variable de type DWORD en chaîne de caractères.Est-ce possible et si oui c Découper une chaine de caractères en fonction d'un séparateur [ par julien20vt ] Bonjour,J'aimerais savoir s'il existe un moyen assez simple de découper une chaine de la manière suivante:chaine=ssch1;ssch2;ssch3;.....Je voudrais do insérer un point ou une virgule dans une particulière dans une chaîne de caractères. [ par oudkaramla ] salut tout le monde j'ai une question trés simple:j'ai une chaîne de caractères de 8 caractères stockée ds une variable.je veux introduire un point da envoyer des caractères à partir du port lpt ou com [ par bluebird58 ] Bonjour ! Jme présente : guillaume, beaucoup de projets mais une vrai tache en prog :s je voulais savoir si il était possible d'envoyer des charactè concatenation d'une chaîne de caractères [ par davdav73 ] Alors je c=programme sous builder 6 C++ et je voudrais savoir comment ajouter des chiffres entiers les uns après les autres. J'ai un pavé numérique et chaîne de caractères [ par ProgVal ] Bojour,Comment faît-on pour "découper" une chaîne de cerartères? Par exemple 1 caractère sur 2.Merci d'avanceShowMessage ("signé ProgVal")


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,421 sec (3)

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