• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapisywanie danych w c++

Konferencja JOIN! 2018
0 głosów
101 wizyt
pytanie zadane 8 marca w C i C++ przez jarpaw Nowicjusz (120 p.)
Witam serdecznie,

jestem nowym użytkownikiem forum oraz zaczynam naukę programowania w c++. Pomimo iż na początku przerabiam programowanie w konsoli nurtuje mnie sprawa związana już z programowaniem aplikacji okienkowej.

Próbowałem znaleźć w sieci jednoznacznej odpowiedzi na pytanie, gdzie zapisuje się dużą ilość informacji(danych) wprowadzanych przez użytkownika.

Przykładowo:

Tworzymy program w stylu menedżer finansów, gdzie użytkownik wprowadza bardzo dużą ilość danych i czy trzeba na te dane dodatkowo stworzyć osobną bazę danych z którą następnie łączymy nasz program?

Będę wdzięczny za odpowiedź.
komentarz 8 marca przez Sebastian Fojcik Nałogowiec (42,510 p.)
=== Przeniesione do odpowiedzi ===

2 odpowiedzi

0 głosów
odpowiedź 8 marca przez Beginer Pasjonat (22,130 p.)
W najprostszy sposób dane można zapisywać w pliku tekstowym *.txt
0 głosów
odpowiedź 8 marca przez Sebastian Fojcik Nałogowiec (42,510 p.)
Wszystko zależy od tego jak zdecydujesz się napisać swoją aplikację. Jednym z wyjść, jest przechowywanie wszystkich danych w pamięci RAM (czyli w zmiennych int, string itp. - choć to duże uproszczenie, bo te dane trzeba raczej trzymać w dynamicznych strukturach danych, ale jak zaczynasz dopiero programować, to pewnie nie zrozumiesz jeszcze). Jak program padnie przed zapisaniem, to wszystko przepada.

Innym wyjściem jest zapisywać stan programu w tle do jakiegoś tymczasowego pliku. Tak chyba robi Excel, Word. Oczywiście wszystkie liczby, które aktualnie są wyświetlane w Excelu zapewne też siedzą w jakiejś tablicy w programie.

Tworzenie takich tymczasowych plików pomaga zaoszczędzić RAM, poprzez stopniowe doczytywanie kolejnych porcji danych z pliku.

Jak otwierasz ogromny plik TXT, który ma powiedzmy 50 MB. To taki porządniejszy notatnik nie będzie wczytywał całego pliku. Tylko wyczyta początek i ci go wyświetli. Jak zaczniesz scrollować, to zacznie doczytywać kolejne porcje tekstu.

Windowsowy notatnik tego nie robi, więc próba otwarcia ogromnego pliku potrafi go zawiesić na kilka minut.

Wracając jeszcze do twojego przykładu z menedżerem finansów. Jakby użytkownik wprowadzał dużą ilość danych, to zapisujesz je do zwykłych tablic. Często nawet o tym nie wiesz, bo np. pole tekstowe w aplikacji okienkowej, to swego rodzaju obiekt. który robi to za ciebie.

Nie wiem też co rozumiesz przez "dużą ilość informacji". Dla mnie np. arkusz kalkulacyjny. który ma 10 tysięcy wierszy wypełnionych liczbami, to wcale nie jest dużo informacji. Program wyczyta to w ułamek sekundy. Jak renderujesz film w np. Adobe Premiere, to ten program przetwarza pliki, które łącznie potrafią czasami ważyć 100 GB, a nawet więcej. To jest dopiero problem, bo nie ma szans, aby to do RAM w czytać.

Tobie przez dłuuuugi czas będą wystarczały zwyczajne tablice. Jak poznasz obiektowość i będziesz robił aplikacje okienkowe, to ta wiedza gdzie co zapisać sama przyjdzie. Ciężko to tobie teraz wyjaśnić, gdy nie miałeś styczności z tworzeniem tego typu programów w oknie.

Pozdrawiam :-)
komentarz 11 marca przez jarpaw Nowicjusz (120 p.)
Dziękuje bardzo za odpowiedź

Podobne pytania

0 głosów
1 odpowiedź 92 wizyt
pytanie zadane 7 stycznia w Java przez Dominik Kulis Użytkownik (720 p.)
0 głosów
2 odpowiedzi 138 wizyt
pytanie zadane 5 grudnia 2015 w SQL, bazy danych przez artimal Gaduła (4,840 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

55,376 zapytań

99,732 odpowiedzi

205,204 komentarzy

27,305 pasjonatów

Przeglądających: 338
Pasjonatów: 19 Gości: 319

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...