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

[WinAPI] Użycie znaku EOF

Ostatnio zmodyfikowano 2013-03-16 12:54
Autor Wiadomość
lergon
Temat założony przez niniejszego użytkownika
[WinAPI] Użycie znaku EOF
» 2013-03-14 23:19:10
Witam
Na wstępie
Szukałem na google na jakiś stronach i nie znalazłem nic pomocnego :

Mianowicie jak użyć znaku EOF w programie czy on jest jakos podpinany jako funkcja czy jak ?

C/C++
HANDLE Plik_Kont_Lokalny;
Plik_Kont_Lokalny = CreateFile( "Dane_Aplikacji\\ListaKont.jabin", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL );
DWORD rozmiar = GetFileSize( Plik_Kont_Lokalny, NULL );
W_Int1 = new int;
W_Int2 = new int;
W_Char1 = new char;
* W_Int1 =- 13; //dlugosc lini                                                 
* W_Int2 =- 1; //licznik

do
{
   
    * W_Int2 += 1;
    * W_Int1 += 13;
    SetFilePointer( Plik_Kont_Lokalny, *( W_Int1 ), NULL, FILE_BEGIN );
    ReadFile( Plik_Kont_Lokalny,( LPVOID ) W_Char1, 1, & Bytes_Read, NULL );
   
} while( * W_Char1 = EOF );

CloseHandle( Plik_Kont_Lokalny );
P-78398
Mrovqa
» 2013-03-15 08:51:58
W plikach nie ma żadnego znaku EOF, który oznacza jego koniec. Po prostu system wie, ile waży plik, i gdy dojdziesz do końca to Cię informuje umownym znakiem EOF (którego w pliku tak naprawdę nie ma). To jest tylko taka pomoc dla programisty. Ofc, możesz sobie zapisać znak EOF binarnie w pliku, jednakże nie będzie on oznaczać końca pliku - funkcje wczytujące znak zwrócą ci jeden bajt pliku, bo w pliku coś jeszcze jest - a EOF ma 2 bajty (albo więcej - nie pamiętam dokładnie).
P-78405
pekfos
» 2013-03-15 14:45:03
a EOF ma 2 bajty (albo więcej - nie pamiętam dokładnie).
Wartość i rozmiar EOF zależy od implementacji. Najczęściej jest to
( - 1 )
.
P-78429
lergon
Temat założony przez niniejszego użytkownika
» 2013-03-15 20:34:55
Dzięki wielkie za inforamcję zwłaszcza że owe tajemnicze EOF nie istnieje :) a ja szukam jak głupi.

jeżeli mogę mieć jeszcze do was jedno pytanie : to o ile jest przesuwany wskaźnik pliku:

SetFilePointer( Plik_Kont_Lokalny, 1, NULL, FILE_CURRENT );

Zawartość pliku:

1234567890?

obudowałem ten SetFilePointer forem i kolejne  wyświetlane elementy to : 1,3,5,7,9,? uznałem wiec że 0.5 jako wartość przesunięcia będzie odpowiednia ale gdy dałem juz 4.5 to wyświetlił mi  1,6 a powinien wedle mojego założenia 1,9 bądź 0  w każdym razie na pewno nie 6.


reasumując jak to jest z tą wartością przesunięcia
P-78472
pekfos
» 2013-03-15 20:38:44
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365541%28v=vs.85%29.aspx
Na pewno bez połówek, drugi argument to liczba całkowita.
P-78474
lergon
Temat założony przez niniejszego użytkownika
» 2013-03-16 00:06:45
no to szczerze już kompletnie nie łapie jak przemieścić się tym wskaźnikiem do następnej litery
P-78504
pekfos
» 2013-03-16 12:54:51
Co chcesz uzyskać? Wczytanie wszystkich elementów po kolei?
P-78518
« 1 »
  Strona 1 z 1