Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

smietas123

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

Polecane posty

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...

------------------------------------------
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'NN 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

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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.

 

ż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.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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ź?:)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

... no to mam lipe:P mówiłem, że jestem newbie?:P 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:)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

-----

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?:P 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?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

×