pixelmaster Temat założony przez niniejszego użytkownika |
Zapis pliku z kodowaniem ANSI » 2009-05-04 12:10:09 No to tak. Jak w moim programie zapiszę plik, i próbuję go potem odczytać to się nie da, ale jak otworzę go notatnikiem i kliknę plik -> zapisz to wtedy mój program odczytuje ten plik poprawnie. Czyli wywnioskowałem, że muszę jakoś zapisać plik w kodowaniu ANSI, bo takie jest domyślne w notatniku chyba. Tylko nie wiem jak to zrobić :(. Ktoś ma pomysł jak to zrobić ? Aha dodam jeszcze że dane do pliku zapisuję poprzez strumień plik_zapis << tablica[i][j]; |
|
pekfos |
» 2009-05-04 15:21:31 spróbuj zapisywać do pliku przez .write() i odczytywać przez .read() a później rozdzielać na stringi:) |
|
GoldWolf |
» 2009-05-04 15:52:31 Jeśli dobrze zrozumiałem, napisałeś program który zapisuje w kodzie ASCII(czyli zwykłe liczby) do pliku, i potem nie umiesz tego pliku odczytać w tym programie. Ale jak to co program zapisuje, wprowadzisz ręcznie do pliku(w notatniku) to program umie to odczytać?
To ciekawe?!? |
|
WunM |
» 2009-05-04 16:09:33 Jeśli zapisujesz plik bezpośrednio w swoim programie to nie powinno być problemu (Zwłaszcza jeśli to robisz za pomocą tej samej biblioteki). Możliwe że masz błąd tam gdzie chcesz wrzucić na ekran zawartość pliku. Druga możliwość to że plik nie siedzi w katalogu z programem. |
|
pixelmaster Temat założony przez niniejszego użytkownika |
» 2009-05-04 17:41:01 @pekfos - zapomniałem napisać, że zapisuję tablicę int a to write() chce mieć char @michalos13 - błędu przy wyrzucaniu na ekran raczej nie ma, bo wystarczy, że otworzę plik w notatiku, kliknę zapisz i wtedy mój program poprawnie odczytuje dane z pliku, plik nie jest w folderze z programem ma ktoś jakiś pomysł ? |
|
DejaVu |
» 2009-05-04 17:42:18 Tak szczerze mówiąc to niezbyt zrozumiałem treść pierwszego posta, ale jeśli są osoby, które go rozumieją to dobrze :) |
|
GoldWolf |
» 2009-05-04 17:45:05 Spróbuj zapisać bez rozszerzenia pliku. np. plik("test", ios::out) i podobnie przy wczytywaniu. |
|
pixelmaster Temat założony przez niniejszego użytkownika |
» 2009-05-04 18:26:38 @Dante - brak rozszerzenia nic nie zmienił. Spróbuję jakoś bardziej wytłumaczyć, żeby każdy zrozumiał. Napisałem program, który zapisuje do pliku, i odczytuje z pliku dane w postaci tablicy liczb. 1. Tworzę sobie w nim tablicę np 0 0 0 0 0 0 0 0 0 2. Zapisuje ją do pliku np. tablica.txt 3. Otwieram zapisany plik moim programem i dostaję error. 4. Otwieram plik tablica.txt notatnikiem, klikam plik -> zapisz 5. Ponownie otwieram plik tablica.txt moim programem, i wszystko działa funkcja zapisująca: std::fstream plik_zapisek( sNazwaPliku, std::ios::out ); for( int i = 0; i < mapa_i; i++ ) { for( int j = 0; j < mapa_j; j++ ) { plik_zapisek << Mapa[ i ][ j ]; if( j ==( mapa_j - 1 ) ) plik_zapisek << "\n"; else plik_zapisek.seekp( + 1, std::ios_base::end ); } } plik_zapisek.close(); funkcja odczytująca: if( !( plik = fopen( sNazwaPliku, "r" ) ) ) { MessageBox( hwnd, "Nie można otworzyć pliku!", "Error!", MB_ICONINFORMATION ); exit( 0 ); } for( i = 0; i < mapa_i; i++ ) { for( j = 0; j < mapa_j; j++ ) { if((( a = fscanf( plik, "%d", & Mapa[ i ][ j ] ) ) == EOF ) ||!a ) { MessageBox( hwnd, "Niepoprawne dane w pliku!", "Error!", MB_ICONINFORMATION ); exit( 0 ); } } } fclose( plik ); |
|
« 1 » 2 |