przeszukiwanie binarne JAK?

0

hej chlopaki mozecie opisac (najlepiej przyklad) jak przeszukac plik textowy binarnie? w c++

0

co to znaczy "przeszukac plik textowy binarnie" ?

0

wczytujesz plik partiami do pamięci - np po 1MB (pamięć większa o 1 bajt na końcowe zero)
No i teraz pozycja = strstr(memory, *szukany_string)
Jeśli nie znajdzie to liczysz wielkość stringu w memory (string kończy się na zerze!) i zaczynasz strstr(memory+strlen+1, string) aż do końca pamięci

przykładowo wczytałeś do pamięci takie bajty:
1,54,243,63,4,88,0,4,74,"j","a","z","d","a", ......
szukasz stringu "jazda" - zaczynasz od memory + 0, czyli nie znajdziesz, bo przed "jazda" jest zero. Liczysz długoś stringu od aktualnej pozycji startowej i wychodzi 6. Dodajesz 1 (pomijasz zero) i zaczynasz strstr(memory+7, "jazda")
a funkcja zwraca (memory+9) :d

Ale szukając bajtu, worda, dworda albo coś większego - jeśli nie ma w tej liczbie zera to śmiało możesz potraktować tą liczbę jako string, ale przepisz ją do jakiegoś bufora i na końcu dopisz zero - i jedź z strstr :)
Gożej gdy ta liczba ma jakiś zerowy bajt - musisz bajt po bajcie sprawdzać czy całość się zgadza. Pewnie jest coś do tego w CRTDLL, ale nie szukałem jeszcze

1 użytkowników online, w tym zalogowanych: 0, gości: 1