Jeśli odpowiedź, której szukasz, brzmi: "co czytać w książce", nic na to nie poradzę.
Jeśli "jak to zrobić" może być również dobre dla ciebie, mam pewne sugestie.
Jednym z dobrych rozwiązań jest rozwiązanie zaproponowane przez Srykar; Dodałbym tylko, że użyłbym SQLite zamiast MySQL. Jest to biblioteka C o otwartym kodzie źródłowym, którą możesz umieścić w swoim programie. Pozwala przechowywać dane w bazie danych w taki sam sposób, jak w przypadku instrukcji SQL, ale zamiast tego wywołuje funkcje biblioteki C. W twoim przypadku możesz zachować wszystko w pamięci, a następnie zapisać dane na dysku we właściwym czasie.
referencyjny: http://www.sqlite.org
Inną opcją jest stary "zrób to sam sposób". Mam na myśli: nie ma nic bardzo skomplikowanego w przechowywaniu twoich danych do pliku (chyba że twoje dane są bardzo uporządkowane, ale w tym przypadku skorzystam z opcji nr 1).
Zapisujesz plan, w jaki sposób chcesz utworzyć strukturę pliku. I postępujesz zgodnie z tym planem zarówno podczas zapisywania pliku na dysk, jak i podczas odczytu go ponownie przechowującego dane w pamięci.
Jeśli masz zapisy n. Napisz n na dysk, a następnie napisz każdy rekord.
Jeśli każdy rekord ma zmienną długość, wpisz długość każdego rekordu przed zapisaniem rekordu.
Mówisz o "losowym dostępie" w swoim pytaniu. Prawdopodobnie oznacza to, że plik jest bardzo duży iw czasie dostępu chcesz odczytać z dysku tylko ten fragment, który cię interesuje.
Jeśli tak, planujesz zbudować indeks; indeks wskaże przesunięcie każdego elementu w bajtach od początku pliku. Zapisz indeks na początku pliku, a następnie zapisz dane.
Po odczytaniu pliku rozpoczynającego czytanie indeksu, uzyskaj przesunięcie do potrzebnych danych i odczytaj tę część pliku.
Są to bardzo podstawowe przykłady, tak aby uzyskać pomysł ...
nadzieję, że pomoże!
jakie zmienne będą w danych? długie struny z różnymi zapisami? – billz
Nie jest to duplikat, ponieważ to pytanie jest bardziej szczegółowe na temat jego potrzeby (losowy dostęp do rekordów o zmiennej długości). – MSalters
@limi: Dlaczego zdecydowałeś się na plik? W tym celu istnieją bazy danych, które implementują już wszystkie wymagane logiki, aby zmapować dane na stałe. – MSalters