[Bout de code] Manipuler des chaines de caractères
Voilà en me remettant a mon éditeur de dbc je me suis dis qu'il fallait que j'arrive a récupérer le nom du fichier sans son extention pour trouver son format ensuite (vous verrez a quoi ça sert a la premiere release

Bref j'ai réussi , et vu que je suis fier de moi je le poste ! Heureux Non j'déconne , c'est surtout que manier des chaines de caractères peut s'avérer compliqué et laborieux donc je poste le bout de code bien commenté pour bien comprendre comment faire . Si ça peut aider quelqu'un Ange

[code=cpp] //On prend le chemin d'accès
QString a = QFileDialog::getOpenFileName(this, "Sélectionnez le fichier a ouvrir", QString(), "Fichiers dbc (*.dbc)");
//Convertion en 8bits
QByteArray ba = a.toLocal8Bit();
//Puis en string
string CheminDBC = ba.data();
//On cherche la position dans la chaine du dernier "/"
int pos = CheminDBC.find_last_of("/");
//On découpe notre chaine pour n'obtenir plus qu'un "nomdufichier.extention"
string NomDBC = CheminDBC.substr(pos + 1);
//On détermine la taille du prochain buffer pour copier la chaine
size_t size = NomDBC.size() + 1;
//On créé le buffer pour copier la chaîne
char * buffer = new char[ size ];
//On copie la chaîne
strncpy( buffer, NomDBC.c_str(), size );
//On Coupe la chaine en deux a partir du "."
char *temp = strtok (buffer, ".");
//Et on finit par réutiliser notre variable de départ pour stocker le nom de notre fichier sans l'extention
NomDBC.assign(buffer);
//On vérifie que tout s'est bien passé
QMessageBox::information(this , "Nom du fichier DBC" , QString(NomDBC.c_str()));

//Puis on libère la mémoire
delete [] buffer , temp;[/code]
NIce nice ! Heureux

Merci ;-)
Pinaise tous ça juste pour récupérer un fichier sans son extension ? oO
Je suis bien content d'avoir fait mon lecteur/éditeur de DBC en java Heureux
(16-08-2011 09:53)Magus a écrit :  Pinaise tous ça juste pour récupérer un fichier sans son extension ? oO
Je suis bien content d'avoir fait mon lecteur/éditeur de DBC en java Heureux

Oui oui c'est compliqué le C++ Hihi
Si tu veux juste le nom du fichier, tu peux le récupèrer comme ceci :

[code=cpp]
QString file = QFileDialog::getOpenFileName(this, "Ouvrir un fichier DBC", QString(), "DBC File (*.dbc)");

if (file.isNull())
return;

QFile f(file);
qDebug() << f.fileName();
[/code]
Bah c'est ce que je fais , je prend le chemin et je coupe la chaine pour n'avoir plus que le fichier et son extention puis plus tard juste le fichier , ça me permet de rajouter "format/" avant le nom puis ".frt" après le nom pour trouver le fichier que je cherche Clin
Ouais, mais c'est plus compliqué, autant utiliser la lib. Qt au maximum Clin
Au niveau des QString je le trouve moins complet qu'un string normal
ça à l'air bien Qt côté lib je trouve.
(19-11-2011 10:57)Taris a écrit :  ça à l'air bien Qt côté lib je trouve.

ici j'utilise la lib standard surtout Clin
Édition :
(16-08-2011 14:38)SgT-Fatality a écrit :  Ouais, mais c'est plus compliqué, autant utiliser la lib. Qt au maximum Clin

Je suis pas sur que ton truc renvoie le nom du fichier sans l'extension là ...

Retourner en haut Accueil