hoi,
Ik heb een database systeem gemaakt, maar nu gebeurd er iets heel vreemd tijdens het inladen van gegevens van de hdd. Er is een bestand, "klanten" dat ingeladen word en op een bepaalde regel skipt gy deze en de volgende regel. Heb ik iets verkeerd gedaan met geheugen allocaties? Of overschrijven van iets? Het gekke is dat het enkel dit bestand dat dit doet, en telkens op dezelfde regel!
klanten-bestand
Ik heb een database systeem gemaakt, maar nu gebeurd er iets heel vreemd tijdens het inladen van gegevens van de hdd. Er is een bestand, "klanten" dat ingeladen word en op een bepaalde regel skipt gy deze en de volgende regel. Heb ik iets verkeerd gedaan met geheugen allocaties? Of overschrijven van iets? Het gekke is dat het enkel dit bestand dat dit doet, en telkens op dezelfde regel!
Code:
ifstream DBfile;
ifstream TBfile;
ROW BufferRow;
CELL BufferCel;
AnsiString file;
bool EOCH = false;
char *BUF;
mkdir( Name.c_str() );
DBfile.open( (Name + "/header.db").c_str() );
DBfile.seekg(0);
while( !DBfile.eof() && !DBfile.fail() )
{
BUF=new char[512];
DBfile.getline( BUF, 512);
string strBuf = BUF;
delete BUF;
if( strBuf != "" )
{
vector <string> vBuf;
vBuf = Explode(strBuf,";");
if( vBuf.size() > 0 )
{
AddTable( vBuf.at(0), atoi( (char *)vBuf.at(1).c_str() ) );
}
else
{
AddTable( vBuf.at(0), 0);
}
}
}
DBfile.close();
for( int i = 0;i < Tables.size();i++ )
{
file = "DB\\Klanten";//(char *)( Name + "/" + Tables.at( i ).Name).c_str();
TBfile.clear();
TBfile.open( file.c_str(),fstream::in );
int cols = 0;
if( TBfile.fail() )
{
MessageBox(NULL, ("Can't open : " + Name + "/" + Tables.at( i ).Name + ":" + _sys_errlist[errno]).c_str(), "HEADER", MB_ICONERROR | MB_OK );
}
Tables.at( i ).vRows.push_back( BufferRow );
cols = 0;
EOCH = false;
for( ;!TBfile.eof() && !TBfile.fail(); )
{
BUF= new char[512];
TBfile.getline( BUF,512 );
string smBuffer = BUF;
delete BUF;
if( smBuffer != "EOCH" && EOCH == false )
{
Tables.at( i ).AddCol( smBuffer,0 );
MessageBox(NULL, ((AnsiString)Tables.at( i ).vColumns.size() ).c_str(), "INHOUD", MB_ICONERROR | MB_OK );
}
else
{
if( EOCH )
{
Tables.at( i ).vRows.back().vCells.push_back( BufferCel );
Tables.at( i ).vRows.back().vCells.back().Value = smBuffer;
// Ier loop et ergens mis, ie moe normaal een regel lezen, maar ie sla em altijf over, zelfs meteen na de buffer
if( Tables.at( i ).vRows.back().vCells.size() == Tables.at( i ).vColumns.size() )
{
Tables.at( i ).vRows.push_back( BufferRow );
}
}
else if( EOCH == false )
EOCH = true;
}
}
TBfile.close();
}
return true;
klanten-bestand
Code:
ID
Naam
Adres
E-Mail
BTW
Telefoon
GSM
EOCH
5
Arend Lapere
0
1
BE . .
/
/