chars...
-
Einmal mehr machen mich die chars fertig...:
Es dürfte eigentlich nur ein Anfängerproblem sein, aber ich gelingt mir einfach nicht es zu lösen:
Ich weise einem char-Array den INhalt der Zeilen einer Datei zu und möchte diese einfach wieder in eine Datei ausgeben.
So klappt es nicht, bzw stürzt nach 507 Durchgängen ab:FILE *f; f = fopen("entries.txt","r"); int fileLeng = fileLength(f);//separate Funktion - funktioniert char ch[255]; for (int tt = 0; tt < (fileLeng-1); tt++) { FILE *u; u = fopen ("ue.txt","a"); char* zeile = fgets(ch,255,f); CString strin = zeile; nextStart = 0;//strin.Find(' '); nextEnd = strin.Find(' '); fprintf(u, "%c", &zeile); //bzw. fprintf(u, zeile); fprintf(u, " "); fclose(u); }Was ist nur falsch???
-
Jetzt klappt es. Geändert habe ich nichts... Zufall? Vielleicht findet ja noch jemand etwas...
-
class CApplication { private: std::vector< char >m_vContent; int m_iSize; afx_msg int ReadContent( CString name ); afx_msg int WriteContent( CString name ); public: afx_msg int ReadWrite( CString oldcs, CString newcs ); CApplication(){ m_iSize = 0; } };int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { CApplication capp; int iRet = capp.ReadWrite( "entries.txt", "ue.txt" ) return iRet; }int CApplication::ReadWrite( CString oldcs, CString newcs ) { int iRet = ReadContent( oldcs ); if( iRet == 0 ) iRet = WriteContent( newcs ); return iRet }int CApplication::ReadContent( CString name ) { CFileException ex; CFile cfile; if( cfile.Open( name, CFile::modeRead | CFile::typeBinary, &ex ) ) { const int iSIZE = 512; char bBuffer[ iSIZE ] = { '\0' }; UINT uiRead =0; while( uiRead = cfile.Read( bBuffer, iSIZE ) ) { if( uiRead <= iSIZE ){ m_vContent.insert( m_vContent.end(), &bBuffer[0], &bBuffer[uiRead] ); m_iSize += uiRead; } } cfile.Close(); } else { TCHAR szCause[255]; ex.GetErrorMessage(szCause, 255); _tprintf( szCause ); return -1; } return 0; }int CApplication::WriteContent( CString name ) { CFile newfile; CFileException ex; if( newfile.Open( name, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary ) ) { newfile.Write( m_vContent, ( m_iSize-1 ) ); newfile.Close(); return OK; } else { TCHAR szCause[255]; ex.GetErrorMessage(szCause, 255); _tprintf( szCause ); return -1; } return 0; }// untested - ausn kopf geschrieben