Skocz do zawartości


[pascal] problem z baża danych:( help!


12 odpowiedzi w tym temacie

#1 smietas123

    Nowy na forum

  • Użytkownicy
  • 7 Postów:
  • Gadu-Gadu:8831369

Napisano nie, 20 maj 2007 - 19:40

Witam wszystkich!
Mam taki problem... muszę zrobić bazę danych biblioteki szkolnej. Program musi posiadać opcję:
>Nowa książka
>edytuj książkę
>zapisz do pliku bazę
>czytaj z pliku bazę
>przeglądaj książki
>szukaj

zrobiłem pierwszą opcje i (chyba) 2 tyle tylko, że zapisuje mi bazę do pliku dat, a chciałbym żeby była również opcja zapisu pliku do txt... i nie mogę sobie z tym poradzić. Możecie mi pomóc? Oto program...
pascal

------------------------------------------
program bazadanycHOHX[YWF#7G&ćuł#ÓGGV7G&ćułSÓVćCfltŃ(ą}ŹŃ( z:char;
        wielkosc:integer=100;
        f:file of karNN[YZ^YH&VvŚ76vbb33ś&ŚćFBb33&Ww&FRbŚf\"ŁÓFąź))ŃĄąŃmt)ąĄ))Ńe zapisano');
readln;
end;

procedure czytaj;
begin
assi        N^K]    NĘN]
N[H[
HY&VBbEśŚVćC&VFĆŚ6Ć6RbŚVćC&6VGW&RćwfŃ)))ĄąĄŃmtĄąąosc) do inc(i);
if i=wielkosc+1 then
begin gotoxy(10,4);writJ        N^HILINĘH[[BY[vF2w& amp;FRb33Fćrb3#c6b3#cb33śśRb(ŃŃ9
ąĄ[i].nr);
        gotoxy(10,5); write ('Autor:');readWK]]NJL
N]H
        N][N&VFĆEśGGVVćCvF#w&Ń9Ń(ą())
for ile_k:=1 to 3 do t[ile_k].nr:=0;
ile_k:=0;
repeat
textc
Y[ĘN^X[
YJN^X[
VBŚ6&Vw&FVĆb33U42śćV2b33łŁŚvFŃi
Ń9Ńą)ŃŃkground(blue);
z:=readkey;
case z of
'z', 'Z&#39NN NN]ZNN        Nb33łćwŚVćCVFŁ3#pŚVćB


najbardziej zależy mi na apisie do pliku txt i czytaniu biblioteki z pliku... ale jeśli ktoś zechciałby poszperać przy innych opcjach to z góry dziękuje:) Chciałem powiedzieć, że przeczytałem multum artykułow, kursów itp. ale dalej nie mogę sobie poradzić... Czekam na propozycje zmian i rozwiązań mojego problemu:)

// stosuj tagi do kolorownia składni - Iskar

#2 KaYou

    Pomocna dłoń

  • Super użytkownicy
  • 269 Postów:
  • Gadu-Gadu:1438618

Napisano nie, 20 maj 2007 - 19:52

http://www.google.pl/search?q=zapis+do+pli...lient=firefox-a

http://4programmers.net/Turbo_Pascal/Zapis...zyt_plik%C3%B3w

http://4programmers.net/Turbo_Pascal

#3 smietas123

    Nowy na forum

  • Użytkownicy
  • 7 Postów:
  • Gadu-Gadu:8831369

Napisano nie, 20 maj 2007 - 20:07

super, wielkie dzięki, ale ja czytałem większość z tych artykułów. W moim programie jest to bardziej skomplikowany problem, ponieważ mam tablicę a tamte przykłady itp. są w prostych programach... I nie mogę sobie niestety poradzić:/ PS. kapitana googl'a przewertowałem również:P

#4 5corpio

    Guru

  • Super użytkownicy
  • 874 Postów:

Napisano nie, 20 maj 2007 - 20:12

delphi


procedure zapisz;
begin
assign(f,'baza.dat');
rewriJNNLHY[Y[]JWJNJNŚVćCw&FRb33śFćRŚ6ćb33&VFĆŚVćC

 


Jak możesz najpierw skojarzyć plik z tym baza.dat otworzyć do zapisu a potem w pętli zaraz po pierwszej linijce zapisania go zamknąć a potem w pętli robić tak dalej ? Jak chcesz dalej zapisywać do pliku kolejne dane skoro on już jest zamknięty ? Zamknięcie wywal za pętle.

Cytat

że zapisuje mi bazę do pliku dat, a chciałbym żeby była również opcja zapisu pliku do txt


Tak bo różnica w tych plikach jest tak ogromna, że jest to tylko zmiana rozszerzenia z *.dat -> *.txt bo zawartość jest zupełnie taka sama wciąż są to zwykłe pliki tekstowe.

#5 smietas123

    Nowy na forum

  • Użytkownicy
  • 7 Postów:
  • Gadu-Gadu:8831369

Napisano nie, 20 maj 2007 - 20:20

No więc zauważyłem błąd z close(f) wcześniej tylko nie widziałem, że wrzuciłem go w kodzie na forum... mój błąd. Ok do pliku zapisuje... z czytaniem też sobie poradziłem. A co z przeglądaniem? Jakieś pomysły? Jakaś malutka podpowiedź?smile.gif

#6 5corpio

    Guru

  • Super użytkownicy
  • 874 Postów:

Napisano nie, 20 maj 2007 - 20:25

Przeglądanie ? Albo wczytujesz całą baze i potem wyszukujesz pewnego wzorca w całym tekście. Albo to chyba lepsze: otwierasz plik wczytujesz w pętli linijka po linijce i w aktualnej linijce wyszukujesz szukanego wzorca tekstu. Jeśli go masz odczytujesz sobie dane, przerywasz pętle i wyświetlasz dane.

Ciekawość mnie rozsadzi: czemu skoro to jest dla biblioteki zakładasz tablice do 100? Co jeśli będzie więcej danych ?


Edit: Eh dobra chyba źle zrozumiałem to wyżej można zrobić do szukania. Jak powiesz jak ma wyglądać przeglądanie do może coś wykminimy. O ile się orientuje jak ostatnio byłem w bibliotece to przeglądanie jest posegregowane alfabetycznie więc najpierw musisz napewno wczytać dane do tablicy czy tam czegoś posegregować je a potem wyświetlać na ekranie powiedzmy te 20 rekordów. Przy naciśnięciu strzałki w dół czy tam czegoś zwiększasz index początkowy o 1 i wyświetlasz rekordy od 1-21 po kolejnym wciśnięciu znów +1 i wyświetlasz rekordy od 2-22 i tak dalej.

#7 smietas123

    Nowy na forum

  • Użytkownicy
  • 7 Postów:
  • Gadu-Gadu:8831369

Napisano nie, 20 maj 2007 - 20:29

... no to mam lipe:P mówiłem, że jestem newbie?tongue.gif PS. co do biblioteki to fakt 100 to mało, ale przecież to w każdej chwili można zmienić:P 2 cyferki i po kłopocie:)

#8 5corpio

    Guru

  • Super użytkownicy
  • 874 Postów:

Napisano nie, 20 maj 2007 - 20:32

Tylko trochę bezsensu jest deklarować tablicę powiedzmy 200 elementów gdy 20 będzie używanych i na odwrót będziesz w nagłym wypadku potrzebować więcej a będzie za mało. Ale dobra nie o tym gadamy xD

#9 smietas123

    Nowy na forum

  • Użytkownicy
  • 7 Postów:
  • Gadu-Gadu:8831369

Napisano nie, 20 maj 2007 - 20:55

słusznie zauważyłeś nie o tym... mam taki pomysł na wyszukiwanie
-----
pascal

function Szukaj(Tekst : string; Pozycja : integer) : integerY[NXN[H
ĘZWK][
HH
H[
fCłvVĆś62Fć2ŚbfCłvVĆś62FV7Vś)ą)M)

 

o ile się nie mylę Pos służy do przeszukiwania... tak?tongue.gif ale na bank zmienne coś źle... mam z tym problem:/




beznadzieja... mógłbyś wkleić kawałeczek chociaż kodu jak to ma wyglądać? A może ktoś inny ma coś do dodania?

#10 Iskar

    ahaha

  • Super użytkownicy
  • 679 Postów:
  • Gadu-Gadu:5199034

Napisano pon, 21 maj 2007 - 18:53

Stosuj tagi do kolorowania kodu - napisałem Ci o tym w Twoim poście, napisałem Ci PW, teraz pisze ogólnie. Warto spróbować, może tym razem zauważysz (popraw powyższy post).

#11 smietas123

    Nowy na forum

  • Użytkownicy
  • 7 Postów:
  • Gadu-Gadu:8831369

Napisano pon, 21 maj 2007 - 20:09

dumałem wczorajszy wieczór i dzisiaj ale nie mogę jakoś tego wymyśleć:/ nic chyba muszę porzucić projekcik:P

#12 lewymati

    Starszy bywalec

  • Super użytkownicy
  • 123 Postów:

Napisano pon, 21 maj 2007 - 20:24

nie poddawaj się! Już po dwóch dniach rezygnujesz...

#13 smietas123

    Nowy na forum

  • Użytkownicy
  • 7 Postów:
  • Gadu-Gadu:8831369

Napisano wto, 22 maj 2007 - 14:17

na to wychodzi:P