Problème à l'exécution sous VC++ [Résolu] - C++ - Programmation
Marsh Posté le 23-04-2003 à 21:57:40
je sais pas trop ce qui peut provoquer ca, mais dans un premier temps essaie de simplifier un peu la routine de lecture de ton fichier.
Tu veux juste lire ton fichier ligne par ligne ?
si oui utilise CArchive :
Code :
|
Marsh Posté le 23-04-2003 à 22:04:29
Pff et tu sais même pas pourquoi ca marche pas
Nan je déconne, Merci comme je vais pas mettre un post à chaque fois que j'ai une couille, j'avais laissé mon truc un peu foireux mais qui marche. Du coup, je vais pouvoir faire ca proprement
Ca m'interresse toujours de savoir pourquoi ca marche qu'a moitié.....
Tiens, Barthez vient de s'en prendre un troisième par Ronaldo D
Marsh Posté le 23-04-2003 à 22:12:25
Code :
|
Marsh Posté le 23-04-2003 à 22:25:06
- Chaque enregistrement est de la forme
0 Texte Machin à récupérer
1 Blabla
....
- le .right et .left servent à enlever un espace et le \n en trop dans la chaine. Au départ, j'avais prévu de récup juste ce que j'avais besoin mais je sais plus pourquoi j'arrivais pas à me débarrasser de l'espace et du \n
-m_Genres est effectivement un tableau, la taille est supérieure aux nombres d'enregistrements du fichier, qui de toutes façons ne grandira pas énormément (c'est la liste des genres ID3 pour les Mp3)
Marsh Posté le 23-04-2003 à 22:34:34
si tu utilises Carchive, ReadString ne met pas \n à la fin de la chaine.
pour le "while(line[i]!=' 'i++; " utilises la méthode Find de la classe CString
Si ca plante encore après toutes ces modifs, c'est que ca vient pas de là.
Marsh Posté le 23-04-2003 à 22:37:46
SquiZz a écrit : si tu utilises Carchive, ReadString ne met pas \n à la fin de la chaine. |
Je vais me mettre a CArchive dès la fin du match
Par contre, je vois pas l'avantage d'utiliser Find() ds ce cas. En interne, il doit bien faire qq chose ds le genre....
Merci du coup de main
Marsh Posté le 23-04-2003 à 22:43:51
Gooopil a écrit : |
ouep, mais si les gens de crosoft se sont amusés à faire un méthode c'est pour que tu n'aies pas à faire des while(i!=' 'i++; à tout bout de champ. En plus c'est un peu plus sécurisé et ca te retourne -1 si le caractère a pas été trouvé. tout ca en une seule instruction, rendez vous compte
Marsh Posté le 23-04-2003 à 22:44:52
SquiZz a écrit : |
Marsh Posté le 24-04-2003 à 13:16:30
C'est une histoire de working directory : quand tu le lances a la main, bah le working directory est celui ou se trouve l'éxé, mais sous visual quand tu le lances avec CTRL-F5 ou en debug, le working directory par défaut est celui ou se trouve les sources.
donc ton fichier "data\\genres.txt" aurait ptet du mal a s'ouvrir si j'ai pas tort. De toute facon t'aurais pu trouver tout seul en lancant une debug.
en vc6 me souviens plus, mais sous le 7 ca se change dans les propriétés de ton projet, debugging, Working Directory. Tu mets un $(OutDir) ki correspond a Release, Debug, ou autres et ca devrait marcher.
Marsh Posté le 24-04-2003 à 13:38:59
Konar a écrit : C'est une histoire de working directory : quand tu le lances a la main, bah le working directory est celui ou se trouve l'éxé, mais sous visual quand tu le lances avec CTRL-F5 ou en debug, le working directory par défaut est celui ou se trouve les sources. |
Nickel chrome ca marche parfaitement
Pour ce qu'il est de trouver tout seul, tu surestimes mes capacités à utiliser le debugger
Merci
Marsh Posté le 23-04-2003 à 21:41:54
Hello
J'ai un truc tout bizarre qui m'arrive avec VC++ 6.0, c'est juste chiant, ca m'empeche pas de bosser mais c'est chiant :
Le code suivant compile parfaitement mais, quand je le lance à partir de Vc++ (le zoli point d'exclamation rouge), le code suivant me lance un runtime error. Si je lance l'appli compilé à partir de windows, ca marche nickel.....La je comprend plus
Bon j'arrive à bosser mais c'est pas très pratique et puis je suis d'un naturel assez curieux alors j'aimerais bien savoir pourquoi et comment y remédier....
Merci
Voila le code incriminé :
Message édité par gooopil le 24-04-2003 à 13:49:29