![]() |
||
Nagrywarki |
Pliki |
Dyski twarde |
Recenzje |
Księgarnia |
Biosy |
Artykuły |
Nagrywanie od A do Z |
Słownik |
FAQ
|
||
|
Komputery - oprogramowanie i sprzęt Pytania i problemy niezwiązane z nagrywaniem, backupem i grami. |
![]() |
|
Opcje związane z dyskusją | Tryby wyświetlania |
|
![]() |
#1 |
Pingwin specjalista.
Data rejestracji: 22.06.2002
Lokalizacja: Central Park
Posty: 15,089
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Cisza spokój to przed spaniem poddałem analizie powyższe wypociny mimo późnej godziny.
Drogi wyhylybymy17, na wstępie zapytam się o coś. Czy Ty nie uważasz na lekcjach i potem musisz edukować się w domu czy wzór tego programu podał nauczyciel ? Jeśli to nie Twoja wina to gorzko... Za ten program dostałbyś u mnie dwóję (w liceum/gimnazjum to i tak pozytywna ocena). Nie bierz tego do siebie ale już wyjaśniam... Każdy program, o którym można powiedzieć, że jest "bazodanowy" obojętnie czy operuje na plikach czy na prawdziwej bazie rozróżnia poszczególne wpisy po niepowtarzalnych identyfikatorach w rekordach - u Ciebie ich brak. Zastosowałeś tu substytut w postaci szurania wskaźnikiem, który w prawdzie działa ale to jest po prostu straszne ![]() Następną straszną rzeczą jest wyświetlanie danych - zastosowałeś tutaj liczbę porządkową co za tym idzie jest ona płynna. Po skasowaniu jakiegoś filmu przed filmem z lp=5 ten film robi się lp=4. Tu znowu daje o sobie znać brak ID bo kasowanie czegoś po zmiennej liczbie porządkowej, która de facto nie ma nic wspólnego z samym zbiorem jest straszne (ponumerować i skatalogować pudełka - rzecz w tym przypadku niemożliwa) ![]() Kasowanie wpisu przy bazie w pliku tekstowym powinno odbywać się mniej więcej tak: - masz bazę w formacie FILM( ID, tytul, produkcja, czas trwania ) - prosisz usera o podanie ID do skasowania - przepisujesz bazę do pliku tymczasowego z pominięciem tego ID - nadpisujesz plik bazy utworzoną kopią, która nie posiada już tego ID - kasujesz plik tymczasowy LUB usuwasz dany ID logicznie (gdzie STAN=1 to pozycja dostepna, STAN=0 to pozycja skasowana) - masz bazę w formacie FILM( ID, STAN, tytul, produkcja, czas trwania ) - prosisz usera o podanie ID do skasowania - zmieniasz stan na 0 przy pozycji o tym ID co za tym idzie pozycja przestaje się wyświetlać i jest pomijana. Twój program jest napisany całkowicie źle - tyle mojego wykładu. Przejdźmy teraz do poprawy kodu. - zadeklarowałeś dwie rzeczy, których nie używasz - nie jest to błąd ale kompilator ma za zadnie poinformować Cię o tym co też czyni. - program sypał się zawsze na ostatnim rekordzie ponieważ zastosowałeś zły typ pętli co za tym idzie w pewnej chwili program chciał odczytać pustkę, coś czego nie ma bo plik już dawno się skończył. W tym przypadku najpierw wykonujesz operację a warunek sprawdzasz na końcu: Kod:
repeat read(baza,dane); write(temp,dane); until eof(baza); Program będzie działać jeśli w procedurze usuń zastosujesz pętlę, która najpierw bada warunek a potem wykonuje operacje tj.: Kod:
while not eof(temp) do begin read(temp,dane); write(baza,dane); end; No to tyle, idę spać, popraw te pętle i program będzie działać. ![]()
__________________
amiga500site Ostatnio zmieniany przez Patrix : 24.10.2010 o godz. 02:19 |
![]() |
![]() |
#ads | |
CDRinfo.pl
Reklamowiec
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
|
|
![]() |
![]() |
|
|
![]() |
||||
Dyskusja | Autor | Forum | Odpow. | Ostatni Post |
POMOCY - skasowalem sobie 40GB waznych danych | ryciu | Odzyskiwanie danych | 5 | 17.04.2009 18:47 |
Pascal - baza danych | sight | Off topic | 9 | 29.05.2005 17:39 |
Jak odzyskać skasowane pliki na CD-RW | Jozgaw | Napędy optyczne CD | 7 | 21.06.2004 08:31 |
Baza Danych Access | jelonkowo | Off topic | 0 | 09.12.2003 23:47 |
Baza danych w Accessie 2000 | Niebiessska | Off topic | 26 | 22.05.2003 18:51 |