[c++][winapi] odczyt z pliku
Ostatnio zmodyfikowano 2011-04-23 12:10
waldiw Temat założony przez niniejszego użytkownika |
[c++][winapi] odczyt z pliku » 2011-04-23 07:06:55 Mam przykładowy plik tekstowy zawierający w kilku liniach cyfry, np:
5
2
4
3
Odczytuję ten plik :
LPSTR Bufor; DWORD dwRozmiar, dwPrzeczyt; HANDLE hPlik; hPlik = CreateFile( "lista1.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL ); if( hPlik == INVALID_HANDLE_VALUE ) MessageBox( NULL, "Nie można otworzyć pliku.", "Info", MB_ICONEXCLAMATION );
dwRozmiar = GetFileSize( hPlik, NULL ); if( dwRozmiar == 0xFFFFFFFF ) MessageBox( NULL, "Nieprawidłowy rozmiar pliku", "Info", MB_ICONEXCLAMATION );
Bufor =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar + 1 ); if( Bufor == NULL ) MessageBox( NULL, "Za mało pamięci", "Info", MB_ICONEXCLAMATION );
if( !ReadFile( hPlik, Bufor, dwRozmiar, & dwPrzeczyt, NULL ) ) MessageBox( NULL, "Błąd czytania z pliku", "Info", MB_ICONEXCLAMATION );
Bufor[ dwRozmiar ] = 0; SetWindowText( hStatic, Bufor );
GlobalFree( Bufor ); CloseHandle( hPlik );
Czy da się odczytać ten plik linia po linii lub ewentualnie wydzielić każdą linię osobno ze zmiennej Bufor?
|
|
marek |
» 2011-04-23 09:48:46 Pewnie to będzie dla Ciebie przedszkole, ale rzuć okiem na Nowe publikacje/Obsługa plików C++ dla początkujących. Tam zrealizujesz to wykorzystując podstawowe narzędzia. |
|
waldiw Temat założony przez niniejszego użytkownika |
» 2011-04-23 10:10:22 W aplikacji konsolowej wiem jak to zrobić. Czytam linie w pętli:
while( !plik.eof() ) plik >> liczba;
Moje pytanie jest jak to zrobić w WinAPI? |
|
Elaine |
» 2011-04-23 10:34:21 Tak samo, nikt nie zabrania używania standardowych strumieni w kodzie korzystającym z WinAPI. |
|
Dawidsoni |
» 2011-04-23 12:10:07 Nie musisz się uczyć obsługi plików w WinAPI skoro możesz wykorzystać pewnie już poznaną bibliotekę fstream. |
|
« 1 » |