Wątek przeniesiony 2014-02-01 20:41 z Inne języki programowania przez Ktos.

Visual Basic.NET Zapamiętywanie danych.

0

Witam.
Jestem tutaj nowy więc coś o sobie :) Amator i od niedawna staram się coś napisać w VB.NET. Próbując napisać sobie malutki programik do wyliczania zużycia paliwa , kosztów z tym poniesionych oraz jakiś tam jeszcze kilku drobniejszych spraw (np.daty , miesięcznych statystyk itp.) natrafiłem na problem zapamiętywania danych . Nie potrafię tego przebrnąć i nie za bardzo wiem jak ugryźć . Rozumiem , że plik *.txt przechowa mi jakąś daną ale czy muszę dla każdej danej , którą chcę zapamiętać (np. ilość zakupionego paliwa ma przyrastać , cena się zwiększa ), stwarzać plik tekstowy żeby te dane zostały mi trwale w programie . Wiem , że są bazy danych , których zresztą jeszcze nie kumam ale staram się zrozumieć . Tyle, że dla bazy danych to ja tych danych mam za mało a dla plików txt to wydaje mi się za dużo. Czy są jeszcze jakieś inne możliwości aby takie dane magazynować gdzieś na dysku jednocześnie bez konieczności tworzenia wielu plików . Nie za bardzo potrafię znaleźć i w zasadzie nawet przy zapytaniu w google czy nawet na tym forum nie wyskakuje mi nic ciekawego . Oczywiście stron jest wiele ale żadna nawet nie podsunęła mi pomysłu. Może komuś będzie chciało się odpowiedzieć i nadać mi kierunek poszukiwania odpowiedzi bo jak już to zrobić to będę musiał poradzić sobie sam :) . Z góry dzięki za jakąś poradę .

P.S. Może to pytanie jest z tych dla oczywistych ale ja nie potrafię sobie z tym poradzić . Pamiętanie ma być długotrwałe czyli również po zamknięciu programu jakby ktoś się nie domyślił :)

0

Dokładnie do tego samego używam SQLite.

0

Czy są jeszcze jakieś inne możliwości aby takie dane magazynować gdzieś na dysku jednocześnie bez konieczności tworzenia wielu plików

Piszesz tak, jakby w jednym pliku można było zapisać zawartość tylko jednej zmiennej czy stałej; Przecież do dowolnego pliku możesz zapisać dowolną ilość danych (teoretycznie dowolną, bo maksymalny rozmiar pliku jest określony) w dowolnej formie - jako tekst czy dane binarne bez konwersji;

Tyle, że dla bazy danych to ja tych danych mam za mało a dla plików txt to wydaje mi się za dużo.

To znaczy ile masz tych danych? "Mało" czy "dużo" nic nie tłumaczy - doprecyzuj;

Może komuś będzie chciało się odpowiedzieć i nadać mi kierunek poszukiwania odpowiedzi [...]

Jeśli nie chcesz korzystać z baz danych to skorzystaj z pliku binarnego - ominiesz niepotrzebną konwersję danych do łańcuchów - poczytaj na ten temat;

P.S. Może to pytanie jest z tych dla oczywistych ale ja nie potrafię sobie z tym poradzić . Pamiętanie ma być długotrwałe czyli również po zamknięciu programu jakby ktoś się nie domyślił

No to raczej oczywiste - innej możliwości przechowania danych po zamknięciu programu jak zapis na dysku nie ma.

0

Dziękuję za zainteresowanie i odpowiedzi . Co do SQLite to jest to jak się nie mylę forma bazodanowa, która jak na razie stanowi dla mnie czarną magię - w VB.NET 2012 nawet nie potrafię zbudować prostej bazy pomimo tego, że jest tam wszystko już wbudowane - nie wiem jakoś nie mogę tego zatrybić . Jeśli chodzi o ilość zapamiętywanych typów danych to myślę ,że zmieszczę się w 10 ale jak dla mnie tworzenie 10 plików tekstowych dla 10 typów danych jest troszkę jak zabieranie się za kopanie rowu o h= 2 m za pomocą szpadla. Można ale czemu nie użyć koparki no tak ale czy do tego potrzeba od razu gąsienicowej też można ale czy środek nie za duży do potrzeb . Poczytam o danych binarnych , nie dzisiaj ale poczytam . Co do tego , że do pliku można zapisać dosyć dużą ilość danych to się zgadzam . Problem jednak polega na ich późniejszych ekstrakcji w celu użycia . Jeszcze byłoby to do przyjęcia jeśli moje zdarzenia zachodziłyby w tym samym czasie np. tankuję dzisiaj i przejeżdżam też dzisiaj ileś tam kilometrów . ale co się dzieję gdy jutro przejeżdżam następne kilometry - dopisuję do pliku no i mi się robi bałagan bo nie mam litrów ale mam nową datę i kilometry no i jak mam to teraz wyciągnąć (zrobić z tego statystykę). Poza tym zapisy mają być gromadzone tzn. , że za rok mam wiedzieć , że dzisiaj zatankowałem np. 50l. Co prawda jak tak odpisuję to samemu przychodzi mi coś do głowy ale jeszcze muszę to przemyśleć czy nie można użyć w pliku jakiś znaczników oddzielających poszczególne wątki , no tak ale jak to wyświetlić w późniejszym czasie w celu uzyskania statystyk . Ale... hm... jak człowiek zacznie o czymś głośno myśleć to czasami i może na coś wpadnie . Oczywiście odpowiedzi doceniam bo to dzięki nim mogę się zastanowić nad rozwiązaniem a tak to myśli błądzą w kółko jak chomiczek :) Może ktoś jeszcze ma jakieś pomysły lub sugestie . Z góry jeszcze raz dziękuję :)

0
Hosii napisał(a):

Jeśli chodzi o ilość zapamiętywanych typów danych to myślę ,że zmieszczę się w 10 ale jak dla mnie tworzenie 10 plików tekstowych dla 10 typów danych

Chodziło o ilość danych, a nie typów danych. Jest różnica, czy chcesz zapisywać dziennie 100 bajtów, czy 100 megabajtów.

Generalnie, użycie prostej bazy danych, takiej jak SQLite sprawiłoby, że nie musiałbyś tyle rozmyślać nad tym, jak to wszystko zapisywać, pobierać, i analizować.

0

Ok, w takim bądź razie może ktoś zna łopatologiczne wytłumaczenie tworzenia bazy danych w VB.NET 2012 jest jak utworzyć ale nie potrafię tego powiązać z danymi . To stwarza dla mnie olbrzymi problem . większość tutotriali jakie widziałem na yt to w języku angielskim no i do VB.NET 2010 . VB.NET 2012 ma jednak trochę zmienioną konstrukcję i już się gubię bo nie wiem co czynię . Jeśli się powtarza na początku jak małpa ruchy czyjeś to każda mała zmiana powoduje już wielki problem .Oczywiście jeśli nikt nie ma innych pomysłów to będę musiał jakoś te bazy danych pokonać albo się poddać ( mam nadzieję , ze nie :))
Miałem po prostu nadzieję, że istnieje jeszcze jakiś inny świat :)) za wyjątkiem bazy i pliku do zapisu moich danych .

P.S. I ojczym google w tym przypadku jest bardzo wredny .

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