25. März 201015 j Hallo , ich hab ne ähnliche problem, ich will ein binäre datei lesen und in eine Datenbank speichern , aber von 2724b liest nur 59 b ! if(!(fp = fopen("file.p12", "rb"))) { cout <<"Error reading file.\n"; return -1; } long lSize; char * buffer; size_t result; // obtain file size: fseek (fp , 0 , SEEK_END); lSize = ftell (fp); rewind (fp); // allocate memory to contain the whole file: buffer = (char*) malloc (sizeof(char)*lSize ); if (buffer == NULL) {cout << "Memory error\n"; return -1;} // copy the file into the buffer: result = fread (buffer,1,lSize ,fp); if (result != lSize) {cout << "Reading error\n"; return -1;} fclose(fp); // buffer in DB schreiben .... Kann jemand helfen ? Danke !
25. März 201015 j Warum schlägt man sich freiwillig mit fread und malloc herum, wenn man C++ zur Verfügung hat? ifstream f("file.p12", ios_base::binary); f >> noskipws; vector<char> buffer; // copy the file into the buffer: copy(istream_iterator<char>(f), istream_iterator<char>(), back_inserter(buffer)); // buffer in DB schreiben .... [/code] Zu deinem Problem: lSize ist 2724, aber result ist 59?
25. März 201015 j Danke für die schnelle antwort Zu deinem Problem: lSize ist 2724, aber result ist 59? nein lSize und result sind 2724 , aber wenn ich die buffer in DB speicher (BLOB) ist es nur 59b !
25. März 201015 j nein lSize und result sind 2724 , aber wenn ich die buffer in DB speicher (BLOB) ist es nur 59b !Dann liegt der Fehler vermutlich in dem Teil des Codes, den du nicht gezeigt hast, irgendwo hinter // buffer in DB schreiben
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.