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

Zapis pliku z kodowaniem ANSI

Ostatnio zmodyfikowano 2009-05-04 18:44
Autor Wiadomość
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];
P-6396
pekfos
» 2009-05-04 15:21:31
spróbuj zapisywać do pliku przez .write() i odczytywać przez .read()
a później rozdzielać na stringi:)
P-6399
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?!?
P-6401
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.
P-6402
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ł ?
P-6414
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 :)
P-6415
GoldWolf
» 2009-05-04 17:45:05
Spróbuj zapisać bez rozszerzenia pliku.
np. plik("test", ios::out) i podobnie przy wczytywaniu.
P-6416
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:
C/C++
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:
C/C++
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 );
P-6425
« 1 » 2
  Strona 1 z 2 Następna strona