[C++] CFile omzetten naar char* ?

Pagina: 1
Acties:

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
Voor een school opdracht moet ik in Visual C++ tekst uit een bestand uitlezen. En hoe langer ik ermee bezig ben hoe beter ik begrijp dat men Java ontwikkeld heeft ;)

Ik heb deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void CC3Week1Doc::Serialize(CArchive& ar)
{
    if (ar.IsStoring())
    {
        // TODO: add storing code here
    }
    else
    {
        ifstream in_stream;
        in_stream.open(ar.GetFile);
        instream >> myString;

    }
}

en krijg deze hele mooie duidelijke error:
D:\Program Files\Microsoft Visual Studio\MyProjects\C3Week1\C3Week1Doc.cpp(68) : error C2664: 'void __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::open(const char *,int)' : cannot convert parameter 1 from 'class CFile *(void) c
onst' to 'const char *'
There is no context in which this conversion is possible

dat hij het ene niet in het andere om kan zetten begrijp ik ;)

maar hoe overtuig ik de compiler ervan dat hij het wel wil doen?

nieuwe persoonlijk record btw, 17 errors en 1 warning in 3 regels code :)

Verwijderd

Ik vind het persoonlijk een heel duidelijke error, maar dat was natuurlijk de vraag niet.

Het lukt hem inderdaad niet om een const char * die open verwacht te verkrijgen uit de expressie ar.GetFile.

Kijk eens in de betreffende library documentation hoe je bestandsnamen uit je CArchive kan krijgen, en eventueel hoe je er een const char * van kan maken.

  • The End
  • Registratie: Maart 2000
  • Laatst online: 07:27

The End

!Beginning

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void CC3Week1Doc::Serialize(CArchive& ar)
{
    CObject::Serialize(ar);
      if (ar.IsStoring())
    {
        ar << myString;
    }
    else
    {
        ar >> myString;
    }
}


CFile CC3Week1DocFile(FileName,CFile::modeWrite  | CFile::modeCreate);
CArchive ar(&CC3Week1DocFile,CArchive::store);
CC3Week1DocObject.Serialize(ar);
ar.Close();
CC3Week1DocFile.Close();

Zo werkt serialize...

[edit]
Iets vergeten: Je object moet van CObject afgeleid zijn.. en moet de macro's DECLARE_SERIAL en IMPLEMENT_SERIAL hebben.
[\edit]

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

code:
1
ar.GetFile()->GetFileName(...)

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
tnx :P

ik heb het ondertussen zo opgelost:
code:
1
2
3
CFile* myFile = ar.GetFile();
        myChars =  new char[];
        myFile->Read(myChars, 30);

In welke header file zit CFile? ( en hoe kan ik dat snel uitvinden bij een willekeurig bestand?)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22:48

.oisyn

Moderator Devschuur®

Demotivational Speaker

krijgen jullie MFC op school???

damn :)

alles in trouwens gedefinieerd in afx.h
Nou zal dat wel gewoon een header zijn die weer allemaal andere headers include, maar dat moet je dan maar even uitzoeken ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
Wij krijgen MFC en de Borland veriant, we mogen zelf gaan onderzoeken wat de verschillen zijn etc (erg leuk ;) )


jij mag niet klagen, jullie mogen met GBA's spelen ;)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op maandag 22 april 2002 15:40 schreef wasigh het volgende:
Wij krijgen MFC en de Borland veriant, we mogen zelf gaan onderzoeken wat de verschillen zijn etc (erg leuk ;) )


jij mag niet klagen, jullie mogen met GBA's spelen ;)
Weeeehhh.... Ik wil weer naar school.... :'(

Programmer - an organism that turns coffee into software.


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
Op maandag 22 april 2002 15:41 schreef LuCarD het volgende:

[..]

Weeeehhh.... Ik wil weer naar school.... :'(
Ik houd je niet tegen ;)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22:48

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op maandag 22 april 2002 15:40 schreef wasigh het volgende:
jij mag niet klagen, jullie mogen met GBA's spelen ;)
ik klaag ook niet over mijn eigen opleiding, ik klaag over die van jou *D

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
:'(
Pagina: 1