Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Treba mi kod za save funkciju u Visual C++ 6.0

[es] :: C/C++ programiranje :: Treba mi kod za save funkciju u Visual C++ 6.0

[ Pregleda: 3327 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dial.cpe.InfoSky.Net.



+101 Profil

icon Treba mi kod za save funkciju u Visual C++ 6.031.12.2006. u 17:45 - pre 211 meseci
Treba mi kod za Button u dijalogu koji moze da podatke(promenljive clanice klase definisane kao struktura) sacuva u txt formatu u jos plus neki komentar.
Npr. ovo su promenljive: br_bodova, ime_ucenika,...
da to u txt file-u izgleda: Broj bodova za ime_ucenika je br_bodova, itd.
znam da namestim kao cout f-ju u c++ ali ovo mi bas nesto ne ide. please help.
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dial.cpe.InfoSky.Net.



+101 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.006.01.2007. u 20:44 - pre 211 meseci
Neki deo sam uspeo,
Code:

CFileDialog m_novi(FALSE); //deklarise prozor za Save(ako u zagradi stoji TRUE onda je prozor za Open)
// ovo ispod otvara save prozor
if(m_novi.DoModal()==IDOK)
{
//neki kod
}

Sad ja ne znam kako da definisem file type i kako da odredim na sta ce se ovaj Save odnositi verovatno ima veze sa parametrima ili delom unutar uslova
P.s ima nesto o tome u Visual C++ za 21 Dan ako nekom znaci, stvarno me ubija ovo.
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dial.cpe.InfoSky.Net.



+101 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.006.01.2007. u 20:45 - pre 211 meseci
Neki deo sam uspeo,
Code:

CFileDialog m_novi(FALSE); //deklarise prozor za Save(ako u zagradi stoji TRUE onda je prozor za Open)
// ovo ispod otvara save prozor
if(m_novi.DoModal()==IDOK)
{
//neki kod
}

Sad ja ne znam kako da definisem file type save dokumenta i kako da odredim na sta ce se ovaj Save odnositi (na koje promenljive,varijable)verovatno ima veze sa parametrima ili delom unutar uslova
P.s ima nesto o tome u Visual C++ za 21 Dan ako nekom znaci, stvarno me ubija ovo.
 
Odgovor na temu

3MAJ86
Marko Radić
Business Development Manager, Beauty
Industry
München

Član broj: 46087
Poruke: 253
*.sezampro.yu.

Sajt: marko-radic.blogspot.com


+137 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.007.01.2007. u 18:09 - pre 211 meseci
Khm, pa pazi, možeš da koristiš one 'stare' klasične C-ovske funkcije za otvaranje datoteka i snimanje u tekstualnom režimu, a možeš i onako 'kako je rečeno'.

Prvo, ako imaš neku svoju klasu(strukturu) koju želiš da sačuvaš moraš joj dati mogućnost da se 'serializuje'. To možeš uraditi na sledeći način:
Code:

class CSlog : public CObject
{
DECLARE_SERIAL(CSlog)
public: 
virtual void Serialize(CArchive &ar);
CTip_promenljive1 Ime_Promenljive1;
// itd
// (...)
}


(Objasniću posle zašto je potrebno da tvoja klasa bude izvedena iz CObject...)

Ovo ti je telo funkcije Serialize(CArchive &ar)
Code:

IMPLEMENT_SERIAL(CSlog, CObject, 1)

void CSlog::Serialize(CArchive &ar) {
    if (ar.IsLoading())
    {
        ar >> Ime_Promenljive1;    
        ar >> Ime_Promenljive2;
// itd.

    }
    else
    {
        ar << Ime_Promenljive1;    
    ar << Ime_Promenljive2;
// itd...        
    }
}


E, tu nije kraj. Sledeće što bi trebalo da uradiš jeste da izvedeš klasu iz CMapStringToOb. To ti je kao kolekcija ovih tvojih slogova (u zavisnosti od toga šta radiš, lako broj tih slogova može da ti naraste na 10000 i mnogo mnogo više, pa je bolje da ih sve strpaš u kolekciju i snimiš odjednom). Evo kako to da odradiš:
Code:

class CKoktelCollection : public CMapStringToOb
{
public:
    CSlogCollection(int nBlockSize = 10)
        : CMapStringToOb(nBlockSize) {};
};

typedef CTypedPtrMap<CSlogCollection, CString /* KEY */ , CSlog*>TSlogCollection;


To je što se toga tiče, onda u klasama gde to snimaš (da li su u pitanju prozori ili dijalozi) deklarišeš promenljivu:
TSlogCollection m_SlogCollection;
Zatim preklopiš serialize funkciju tog prozora (ili dijaloga) da izgleda ovako nekako:
Code:

void CMojProzorIliDijalog::Serialize(CArchive &ar) 
{
    m_SlogCollection.Serialize(ar);
    if (ar.IsStoring())
    {    
    }
    else
    {    
    }
}


I pored toga evo ti funkcije LoadRecords(); i SaveRecords(); koje takođe ugrađuješ u svoj prozor/dijalog

Code:

void CMojProzorIliDijalog::LoadRecords()
{
    if (CanSerialize())
    {
        CFile file;
        CFileException fe;

        if (file.Open(DATA_FILE, CFile::typeBinary | CFile::modeRead, &fe))
        {
            CArchive ar(&file, CArchive::load);
            Serialize(ar);
        }
    }
}

void CMojProzorIliDijalog::SaveRecords()
{
    BOOL bCanSave = FALSE;

    UINT nFlags = CFile::typeBinary | CFile::modeWrite;

    if (_access(DATA_FILE, 0))
    {
        nFlags |= CFile::modeCreate;
        bCanSave = TRUE;
    }
    else
    {
        bCanSave = CanSerialize();
    }

    if (bCanSave)
    {
        CFile file;
        CFileException fe;

        if (file.Open(DATA_FILE, nFlags, &fe))
        {
            CArchive ar(&file, CArchive::store);
            Serialize(ar);
        }
    }
}


U ovom kodu DATA_FILE ti je definisan u #define, ali u tvom slučaju ti ćeš to ime pokupiti iz CFileDialog...
Funkcija CanSerialize() je vrlo jednostavna.

Code:

#include "io.h"
BOOL CMojProzorIliDijalog::CanSerialize()
{
 return (0 == _access(DATA_FILE, 6));
}

E sada, potrebno je pristupati članovima m_SlogCollection; Ali to nije teško. Evo u jednog konkretnog primera za pristupanje i snimanje ovih slogova...
Code:

//recimo da u tvom CSlog klasi imash CString strNaziv, i njega ću koristiti kao key:
//ovo je telo neke tvoje funkcije klase CMojProzorIli...

CSlog *pSlog = new CSlog;
m_SlogCollection.SetAt(strNaziv, pSlog);
//zatim uneseš ostale podakte u taj pSlog...
pSlog->Ime_Promenljive1 = "neki tekst ili shta ti je vetj potrebno...";
//itd
SaveRecords();

//to je za snimanje podataka, a sada za učitavanje:
//takođe telo neke funkcije one klase...

        POSITION pos;
    CString strKey;
    CSlog *pSlog;

pos = m_SlogCollection.GetStartPosition();
    while(NULL != pos)
    {
        m_SlogCollection.GetNextAssoc(pos, strKey, (CObject*&)pSlog); //ovde ti možda nije ni neophodno ovo (CObject*&)
                if (pSlog) {
                // uradi nešto sa ovim određenim unosom...
                }
        }



E sada, zašto CObject? Zato što je CTypedPtrMap klasa zapravo mapa pokazivača na objekte CObject klase (i klasa izvedenih iz nje). Naravno, sve ovo može da se odradi na 10001 način, ali ovako ja radim i ovo sam ti samo iskopirao funkcije iz nekog mog programa, pa ako ne možeš da se snađeš reci da ti potanko objasnim korak po korak, ili pak da ti napišem i pošaljem neki sample koji će da radi, pa da vidiš kako to radi na delu.

Ovo ti nije baš za snimanje fajlova u tekstualnom mod-u, ali možeš i to da odradiš. Pogledaj malo u MSDN-u o klasi CFile. Zaista nije teško.

Nadam se da sam pomogao.
Pozz



when there is a why there is no how
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.007.01.2007. u 18:55 - pre 211 meseci
Kako je MFC jedna odvratno ruzna stvar...
Tko leti vrijedi
 
Odgovor na temu

3MAJ86
Marko Radić
Business Development Manager, Beauty
Industry
München

Član broj: 46087
Poruke: 253
*.sezampro.yu.

Sajt: marko-radic.blogspot.com


+137 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.007.01.2007. u 20:02 - pre 211 meseci
Što? Baš mislim da je ekstra... Dobro, zavisi od ukusa... (o kojima nadam se ne vredi raspravljati...)
when there is a why there is no how
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.007.01.2007. u 21:53 - pre 211 meseci
Heh, ovo ce prerasti u advocacy, ali zaista ne vidim kako losh C++ (i josh gori dizajn) mozhe da bude stvar ukusa. Neko bi trebao da im kazhe da se poimanje C++a dosta promenilo u zadnjoj dekadi.
 
Odgovor na temu

3MAJ86
Marko Radić
Business Development Manager, Beauty
Industry
München

Član broj: 46087
Poruke: 253
*.adsl-1.sezampro.yu.

Sajt: marko-radic.blogspot.com


+137 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.008.01.2007. u 14:21 - pre 211 meseci
Lako je nešto u startu etiketirati kao 'loše' i onda to u istoj rečenici uzeti zdravo - za - gotovo kao tačnu premisu.
Neko voli MFC neko ne. Da je toliko loš kao što pričate na sav glas ne bi postojalo toliko (uspešnih) programera koji ga koriste i koriste. Zato kažem: ok da se nekome ne sviđa, i da mu ne odgovara rad u njemu, ali pustite one kojima odgovara - a takvih veoma ima.

Pretpostavljam da vi zastupate rad u C# i .NET pre nego korišćenje MFC-a u C++?

Edit: nego, Wajda W javi se i reci da li ti odgovara ovo što sam napisao ili ne?
when there is a why there is no how
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.solent.climaxgroup.com.



+4 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.008.01.2007. u 14:26 - pre 211 meseci
Rekoh, advocacy....

MFC je uspeshan iz jednog jedinog razloga - shto dolazi iz MS-a. Btw, C#/.Net me ne interesuju, govorim o C++u. MFC je primer kako ne treba razvijati C++ biblioteke. Ali da ne duzhim, ne zhelim da ulazim u rasprave. Koristi MFC ako ti se toliko dopada.
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dial.cpe.InfoSky.Net.



+101 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.008.01.2007. u 15:05 - pre 211 meseci
E hvala ti MNOGO , trebace mi malo vise vremena da to uskladim i namestim, javicu ti u svakom slucaju da li je uspelo.
jos jednom hvala!!!
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dial.cpe.InfoSky.Net.



+101 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.008.01.2007. u 15:49 - pre 211 meseci
inace nisam uspeo da se snadejm, ali hvala za trud,
3ZMAJ86 ako bi mogao neki sample (korak po korak je suvise zamorno za obojicu, a i ne znam da li bi pomoglo) koji samo ima save kod(ne treba mi load, ne moras se truditi) neka ima npr. 3 promenljive(tj strukturu u klasi)
Code:

struct nesto
{
int broj;
CString ime;
float procenat;
}x[5];

samo sa save buttonom (ne treba ni dodela vrednosti(samo inicializuj)) i HVALA TI PUNO UNAPRED!!!
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.iplannetworks.net.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.008.01.2007. u 18:32 - pre 211 meseci
Citat:
3MAJ86: Što? Baš mislim da je ekstra... Dobro, zavisi od ukusa... (o kojima nadam se ne vredi raspravljati...)

Ovo ne zavisi od ukusa. MFC je los i tacka. Problem je sto se jos uvek dosta koristi...
Tko leti vrijedi
 
Odgovor na temu

3MAJ86
Marko Radić
Business Development Manager, Beauty
Industry
München

Član broj: 46087
Poruke: 253
*.adsl-1.sezampro.yu.

Sajt: marko-radic.blogspot.com


+137 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.008.01.2007. u 21:44 - pre 211 meseci
khm... neko davno lepo reče: 'Mišljenje je kao dupe - svako ima svoje' :)

@Wajda: Ok, napraviću ti neki simple primer, iskomentarisaću kod i poslaću ti link kada okačim negde da možeš lepo da skineš.


when there is a why there is no how
 
Odgovor na temu

3MAJ86
Marko Radić
Business Development Manager, Beauty
Industry
München

Član broj: 46087
Poruke: 253
*.adsl-1.sezampro.yu.

Sajt: marko-radic.blogspot.com


+137 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.008.01.2007. u 23:36 - pre 211 meseci
e odradih ja ovo. Pogledaj pp.

Pozdrav.
when there is a why there is no how
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.009.01.2007. u 19:17 - pre 211 meseci
Citat:

@3MAJ86
khm... neko davno lepo reče: 'Mišljenje je kao dupe - svako ima svoje' :)

kiklop74 ima iskustva u razvoju na toliko različitih C/C++ biblioteka i platformi
da bi se začudio. Ako neko ovde ima (pored Dragog Tate) 'kredit' da iznese svoje
viđenje toga, veruj mi - onda je to on. Niko ovde ne umanjuje niti negira značaj
MFC-a kao opšteprihvaćenog industrijskog standarda.

Prosto, biblioteka je ružna čak i kada je bila u klasi prepotopskog OWL-a, a kamo
li sada nakon toliko godina.

 
Odgovor na temu

3MAJ86
Marko Radić
Business Development Manager, Beauty
Industry
München

Član broj: 46087
Poruke: 253
*.adsl-1.sezampro.yu.

Sajt: marko-radic.blogspot.com


+137 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.009.01.2007. u 23:12 - pre 211 meseci
Naravno, nemam ja ni približno iskustva kao mnogi ovde, neću nešto mnogo da pametujem. Iskreno, meni MFC baš odgovara (možda sam i ja preterano lenj da učim nešto više je li... ali ima vremena), evo imam 20 god. studiram, učim i zarađujem džeparac baš programirajući u MFC-u. Meni savršeno (za sada) odgovara. Verovatno i sama činjenica da MS neće više da radi na razvoju MFC-a dosta govori, ali lično nikako neću da bacim u vodu uložen trud i vreme za učenje i dosadašnji rad.

Verujem da bilo kakvo znanje ne može da mi donese ništa loše zar ne?

Inače, izvinjavam se zbog debelog skretanja sa teme.
when there is a why there is no how
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.010.01.2007. u 10:03 - pre 211 meseci
Citat:

Iskreno, meni MFC baš odgovara

MFC je dokazana biblioteka koja je do maksimuma eksploatisan u proslosti i koja je obelezila
celu prethodnu dekadu. Postoji toliko gotovog koda i dokumetovanog znanja o MFC-u, da
nema razloga da "ne odgovara". Međutim, to i dalje ne znači da je projektovana srećnije od nekih
drugih.

Citat:

(možda sam i ja preterano lenj da učim nešto više je li... ali ima vremena),

Ovo je vreme XML-a, Unicode-a, default svesnosti net-a, free biblioteka, ...
Hteo ne hteo, trebalo bi da odmah započneš barem informativno izučavanje .NET-a, na primer, jer
kad dođe vreme da naplatiš svoj trud, u prijavi će pisati poznavanje .NET-a ;)

Citat:

Verujem da bilo kakvo znanje ne može da mi donese ništa loše zar ne?

Naravno. Svako znanje "izoštrava" oko, pa se lakše i prave paralele šta je bilo ili jeste dobro
u odnosu na nešto drugo.

Programiranje (treba da) evoluira u pravcu "šta" hoću da uradm, a ne da se češem pitanjem "kako"
nešto da uradim. Drugim rečima, treba da ide u pravcu gde prosečan developer treba da razmišlja
uglavnom o interfejsima "crnih kutija" koje su mu na raspolaganju.

Današnje (stare) biblioteke sve više liče na nekadašnji asembler, gde za svaku sitnicu treba
gomila kodiranja, a barem 50% tih sitnica se uzima zdravo za gotovo, a ako pogrešiš u "prepisivanju"
program ne radi.


 
Odgovor na temu

kooole

Član broj: 129945
Poruke: 43
*.dynamic.sbb.co.yu.



Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.002.03.2007. u 23:07 - pre 209 meseci
Visual c++ 6...vidim da ovde ima znalaca, a i problem koji imam je blizak sa ovim...

Naime, imam SDI aplikaciju koja naravno moze da sacuva i ucita iz datoteke dokument... osim u jednom slucaju. Npr. kliknem u meniju na file->open, izaberem fajl hehe1.fis, pozove se funkcija Serialize i fajl bude ucitan, sve je ok. Onda menjam dokument, koji je ucitan iz hehe1.fis... pa onda zelim da ponovo ucitam taj dokument iz datoteke (i abortujem promene)... kliknem na file->open izaberem hehe1.fis i fajl se NE ucita, cak se funkcija Serialize i ne pozove. Bilo koji drugi fajl se ucitava bez problema, ali ovaj koji je vezan za dokument koji trenutno otvoren, ne moze. Sta je resenje problema?
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dial.cpe.InfoSky.Net.



+101 Profil

icon Re: Treba mi kod za save funkciju u Visual C++ 6.007.03.2007. u 17:25 - pre 209 meseci
e da to je bilo davno.
ja obicno ne radim sa serijalizacijom, meni je tada trebalo za txt sa nekim podacima iz samog programa.
ako radim ko ti onda radim sa strukturama i sa fread i fwrite.
tvoj problem ne znam da li mogu da resim ali cu probai da pomognem.
tebi se po mom misljenju nista ne desava jer ti je fajl vec otvoren da bi ga ponovo otvorio (ponistio promene) trebas postaviti uslov da li je datoteka vec otvorena pa je zatvoriti i otvoriti, bar meni tako deluje nekako logicno.
nadam se da sam pomogao
 
Odgovor na temu

[es] :: C/C++ programiranje :: Treba mi kod za save funkciju u Visual C++ 6.0

[ Pregleda: 3327 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.