Jak zaapisać dane do pliku ??

0

Witam.

Czy w C++ Builderze jest odpowiednik Delphi'owych plików typowanych ?
Problem polega na tym, że chciałbym przechowywać w pliku swoją baze danych.
Dla kolumn A, B, C chciałbym wrzucać ~kilkanaście/kilkadziesiąt rekordów.

Istotne jest to ze dane wpisy musiałbym usuwać (np te ze środka).
Jak zrobić coś takiego ?

Również potrzebne jest to do innego programiku (czytnik rss)
Jak zapisywać listę kanałów i dowolnie je usuwać ?

Jeśli ktoś miałby linka to takiego tutoriala byłbym wdzięczny bo nie mogłem znaleźć.

Pozdrawiam.

0

Nie da się usuwać ze środka pliku i już. Możesz wpisać do pliku kawałek przed tym co chciałeś usuwać i kawałek po tym, innej drogi nie ma.

0

oznaczasz dany rekord jako usunięty i w pętli wczytującej dane ignorujesz go, albo w pliku wszystkie rekordy po tym usuniętym przesuwasz o jedną pozycję do przodu i robisz truncate na pliku

0

hmmm..

Każdy program zapisuje sobie dane (taka własna mini baza danych).
Czy znacie strone z przykładem w C++ pokazującym krok po kroku jak to ugryźć ?

0

To już lepiej ostatni przepisać w miejsce usuwanego i wtedy truncate… jeśli w pliku rekordy nie muszą być posortowane.

0

Czy nikt na prawdę nie może mi przedstawić przykładowego kodu lub podać linka gdzie jest to ładnie opisane ??

:(

Pozdro.

0

Czy ja mógłbym uzyskać pomoc ????

Byłbym bardzo wdzięczny ........

0

Halo halo programiści...

Na tak podstawowe pytanie potrzebuje odpowiedź...
W tym zaśmieconym internecie nie moge znaleźć odpowiedzi na moje pytanie..

Dzięki wielkie temu kto pomoże !!

0

Ban na google: http://kursy.ddt.pl/?LessonId=110
"c++ zapisywanie do pliku tutorial" w google i masz drugi wynik! Bez umiejętności szukania daleko nie zajdziesz.

0

Odczyt i zapis to banał. Problem pojawia się w momencie kiedy dodaj 30 rekordów i chcę np 21 usunąć i 18 zedytować.
jeden rekord zawierałby 7 pol (np imie, nazwisko, itd...)
Warunek - brak bazy danych ....

0

napisaliśmy przecież:

  • edycja - seek w pliku na miejsce przed rekordem, który chcesz zmienić, zapisanie rekordu, zamknięcie pliku
  • usuwanie
    - rozwiązanie A) jeśli usuwany rekord nie jest ostatni, to seek przed ostatni rekord, wczytanie go, seek na miejsce przed rekordem, który chcesz usunąć, zapisanie wczytanego rekordu i ponownie seek przed ostatni rekord i truncate na pliku. jeśli usuwany rekord jest ostatni, to tylko seek przed ostatni rekord i truncate.
    - rozwiązanie B) w rekordzie dodajesz flagę (np. o nazwie "removed") typu bool oznaczający, czy rekord został usunięty. jeśli usuwasz rekord, to ustawiasz to pole na true i zapisujesz zmianę w rekordzie tak, jak przy edycji (chyba, że rekord jest na końcu pliku, to możesz zrobić truncate). przy zapisywaniu nowego rekordu nie dopisujesz go na końcu pliku, tylko najpierw sprawdzasz, czy nie możesz go zapisać na miejscu pierwszego z usuniętych rekordów. przy wczytywaniu rekordów musisz sprawdzać, czy flaga "removed" została ustawiona i odpowiednio ignorować takie wpisy.
    A jest prostsze, usuwanie jest względnie wolne, reszta operacji jest szybka i prosta. B jest szybsze, ale komplikuje wszystkie operacje na pliku i do sprawnego działania na dużej ilości danych wymaga indeksów.

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