[physfs] Wczytywanie pliku tekstowego
Ostatnio zmodyfikowano 2013-11-07 18:40
polkom21 Temat założony przez niniejszego użytkownika |
[physfs] Wczytywanie pliku tekstowego » 2013-11-07 01:40:03 Witajcie. Otóż naszły mnie takie rozważania na temat physfs. Zastanawia mnie w jaki sposób można by było wczytać plik z physfs w taki sam sposób w jaki można to zrobić za pomocą fstream w c++. Ładować cały plik to nie problem tak jak jest z plikami graficznymi natomiast jeżeli chciał bym mieć mapę, która jest plikiem tekstowym i chciał bym wczytać ją do tablicy to już jest spory problem. Podpowie ktoś czy coś takiego w ogóle da się zrobić? Może ktoś już coś takiego zrobił i podzieli się doświadczeniami ze mną tym samym rozwiąże moje rozważania na temat biblioteki physfs, która jest dla mnie zupełną nowością. |
|
Gabes |
» 2013-11-07 01:57:44 |
|
polkom21 Temat założony przez niniejszego użytkownika |
» 2013-11-07 12:41:10 No wiesz ale tu nie jest problemem to, że physfs nie wczytuje plików tekstowych bo wczytuje i spokojnie można sobie wczytać zawartość do zmiennej char[] ale chodzi o to, że ja chcę wczytać plik do tablicy a zawartość pliku jest taka: 2 4 4 2 3 5 9 9 7 7 7 7 5 1 0 3 i jak można się domyślić to ma być zapisane w tablicy dwuwymiarowej. |
|
DejaVu |
» 2013-11-07 14:02:37 #include <fstream> #include <sstream> #include <vector>
std::vector < std::vector < int > > v; std::string sWiersz; while( getline( sWiersz, plik ) ) { std::stringstream sDane; sDane << sWiersz; std::vector wiersz; int iLiczba; while( sWiersz >> iLiczba ) wiersz.push_back( iLiczba ); v.push_back( wiersz ); } |
|
polkom21 Temat założony przez niniejszego użytkownika |
» 2013-11-07 14:48:17 Wszystko super tylko jak wcześniej pisałem wczytuję plik *.txt za pomocą physfs więc w grę wchodzi ładowanie pliku z bufora. |
|
pekfos |
» 2013-11-07 15:19:27 To zamiast pliku użyj std::istringstream z buforem. |
|
MrPoxipol |
» 2013-11-07 18:40:08 std::string str;
char * buffer = NULL; bool file_good = true; if( PHYSFS_exists( file_name ) ) { PHYSFS_File * filenameHandle = PHYSFS_openRead( file_name ); if( filenameHandle != 0 ) { PHYSFS_sint64 bufferSize = PHYSFS_fileLength( filenameHandle ); buffer = new char[( unsigned int )( bufferSize * 1.1 + 12 ) ]; PHYSFS_read( filenameHandle, buffer, sizeof( char ), bufferSize ); PHYSFS_close( filenameHandle ); buffer[ bufferSize ] = '\0'; } else file_good = false; } else file_good = false;
|
|
« 1 » |