[#1]
Dziwne wczytywanie danych
W c++ ver. 4.4.3 używam następujących operacji do wczytania pliku:
void wczytaj (string sNazwa)
{
cout <<"1:" << endl;
fstream plik_odczyt;
cout <<" 1 koniec" << endl;
cout <<"2:" << endl;
plik_odczyt.open ((sNazwa.c_str()),ios::in|ios::binary);
cout <<" 2 koniec" << endl;
cout <<"3:" << endl;
plik_odczyt.seekg (0,ios::end);
cout <<" 3 koniec" << endl;
cout <<"4:" << endl;
i_DlugoscPliku = plik_odczyt.tellg();
cout <<" 4 koniec" << endl;
cout <<"5:" << endl;
pc_Dane = new char [i_DlugoscPliku]; // i_DlugoscPliku zamiast BAJT
cout <<" 5 koniec" << endl;
cout <<"6:" << endl;
plik_odczyt.seekg (0, ios::beg);
cout <<" 6 koniec" << endl;
cout <<"7:" << endl;
plik_odczyt.read (pc_Dane, i_DlugoscPliku); // i_DlugoscPliku zamiast BAJT
cout <<" 7 koniec" << endl;
cout <<"8:" << endl;
plik_odczyt.close ();
cout <<" 8 koniec" << endl;
}
Okazuje się, że niektóre pliki wczytują się dłużej a nie które wolniej. Konkrety otóż mam plik 20 mb wczytuje się około 10 min do pamięci a inny 30,5 mb wczytuje się 6s. - to nie literówa. Po wypunktowaniu operacji okazuje się, że winna jest temu operacja nr 7 plik_odczyt.read (pc_Dane, i_DlugoscPliku);. W czym tkwi przyczyna? Zależy mi na kompatybilności kodu z windows i mos. Wczytuję przy jej pomocy różne pliki wav. Wczytywanie danych do pamięci jest oddzielną funkcją.