Toon posts:

[VC++] CFile gebruik in MFC

Pagina: 1
Acties:
  • 57 views sinds 30-01-2008

Verwijderd

Topicstarter
Goededag allemaal,

Na uren te hebben gekloot zit ik nog steeds metprobleem van CFile gebruik.
In een file te schijven is gelukt aleen het uitlezen is een heel ander verhaal lijkt het.

wat de code doet is:
- moet folder doorzoeken naar bestanden.
- is er een bestand lees het dan uit.


<<<<<<<<<<<<<<< de CODE >>>>>>>>>>>>>>>>>

CFileFind finder;
BOOL bWorking = finder.FindFile("H:\\Workspaces\\Easydtp\\Control\\createdfiles\\*.*");

while (bWorking)
{
CString readtekst = "";

bWorking = finder.FindNextFile();
readtekst = finder.GetFilePath();

int lengte = readtekst.GetLength();
char* p = readtekst.GetBuffer(lengte);


myFile.Open( p, CFile::modeRead | CFile::modeWrite | CFile::typeText );

char* de_buffer[10];
myFile.Read(de_buffer[10],10);

myFile.Close();


m_cFileOutput = de_buffer[10];
}

UpdateData(FALSE);


ALsvast beankt voor alle hulp

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Hoi, welkom op GoT. :)

Misschien kan je ook wat meer informatie geven over wat het probleem precies is, wat je geprobeerd hebt, en welke foutmeldingen er eventueel gegeven worden.
Je kan ook code-tags gebruiken om je code hier te posten, dat maakt het er heel wat leesbaarder op.

Zoals je post nu is, lijkt het erop alsof je wilt dat wij de code voor jou debuggen en verbeteren. Dat doen we hier echter niet, we willen dat jij -als Topicstarter- ook wat bijleert, en dat je ook moeite doet om te begrijpen wat je verkeerd doet.
Lees misschien eens de quickstart en pas je topicstart aan.

https://fgheysels.github.io/


  • epic007
  • Registratie: Februari 2004
  • Laatst online: 11-03 09:21
char* de_buffer[10];

moet zijn

char de_buffer[10];

geen zin om uit te leggen

Verwijderd

Topicstarter
Mijn vraag is waarom het niet werkt ik krijg een assertion error als ik die functie waarin dit staat uitvoer?

ik denk dat het te maken heeft met de "myFile.Open( p, CFile::modeRead | CFile::modeWrite | CFile::typeText, NULL );".
Ik denk dat de "p" niet geconvert is naar pointer van een char.
Maar ik krijg dat in geen mogelijkheid tot nu toe voorelkaar.

Kunnen jullie me daarbij helpen?


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  CFileFind finder;
   BOOL bWorking = finder.FindFile("H:\\Workspaces\\Easydtp\\Control\\createdfiles\\*.*");
   
   while (bWorking)
  {                  
          CString readtekst = "";    
         
          bWorking = finder.FindNextFile();
          readtekst = finder.GetFilePath();       

        int lengte = readtekst.GetLength();
        char* p = readtekst.GetBuffer(lengte);
    

        myFile.Open( p, CFile::modeRead | CFile::modeWrite | CFile::typeText, NULL );
                
            int nCount = myFile.SeekToEnd();
            myFile.SeekToBegin();
            char* pBuffer = new char[nCount];
            myFile.Read(pBuffer,nCount);

        
        myFile.Close();     
         
         
        m_cFileOutput = pBuffer;        
   }    
    
    UpdateData(FALSE);

Verwijderd

Topicstarter
epic007 schreef op 05 maart 2004 @ 13:48:
char* de_buffer[10];

moet zijn

char de_buffer[10];

geen zin om uit te leggen
dat werkt niet want het moet een pointer zijn.

error C2664: 'Read' : cannot convert parameter 1 from 'char' to 'void *'

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Verwijderd schreef op 05 maart 2004 @ 13:54:
[...]
dat werkt niet want het moet een pointer zijn.

error C2664: 'Read' : cannot convert parameter 1 from 'char' to 'void *'
Weet je uberhaupt wel wat die regel doet? :?

Oftewel: leg eens stap voor stap uit wat je in deze regels code doet:
C++:
1
2
char* de_buffer[10];
myFile.Read(de_buffer[10],10);

[ Voor 21% gewijzigd door curry684 op 05-03-2004 16:14 ]

Professionele website nodig?


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Lijkt me dat je wat moet gaan lezen over pointers en hun gebruik....

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Ik zal jullie geniën even wat zoete koek geven !!!!!

En als iemand wat vriendelijks vraagt kan ook vriendelijk antwoord gegeven worden hoor :O
(En zeker als het om enkele regels gaat)

Dat arrogante gedrag daar trek je niets mee aan hoor en de gene die zogenaamd _/-\o_ (doet) die bedriegen je.(wees blij dat ik je de waarheid even meld).


Hier is dan de uitkomst voor toekomstige zoekers ernaar die hier mogelijk komen.

code:
1
2
3
4
5
6
7
8
9
    CFile ticket;

    ticket.Open("H:\\Workspaces\\Easydtp\\Control\\createdfiles\\"+bn, CFile::modeRead);
// waar bn een bestandsnaam is

            int nCount = ticket.SeekToEnd();
            ticket.SeekToBegin();
            char* pBuffer = new char[nCount];
            ticket.Read(pBuffer,nCount);



Ciau


PS. Je kan hier op in gaan hoor maar dat bewijst alleen maar meer.

[ Voor 240% gewijzigd door Verwijderd op 11-03-2004 16:12 ]


  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 18:22

BoAC

Memento mori

Waarom SeekToEnd() gebruiken als er ook een functie GetLength() bestaat? Dit kost alleen maar tijd...

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

Mexx_Mike: flikker toch even een eind op zeg, als je geen moeite doet en geen FAQs leest mag je van mij wel gewoon keihard oprotten

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.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Ach ja, op 5 maart om 4 uur 's middags wees ik erop waar de fout zat en vroeg ik vriendelijk en educatief wat er fout was aan die regel.

Feit dat je 6 dagen bezig bent geweest om die ene fout te fixen bewijst alleen maar meer over jouw intelligentie.

Professionele website nodig?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

De 'wonderschone perfecte' oplossing van uwer doorluchtige heiligheid heeft trouwens een structurele niet onaanzielijke memoryleak.

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.