Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[physfs] Wczytywanie pliku tekstowego

Ostatnio zmodyfikowano 2013-11-07 18:40
Autor Wiadomość
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ą.
P-95520
Gabes
» 2013-11-07 01:57:44
Poczytaj tematy:
http://pl.wikibooks.org/wiki/C​/Czytanie_i_pisanie_do_plik%C3%B3w
http://pl.wikipedia.org/wiki​/RAW
Taki plik łatwo utworzyć z fotmatu bmp w programie IrfanView czy Gimp.


  
P-95521
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.
P-95532
DejaVu
» 2013-11-07 14:02:37
C/C++
#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 );
}
P-95535
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.
P-95542
pekfos
» 2013-11-07 15:19:27
To zamiast pliku użyj std::istringstream z buforem.
P-95543
MrPoxipol
» 2013-11-07 18:40:08
C/C++
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;

P-95551
« 1 »
  Strona 1 z 1