?
Hi,
ich versuche eine csv - Datei einzulesen die wie folgt aufgebaut ist:
Befehlname,numParameter,TypPara1,TypPara2,....
Beim Compilieren gibt es nur Wahnungen keine Fehler. Aber die Wahnungen verstehe ich nicht.
:\programme\microsoft visual studio\myprojects\jobparser\parser\fileanalyzer.cpp(78) : warning C4786: 'std::reverse_iterator<std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_stringstream<char,std::char_t
raits<char>,std::allocator<char> >,std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> > const &,std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> > const *,int>' : Bezeichner wurde auf '255' Zeichen in de
n Debug-Informationen reduziert
c:\programme\microsoft visual studio\myprojects\jobparser\parser\fileanalyzer.cpp(78) : warning C4786: 'std::reverse_iterator<std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> > *,std::basic_stringstream<char,std::char_traits<
char>,std::allocator<char> >,std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> > &,std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> > *,int>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informatio
nen reduziert
c:\programme\microsoft visual studio\myprojects\jobparser\parser\fileanalyzer.cpp(64) : warning C4786: '__ehhandler?analyze@FileAnalyzer@@QAEPAV??analyze@FileAnalyzer@@QAEPAV??analyze@FileAnalyzer@@QAEPAV?vector@V?basic_stringstream@DU?basic\_stringstream@DU?basic_stringstream@DU?char_traits@D@std@@V?allocator@D@2@@std@@V?allocator@D@2@@std@@V?allocator@D@2@@std@@V?allocator@V?basic_stringstream@DU?basic\_strin
gstream@DU?basic_stringstream@DU?char_traits@D@std@@V?allocator@D@2@@std@@@2@@std@@V?allocator@D@2@@std@@@2@@std@@V?allocator@D@2@@std@@@2@@std@@V?basic_string@DU?chartraits@D@std@@V?char_traits@D@std@@V?chartraits@D@std@@V?allocator@D@2@@3@D@Z' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
c:\programme\microsoft visual studio\myprojects\jobparser\parser\fileanalyzer.cpp(64) : warning C4786: '__unwindfunclet?analyze@FileAnalyzer@@QAEPAV??analyze@FileAnalyzer@@QAEPAV??analyze@FileAnalyzer@@QAEPAV?vector@V?basic_stringstream@DU?basic\_stringstream@DU?basic_stringstream@DU?char_traits@D@std@@V?allocator@D@2@@std@@V?allocator@D@2@@std@@V?allocator@D@2@@std@@V?allocator@V?basic_stringstream@DU?basic\_s
tringstream@DU?basic_stringstream@DU?char_traits@D@std@@V?allocator@D@2@@std@@@2@@std@@V?allocator@D@2@@std@@@2@@std@@V?allocator@D@2@@std@@@2@@std@@V?basic_string@DU?chartraits@D@std@@V?char_traits@D@std@@V?chartraits@D@std@@V?allocator@D@2@@3@D@Z$4' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
Wenn ich das Programm starte, läuft es ganz normal. Aber sobald ich das Kommando gefunden habe und den 1. Parameter eingelesen habe, stürzt es ab, mit folgender Meldung:
Debug Assertion Failure.
File: dbgheap.c Line: 1044
Exception: _CrtIsValidHeapPointer(pUserData).
Es handelt sich also um einen Zeigerfehler. Kann aber nichts finden.
Hier nun der relevante TEil aus meinem Code:
vector<stringstream>* FileAnalyzer::analyze(string s, char delim){
const int SIZE = 255;
char line[SIZE];
int counter=0;
stringstream tmp;
std::cout<<"Function analyze: " <<endl;
//an den Beginn positionieren
in.seekg(0L, ios::beg);
while(!in.eof() ){
std::cout<<"Test!"<<endl;
in.getline(line,SIZE, delim);
std::cout<<"Just read: "<<line<<endl;
//prüfe ob der gelesene Teil dem gesuchten Kommando entspricht
if(strcmp( line, s.c_str())== 0){
in.getline(line, SIZE, delim);
tmp<<line;
//Counter beinhaltet die Anzahl der Argumente
counter = atoi(line);
seperated.push_back(tmp);
//stringstream leeren und neu einrichten
tmp.clear();
tmp.str("");
while(counter > 0){
in.getline(line, SIZE, delim);
tmp<<line;
std::cout<<"While in analyze!"<<endl;
std::cout<<tmp.str()<<endl;
seperated.push_back(tmp);
tmp.clear();
tmp.str("");
counter--;
}
return (&seperated);
}
//Rest der Zeile will keiner wissen
else{
in.ignore(10000, '\n');
}
}
...
Hat jemand eine Idee, wo es das Probelm sein könnte?