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ę.
Z czym konkretnie masz problem?
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
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ę
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