wyszukiwanie wedlug przepisow albo skladnikow

0

Mam stworzyc ksiazke kucharska, w ktorej bedzie opcja wyszukiwania po przepisach i skladnikach i nie wiem jak to zaczac ??

0

Najlepiej zacznij od stworzenia jakiejs bazy danych.
W ekstremalnym przypadku moze to byc nawet plik Accesa.
Pozniej po prostu bedziesz przeszukiwal baze, poprzez zapytania SQL'q.

0

Wiem, ze uzycie baz danych byloby najprostsze ale problem w tym, ze to ma byc programowanie obiektowe i bazy danych wraz z zapytaniami sql odpadaja. Takie wymogi prowadzacej :(

0

to moze tablica rekordow ?
a jesli nie to zostaje tylko plik.

0

Stworzylam liste w rekordzie ale program nie chce jej zapisac do pliku. Jak odczytuje dane z pliku to w Memo2 zmiast listy z pliku pokazuje mi to co jest w Memo1. Cos napsocilam z ta lista. poza tym musze zrobic jeszcze przeszukiwanie wedlug skladnikow na liscie :|

type
TDatebaseRec= packed record
name:string[125];
skladnik:TStrings;
end;
TDateBase= file of TDateBaseRec; // deklaracja pliku typowanego
var F: TDateBase; //zmienna na ten plik
const FileName=('E:dane.dat');

procedure TForm1.Button1Click(Sender: TObject);
var StructRec:TDateBaseRec;
//StructRec.skladnik:TStrings;
i:integer;
begin
StructRec.skladnik:=TStringList.Create;
try
AssignFile(F, FileName);
Reset(F);
Seek(F, FileSize(F)); // przesunięcie na koniec pliku
{ pobranie do rekordu danych z komponentów }

StructRec.name:=Edit2.Text;
StructRec.skladnik:=memo1.Lines;
Write(F,StructRec); // zapisanie rekordu do pliku
finally
skladnik.Free;
CloseFile(F);
ListBox1.Clear;
FormCreate(Sender); // wywołanie procedury OnCreate
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var StructRec:TDateBaseRec;
i:integer;
begin
AssignFile(F,FileName);
Reset(F);
{ pętelka jest wykonywana tyle razy ile jest rekordów }
for i:=0 to FileSize(F)-1 do
begin
read(F,StructRec); // po kolei odczytanie kolejnego z rekordów
ListBox1.Items.Add(StructRec.name); //dodanie do komponentu jedynie jednego pola
end;
CloseFile(F);
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
var StructRec: TDateBaseRec;
begin
{ procedura jest wykonywana po wybraniu któregoś z rekordów z listy. Wtedy dane
rekordu są odczytywane z pliku }
AssignFile(F,FileName);
Reset(F);
Seek(F,ListBox1.ItemIndex); // przesunięcie kursora na wybraną pozycję
read(F,StructRec); // odczytanie rekordu
{ przypisanie danych z rekordu do komponentów }
Edit2.Text:=StructRec.name;
Memo2.Lines:=StructRec.skladnik;
CloseFile(F);
end;

end.

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