Pb de sauvegarde C++ - C++ - Programmation
Marsh Posté le 17-11-2005 à 11:30:23
bin regarde la doc des streams, plus particulierement ofstream et l'operateur <<
(y'a pas de doc centralisé a la javadoc, tape dans google tu devrais trouver ton bonheur)
Marsh Posté le 17-11-2005 à 11:36:55
nan mais je sais sauvegarder le tableau j'utilise file, mais le pb, c'est que j'arrive pas a faire une chaine de caractère en fonction de mon tableau de short, avec des caractères de retour à la ligne
WriteFile(hListeSolution, tab, sizeof(tab), &dwWritten, NULL);
ca me sauvegarde mon tableau, mais ce n'est pas lisible par un fichier texte...
au fait, juste comme ca, existe t il une fonction virtuelle permettant de quitter l'application ???
Marsh Posté le 17-11-2005 à 11:39:44
ah ouais, mais la tu utilises une fonction ecrivant en binaire, pas en chaine de caractere. Par ailleurs tu passes par l'API Windows (bon, c'est un choix hein), mais pour ce genre de sport je trouve les fichiers du C++ plus maniable.
(pourquoi "virtuelle" ?)
Marsh Posté le 17-11-2005 à 11:40:57
oui c'est là mon pb, ma chaine est en binaire, non en texte...
virtuelle c'est pas une fonction indépendante de tout objet ?
Marsh Posté le 17-11-2005 à 11:47:29
bin converti ton truc en texte et envoie la a ton file, si jamais tu tiens a utiliser les fonctions windows
genre
Code :
|
Non une fonction virtuelle n'est pas indépendante de tout objet, tu dois confondre. La fonction C exit() marche aussi en C++ mais c'est pa super clean comme maniere de quiiter un programme
Marsh Posté le 17-11-2005 à 11:49:28
ok je vais essayé ton truc pour voir... merci de ton aide et pour exit(), ba oui c'est pas propre lol, mais j'ai pas accès à mes objets là ou je veut quitter... je suis pas encore un pro ^^
Marsh Posté le 17-11-2005 à 11:52:22
un objet est pas censé quitter un programme, generalement, hein ?
Marsh Posté le 17-11-2005 à 11:54:34
ba on peut avoir l'objet theApp par exemple qui va utiliser son destructeur pour désallouer les allocations dynamique, donc c'est plus propre que si on quitte de suite... (si je me trompe di le moi )
Marsh Posté le 17-11-2005 à 11:56:36
bin c'est super vague la
enfin exit() on s'en passe generalement tres bien
Marsh Posté le 17-11-2005 à 12:05:25
voilà ce que je fais :
// création du fichier
hListeSolution = CreateFile("solution.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
if(hListeSolution==INVALID_HANDLE_VALUE)
return FALSE;
sr << monobjet.m_tab << "\n";
std::string aEcrire = sr.str();
// enregistre la solution
WriteFile(hListeSolution, aEcrire.c_str(), aEcrire.size(), &dwWritten, NULL);
et voilà ce que j'obtient dans mon fichier texte :
0x4420f0
c'est pas tout a fais ca ^^ c'est vraiment chelou ce que j'obtient... pourtant ta solution m'avais l'air pas mal
Marsh Posté le 17-11-2005 à 12:07:35
ecrit les elements un a un
genre
for (i=0;i<nombreIndiceTableau;i++)
sr << monobjet.m_tab[i] << "\n";
Marsh Posté le 17-11-2005 à 12:15:30
ba mince ca marche pas, il me dis sr=<incompatible type> le débuggeur... et dans mon fichier texte il me met une liste de caractère carré sans retour chariot a chaque fois là je comprend pas
Marsh Posté le 17-11-2005 à 12:19:13
BOOL SaveFile(HWND hwnd, char * pFileName)
{
if(!pFileName)
return FALSE;
HANDLE hFile;
HANDLE hListeSolution;
HANDLE hListeMasque;
DWORD dwWritten;
std::ostringstream sr;
int i;
// création du fichier
hListeSolution = CreateFile("solution.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
if(hListeSolution==INVALID_HANDLE_VALUE)
return FALSE;
for (i=0;i<81;i++)
sr << monobjet.m_tab[i] << "\n";
std::string aEcrire = sr.str();
// enregistre la solution
WriteFile(hListeSolution, aEcrire.c_str(), aEcrire.size(), &dwWritten, NULL);
// ferme le handle
CloseHandle(hFile);
return TRUE;
}
voilà ^^
Marsh Posté le 17-11-2005 à 12:24:33
#define OVER 81
class Cmonobjet
{
public:
Cmonobjet();
~Cmonobjet();
void CreateDataArray(); // generateur de la grille
public:
short m_tab[81]; // tableau qui contient la solution
};
#endif
Marsh Posté le 17-11-2005 à 12:26:01
ah bin jvosi pas trop
t'es sur que tu regardes le bon fichier ? (nan paske t'utilises pas ton parametre filename)
févori un bout de solution.txt ici ?
Marsh Posté le 17-11-2005 à 12:27:28
oui oui... je regarde le bon... essaye toi sinon tu recopie mon code et tu regarde si ca la fait (voir si c'est que chez moi )
Marsh Posté le 17-11-2005 à 12:28:31
solution.txt recopier tel quel :
ਸ਼ਸਲਲ਼ਹਵਲ਼ਹਸਵਲਸ਼ਵਲਸ਼ਹਲ਼ਸਹਵਲ਼ਸਸ਼ਲਸ਼ਵਲਲ਼ਸਹਲਸਲ਼ਹਸ਼ਵਲਵਸ਼ਹਸਲ਼ਲ਼ਹਸ਼ਸਵਲਸਲਲ਼ਵਹਸ਼
Marsh Posté le 17-11-2005 à 12:32:07
marche tres bien, par contre faudrait lire les warning du compilo, CloseHandle(hFile); ne peut rien rendre de bon (hFile est pas initialisé)
Marsh Posté le 17-11-2005 à 12:32:40
eagle44 a écrit : solution.txt recopier tel quel : |
tiens c'est marrant ca. tu bosses sur un winedoze asiat ?
Marsh Posté le 17-11-2005 à 12:37:40
lol c chelou ca fait ca quand je recopie, mais sur le bloc note, ca me fais pleins de carré serré
mais chez toi ca marche ??? O_o mais heuhhhh
Marsh Posté le 17-11-2005 à 12:53:10
ba qu'estce que c'est que ce bazard, en mettant coucou dans mon fichier j'obtient ca putuin de mdr :
潣捵畯眀
Marsh Posté le 17-11-2005 à 13:06:44
nan c'est bon ! ! ! ! c'est qui doit etre trop fatigué... en ouvrant le fichier avec word pad, tout est nickel... un gros merci a toi chrisbk ! ! !
Marsh Posté le 17-11-2005 à 11:27:26
Voilà.... après mes traitements, j'obtiens un tableau de 100 short et j'aurais voulu faire une sauvegarder pour avoir mes valeurs comme ceci dans un bloc note :
--------
1
5
3
6
7
3
...
------
le pb est que je peut sauvegarder le tableau de short, mais il faut les remettres en format texte et rajouter des caractères de fin de ligne... Et comme je suis hyper débutant en C++, je sais pas encore trop comment faire... si quelqu'un savait comment faire ca serait sympa merci