Powrót   Forum CDRinfo.pl > Różne > Komputery - oprogramowanie i sprzęt

Komputery - oprogramowanie i sprzęt Pytania i problemy niezwiązane z nagrywaniem, backupem i grami.



Witaj Nieznajomy! Zaloguj się lub Zarejestruj

Zarejestrowani użytkownicy mają dostęp do dodatkowych opcji, lepszej wyszukiwarki oraz mniejszej ilości reklam. Rejestracja jest całkowicie darmowa!

Odpowiedz na post
 
Opcje związane z dyskusją Tryby wyświetlania
Stary 24.10.2010, 02:16   #1
Patrix
Pingwin specjalista.
 
Avatar użytkownika Patrix
 
Data rejestracji: 22.06.2002
Lokalizacja: Central Park
Posty: 15,089
Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>
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);
Czyli program o końcu pliku dowie się za późno tzn po wykonaniu błędnej operacji a dokładniej to się nawet nie dowie bo się najpierw wysypie.

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;
W tym przypadku program dowie się o końcu pliku przed wykonaniem błędnej operacji.

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
Patrix jest offline   Odpowiedz cytując ten post

  #ads
CDRinfo.pl
Reklamowiec
 
 
 
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
 

CDRinfo.pl is online  
Odpowiedz na post


Twoje uprawnienia:
Nie możesz rozpoczynać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz umieszczać załączników
Nie możesz edytować swoich postów

BB codeWłączone
EmotikonkiWłączone
Kody [IMG]Włączone
Kody HTML są Wyłączone

Teleport

Podobne dyskusje
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


Wszystkie czasy w strefie CET. Aktualna godzina: 01:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.