[delphi] Baza danych w delphi

0

Witam serdecznie
Jestem grafikiem i webmasterem. Moje umiejętności programowania to podstawy C++ oraz Pascala.
W szkole policealnej do której uczęszczam zadano mi napisać bazę danych biblioteki szkolnej w 3 - językach programowania C++, Delphi i Pascalu. W C++ nie było problemu w Pascalu tez ok chociaż procedura odczytu plików czasami wywala błąd.
Największy problem mam z napisaniem programu w Delphi.
Więc zgłaszam sie z prośbą o pomoc w napisaniu takiej bazy danych.
Powinna ona zawierać możliwość zapisania do pliku tytułu, autora, sygnatury oraz roku wydania książki.
Następnie powinna być możliwość odczytu z pliku zapisanych tam pozycji. Możliwość wyszukiwania np po sygnaturze lub tytule.
Nie będę ukrywał nie mam za wiele czasu na napisanie tego programu.
Za pomoc mogę zrekompensować sie np zrobieniem loga firmy, baneru, reklamy, bukletu, wizytówki, plakatu lub ulotki.
Podaję mój adres korespondencyjny [email protected]
Za każdą pomoc z góry dziękuję.

0

Z czym konkretnie masz problem?

0

ej ale jak masz już kod w pascalu to parę drobnych przeróbek i będzie działać w Delphi ( żeby działało to w konsoli to dajesz File\New\Other i gdzieś tam Console Application

0

To jest mój kod w Pascalu (ale jak go zmienić w Delphi nie wiem)

program Mini_Biblioteka;
uses crt;
var
Tytul,Autor,Sygnatura,Rok_wydania:array[1..50] of string;
a:char;
b,ksiazki:byte;
bs:string;
plik:text;

PROCEDURE Wprowadz;
begin
     clrscr;
     ksiazki:=ksiazki+1;
     write('Tytul         :');
     readln(Tytul[ksiazki]);
     write('Autor         :');
     readln(Autor[ksiazki]);
     write('Sygnatura     :');
     readln(Sygnatura[ksiazki]);
     write('Rok_wydania   :');
     readln(Rok_wydania[ksiazki]);
end;
PROCEDURE Szukaj;
  var
    znaleziono : boolean;
begin
     write('wpisz tytul ksiazki: ');
     readln(bs);

     znaleziono:=false;
     for b:=1 to ksiazki do
     begin
       if bs = Tytul[b] then
       begin
          writeln('Tytul      : ',Tytul[b]);
          writeln('Autor      : ',Autor[b]);
          writeln('Sygnatura  : ',Sygnatura[b]);
          writeln('Rok_wydania: ',Rok_wydania[b]);
          writeln;
          znaleziono:=true;
      end;
    end;

    if not znaleziono  then
       writeln('nie ma takiego tytulu w bazie danych');

    write('Wcisnij dowolny klawisz ... ');
    readkey;
end;

PROCEDURE Wyswietl;
begin
     clrscr;
     write('Numer wpisu ? (1..', ksiazki , '): ');
     readln(b);
     writeln('Tytul      : ',Tytul[b]);
     writeln('Autor      : ',Autor[b]);
     writeln('Sygnatura  : ',Sygnatura[b]);
     writeln('Rok_wydania: ',Rok_wydania[b]);
     writeln;
     write('Wcisnij dowolny klawisz ... ');
     readkey;
end;

PROCEDURE Zapisz;
begin
     assign(plik,'c:\dane.baz');
     rewrite(plik);
     writeln(plik,ksiazki);
     for b:=1 to ksiazki do
         writeln(plik,Tytul[b]);
         writeln(plik,Autor[b]);
         writeln(plik,Sygnatura[b]);
         writeln(plik,Rok_wydania[b]);
       close(plik);
       writeln('zapisano do pliku');
end;

PROCEDURE Czytaj;
begin
     assign(plik,'c:\dane.baz');
     reset(plik);
     readln(plik,ksiazki);
     for b:=1 to ksiazki do
     begin
       readln(plik,Tytul[b]);
       readln(plik,Autor[b]);
       readln(plik,Sygnatura[b]);
       readln(plik,Rok_wydania[b]);
     end;
     writeln(plik,ksiazki);
     close(plik);
end;

begin
     ksiazki:=0;
     repeat
       clrscr;
       writeln('1. Nowy wpis');
       writeln('2. Wyswietl ksiazki');
       writeln('3. Odczyt z pliku');
       writeln('4. Zapis do pliku');
       writeln('5. Szukaj tytulu');
       writeln('6. Koniec programu');

         repeat
           a:=readkey;
         until (a >= '1') and (a <= '6');
         if a='1'then Wprowadz;
         if a='2'then Wyswietl;
         if a='3'then Czytaj;
         if a='4'then Zapisz;
         if a='5'then Szukaj;

      until a='6';
end.

Jeśli ktoś może mi pomóc to bardzo proszę

0

Dało by się to przerobić na okienkową aplikację, ale żeby miało ręce i nogi to troche to by trwało, a poza
tym to Twój program chyba coś niepoprawnie zapisuje do pliku c:\dane.baz, zobacz jak u Ciebie w kodzie
to poprawiłem, bo zmienne miałeś nie zadeklarowane lokalnie i pętle do zapisu należało ując w begin oraz
end. a na http://www.delphi32.com/vcl/2827 masz moduł Crt dla Delphi 3 do użycia w aplikacjach konsolowych,
można go nieco zmodyfikować aby działał pod nowszymi wersjami Delphi - na przykład 7. Komponent w
wersji dla Delphi 3 oraz 7 umieściłem na http://www.speedyshare.com/851439426.html - a cały kod wraz z małymi
poprawkami umieściłem na: http://www.speedyshare.com/470704859.html program ma poprawiony zapis oraz
odczyt z pliku, który zamiast z c:\dane.baz odczytuje i zapisuje do katalogu z plikiem wykonywalnym. Nazwa ta sama

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