Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Xgamer

Stran: [1]
1
Vývoj / Re: Serializácia a deserializácia C++
« kdy: 02. 05. 2011, 08:38:20 »
Původního tazatele bych možná odkázal na mou teoretickou (bohužel nedokončenou) práci na téma Serializace v C++ ve formě seriálu:

http://bredy.novacisko.cz/?g=main&kat=59

Ďakujem, to vyzera celkom pekne napisane ;) určite so to prečitam:)

2
Vývoj / Re: Serializácia a deserializácia C++
« kdy: 01. 05. 2011, 21:24:01 »
Ďakujem za tie poznamky ;) Z takých veci sa človek najviac nauči, ano je pravda že som nealokoval pamät pre to carstore... to bol hlavny problem prečo to vobec nefungovalo. Tá serializácia a deserializácia je stale pre mna tak trochu zahada ale vdaka vašim prispevkom
v tom už mam jasnejšie :)

3
Vývoj / Re: Serializácia a deserializácia C++
« kdy: 01. 05. 2011, 17:01:54 »
Ďakujem, a ako by to bolo pomocou tých preťažených operatorov?:) takto cez tie metody je jasne pochopitelne :) A čo je lepšie pretažit operatorov alebo urobiť si na to metody?

4
Vývoj / Re: Serializácia a deserializácia C++
« kdy: 01. 05. 2011, 15:07:32 »
Ďakujem za tipy nejako som to spojazdnil ale ... aj tak tomu moc nerozumiem...:( a google mi nevypluje žiaden schopny priklad... Potreboval by som vidiet serializáciu uplne jednoducheho objektu potom mi to hadam dojde:D. Asi sa nejako stracam v tých streamoch. Aky je rozdiel medzi ifstream a istream?

5
Vývoj / Re: Serializácia a deserializácia C++
« kdy: 01. 05. 2011, 08:26:04 »
Nemám podmienku že to musí byť binarne :) to som chcel skusiť zo zaujimavosti, každopadne neviem spojazdniť ani textovu serializaciu:D 3rd knihovne použivať nemožem, ide o to že tu implementaciu si musim spraviť sam... Cielom je aby sa mi serializovala inštancia ct a potom deserializovala do inštancie ct2 v takom štýle mam aj šablonu pre program do školy. Ide že moj predpoklad bol to načitať ako obyčajný textový subor do nejakej premennej a nasledne tu premennu uložit do objektu typu CarTrain ale tak to nefunguje aj ked neviem prečo by nemalo. Hladal som aj na googli nejaky pekny priklad na niečo take ale všetko čom som našiel použiva knihovnu boost...

6
Vývoj / Serializácia a deserializácia C++
« kdy: 30. 04. 2011, 18:02:43 »
Zdravím, mam ulohu do školy na c++, v ktorom mam spravit serializáciu a deserializáciu objektu. Kedže som to nejako nevedel spraviť v tom mojom projekte tak som si vymyslel niečo jednoduchšie aby som to pochopil ale aj tak som nepochodil:)

Tu je kod:
Kód: [Vybrat]
#include <iostream>
#include <fstream>

using namespace std;

class Car
{
   public:
        Car(){};
        Car(int w, int s, int p)
        {
            this->Weight = w;
            this->MaxSpeed = s;
            this->Price = p;
        }
        void setWeight(int w){ this->Weight = w;}
        void setMaxSpeed(int s) {this->MaxSpeed = s;}
        void setPrice(int p){this->Price = p;}

        inline int getWeight() const {return Weight;}
        inline int getMaxSpeed() const {return MaxSpeed;}
        inline int getPrice() const {return Price;}

         friend ostream& operator<<(ostream &os,Car &c);
    private:
        int Weight;
        int MaxSpeed;
        int Price;
};

ostream& operator<<(ostream &os,Car &c)
{
    return(os << c.Weight << "  " << c.MaxSpeed << "  " << c.Price << endl);
}

class CarTrain
{
    public:
        CarTrain(){};
        CarTrain(int s){this->size = s;this->carstore = new Car[size];}
        void loadCar(int i,Car c){this->carstore[i] = c;}
        Car getCar(int i){return this->carstore[i];}
        int getSize(){return this->size;}
        friend ostream& operator<<(ostream &os,Car &c);
        void serialize(ostream& os)
         {
             Car tmp;
            for(int i=0; i <this->size; i++)
            {
                tmp =  this->carstore[i];
                os << tmp;
            }
         }
        CarTrain unserialize(ifstream& in)
        {
            CarTrain tmp; Car c;
            int w,s,p;
            tmp.size = this->size;
            for(int i=0; i< this->size;i++)
            {
                in>>w;
                in>>s;
                in>>p;

                c.setWeight(w);
                c.setMaxSpeed(s);
                c.setPrice(p);
                tmp.loadCar(i,c);
            }
            return tmp;
        }
    private:
        Car *carstore;
        int size;
};

ostream& operator<<(ostream &os,CarTrain &ct)
{
    Car tmp;
    for(int i=0; i < ct.getSize(); i++)
    {
        tmp =  ct.getCar(i);
        os << tmp;
    }
    return os;
}

int main()
{
    cout << "Serializacia a deserializacia" << endl;

    Car c1(1000,150,8000);
    Car c2(1200,190,9000);
    Car c3(1400,220,120000);

    CarTrain ct(10);
    ct.loadCar(0,c1);
    ct.loadCar(1,c2);
    ct.loadCar(2,c3);

    cout<<ct<<endl;
    char *p = "ser.txt";
    ofstream o;
    o.open(p,ios::out);
    ct.serialize(o);
    o.close();

    ifstream in;
    in.open(p,ios::in);
    CarTrain ct2 = ct.unserialize(in);
    in.close();


    return 0;
}


Problem je to že takto tá deserializácia nefunguje. Možno to bude aj tým že som asi uplne nepochopil pointu toho. A hlavne mam vyriešiť aj verzovanie objektov ale to nejako už vobec neviem:) Zatial som skušal textovu serializáciu. Poprosil by som niekoho kto sa tomu rozumie aby mi to trochu objasnil, resp. čo robim zle ..:) Ďakujem

Stran: [1]