Bon le plus dur reste à faire : le chargement
tout comme la sauvegarde, 2 fichiers -> Chargement.cpp et Chargement.h
//Chargement.h
#include <iostream>
#include <Irrlicht.h>
#include <string>
#include <sstream>
#include <fstream>
class Chargement
{
public:
Chargement(char* Fichier, irr::scene::ICameraSceneNode* camerafps, int Vie, std::string Nom);
~Chargement();
void ChargePos();
void ChargePerso();
private:
void ChargeNumb(int num, int *Coord);
irr::scene::ICameraSceneNode* m_camerafps;
char* m_Fichier;
long nombreLignes, numX, numY, numZ, numNom, numVie;
int caractereLu;
std::string StringNumb;
std::string m_Nom;
char caractere;
int x, y, z, Coo;
int m_Vie;
};//chargement.cpp
#include "Chargement.h"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
using namespace std;
Chargement::Chargement(char* Fichier, irr::scene::ICameraSceneNode* camerafps, int Vie, std::string Nom)
{
m_Fichier = Fichier;
m_camerafps = camerafps;
m_Vie = Vie;
m_Nom = Nom;
int caractereLu = 0;
char caractere;
};
Chargement::~Chargement();
void Chargement::ChargePos()
{
x = 0; y = 0; z = 0;
m_Fichier = "Save/Player.irrSave";
nombreLignes = 0;
numX = 1; numY = 2; numZ = 3;
ChargeNumb(numX, &x);
ChargeNumb(numY, &y);
ChargeNumb(numZ, &z);
m_camerafps->setPosition(vector3df(x,y,z));
};
void ChargeNumb(int num, int *Coord)
{
ifstream FFichier(m_Fichier, ios::in | ios::binary);
if(FFichier)
{
FFichier.seekg(0, ios::beg);
while (num > 0)
{
FFichier.get(caractere);
caractereLu = caractere;
if (caractereLu == '\
')
num--;
}
getline(Fichier, StringNumb);
std::istringstream streamNumb(StringNumb);
streamNumb >> Coo;
*Coord = Coo;
if (streamNumb.fail()==true)
{
std::cout << "fail" << std::endl;
};
streamNumb.clear();
StringNumb.clear();
FFichier.close();
}
};
void Chargement::ChargePerso()
{
nombreLignes = 0; numNom = 6; numVie = 7;
LoadNumb(numVie, &m_Vie);
ifstream FichierPerso(m_Fichier, ios::in | ios::binary);
if(Fichier)
{
FichierPerso.seekg(0, ios::beg);
while (numNom > 0)
{
FichierPerso.get(caractere);
caractereLu = caractere;
if (caractereLu == '\
')
numNom--;
}
getline(FichierPerso, m_Nom);
Fichier.close();
};
}; FFichier.seekg(0, ios::beg);
while (num > 0)
{
FFichier.get(caractere);
caractereLu = caractere;
if (caractereLu == '\
')
num--;
}
getline(Fichier, StringNumb);std::istringstream streamNumb(StringNumb);
streamNumb >> Coo;
if (streamNumb.fail()==true)
{
std::cout << "fail" << std::endl;
};Hors ligne
merci beaucou
Hors ligne
ya pas de quoi si sa peut servir
Hors ligne
Merci beaucoup c'est tres utile !!
Hors ligne
Je veux pas troller, mais, ça existe Boost.Serialization, et c'est 1000x plus simple que ça.
Hors ligne
c'est toujours intéressant sur la plan du code déjà, voir instructif pour certains.
De plus, cela a quand même plus de ...4 ans....
Hors ligne
Ça peut être toujours utile pour certains.
Sur le plan du code, je suis d'accord, mais dans ce cas autant montrer la sérialisation binaire et tout.
Désolé, pour le remontage ^^
Hors ligne
Pages: 1
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 159 invités en ligne membre en ligne: - RSS Feed |