Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 20 odgovora
  • 11.022 pregleda

Najnovija ↓

Recnik: DB ili TXT ? -savet- 17.10.2006. u 15:22 · pre 243 meseca #1
Pozdrav!

Radim u Delphiju na jednom programu slicnom recniku [ termin1 = termin2 ].
Ocekujem oko 10.000 reci.
Kolekcija termina mora biti prosiriva od strane korisnika.

Da li da radim sa BD-om (MSSQL ili Access) ili sa klasicnim textualnim fajlovima?
Do sada nisam radio sa DB [a i nemam baz mnogo vremena] pa ako je PREVISE komplikovano, da li bi txt izdrzao.
Bitna je, naravno, brzina dobijanja rezultata.


Inace ceo projekat je OS, pa ko jos zeli da pomogne, moze da mi se javi na pm.

Srdacan pozdrav,
Strahinja
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 16:09 · pre 243 meseca #2
Drzi se txt-a definitivno. Nema brige za brzinu, ako se pristojno uradi program, cak i ako je kolicina podataka x100. S druge strane ces izbeci milion manjih i vecih problema s instalacijom/odrzavanjem ako uradis stvar bez baze.

ss.
Potpis
When something is hard to do, then it's not worth doing.
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 16:27 · pre 243 meseca #3
Citat:
sasas: Drzi se txt-a definitivno.

Ne slažem se s ovim. Lično, radio bih s bazama. 10 000 reči i nije baš malo. S tim ako planiraš postaviti program, sa ili bez baze, delphi mora biti legalan ili da radiš u Turbo Delphi verziji. Od besplatnih baza to je definitvno PostgreSQL, OpenSource, najbolje rešenje.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 17:21 · pre 243 meseca #6
Koliko radnih sati bi mi trebalo da naucim i implementiram neku od tih DB? [znam ponesto o bazama, ali nisam radio delhi+db]

Za konkretne dev alate se jos nisam odlucio, da vidim prvo globalne delove.

Hvala na brzim odgovorima
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 17:25 · pre 243 meseca #7
Citat:
solarko: Koliko radnih sati bi mi trebalo da naucim i implementiram neku od tih DB? [znam ponesto o bazama, ali nisam radio delhi+db]

Zavisi, na to je teško dati odgovor. Samo ti to možeš proceniti.
Citat:
Ne treba mu PostreSQL za recnik :)

Možda mu ne treba PostgreSQL, u redu, ali ja bih to sa nekom bazom odradio, pogotovo što može doći do povećanja količine podataka u bazi.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 21:36 · pre 243 meseca #8
TXT

Nema opravdanja da se kod korisnika instalirati 20+ MB softvera (server) zbog 1MB aplikacije i podataka.
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 22:32 · pre 243 meseca #9
Koristi ClientDataset pa sacuvaj podatke u .cds ili .xml formatu. Sigurno najjednostavnije resenje a opet imas 'locate' za brzu pretragu. Das samo midas.dll (oko 200kb) ili dodas midaslib u uses. Naravno to samo ako se radi o takvoj tabeli (termin1 = termin2). Za nesto prosto sa upitima najbolje je access (ne treba ti nista uz bazu, win sve ima u sebi) i naravno PostgreSQL ili Oracle za komplikovanije stvari.
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 22:44 · pre 243 meseca #10
Ako ti treba termin1=termin2, hoces nesto jednostavno, bez third-party kontrola i biblioteka, za tebe je TStringList koji se vec nalazi u Delphi-u i vec ima to sto zelis... cak sam ume da se snimi i da se ucita iz fajla, lako moze da se ubaci u sve tipove listi i grida, radi pristojnom brzinom cak i sa listama... ako imas listu stringova u promenljivoj S, dva edit boxa (u jednom pises zeljenu rec, a u drugoj dobijes ono sto je za nju vezano) i jedan button, ceo program bi izgledao ovako:
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit2.Text := S.Values[Edit1.Text];
end;

Od toga jednostavnije ne moze da bude :)
Potpis
Play Store
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 23:30 · pre 243 meseca #11
Mislim da je za recnik ipak bolje koristiti clientdataset jer ne tada ne mora znati celu rec koja se trazi. Moze koristiti filter da se prikaze skup recorda ili locate options da pretrazuje po delu naziva. Isto jedna linija koda, i ima citanje i snimanje u file.
Re: Recnik: DB ili TXT ? -savet- 17.10.2006. u 23:44 · pre 243 meseca #12
Na njemu je da odluci... manja velicina kompletnog paketa, jednostavnija instalacija, sporije izvrsavanje ili veci paket, komplikovanija instalacija, brze i fleksibilnije izvrsavanje :)
Potpis
Play Store
Re: Recnik: DB ili TXT ? -savet- 18.10.2006. u 07:42 · pre 243 meseca #14
Citat:
solarko: Koliko radnih sati bi mi trebalo da naucim i implementiram neku od tih DB? [znam ponesto o bazama, ali nisam radio delhi+db]

Za konkretne dev alate se jos nisam odlucio, da vidim prvo globalne delove.

Hvala na brzim odgovorima


Pa, svaki problem se deli na dva osnovna dela, LOGICKI i TEHNICKI. A sad koliko ti treba da resis i jedan i drugi, to zavisi samo od tebe... ;)

BTW-Ako pravis konkretno recnik, a ne nesto nalik recniku, i ako hoces da to bude poprilicno dobro prihvaceno, probaj da ubacis i nesto po sistemu PROLOGA.

PozZz :-)

Potpis

My IT View Of Life-BrLOG-Delphi for PHP


» LinkedIn
Re: Recnik: DB ili TXT ? -savet- 18.10.2006. u 07:56 · pre 243 meseca #15
Citat:
chachka: TXT
Nema opravdanja da se kod korisnika instalirati 20+ MB softvera (server) zbog 1MB aplikacije i podataka.

Da, ovo je sasvim OK, prevideo sam.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Recnik: DB ili TXT ? -savet- 18.10.2006. u 09:34 · pre 243 meseca #16
> Nema opravdanja da se kod korisnika instalirati 20+ MB softvera (server)
> zbog 1MB aplikacije i podataka.

Ne mora stavljati Oracle, MS SQL, MySQL ili druge "veće" baze. FB embeded 1.5 je jedan dll od 1,5MB a daje pun SQL server sa svim optimizacijama čemu jedan txt fajl ne može prići ni blizu. Takođe tu je i SQLite kao što je neko već spomenuo, još manji a opet daleko bolji od običnih fajlova.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Recnik: DB ili TXT ? -savet- 18.10.2006. u 11:50 · pre 243 meseca #17
Citat:
Radim u Delphiju na jednom programu slicnom recniku [ termin1 = termin2 ].
Ocekujem oko 10.000 reci.
Kolekcija termina mora biti prosiriva od strane korisnika.
. . .
Bitna je, naravno, brzina dobijanja rezultata.

Nisi napomenuo jednu važnu stvar, da li treba da radi na mreži i da više korisnika
može u isto vrijeme da pristupa podacima (da ih pretražuje, dodaje ili mijenja).
Ako je tako, onda svakako izaberi nekakvu bazu.
Što se tiče izbora baze, predviđena količina podataka ti je najmanji problem.
Veći je problem npr. na kojim sve operativnim sistemima to treba da radi (XP, win98...),
imaš li potrebu to distribuirati i na CD-u ili USB-stiku ...
Daj malo više detalja o tome.
Re: Recnik: DB ili TXT ? -savet- 18.10.2006. u 16:30 · pre 243 meseca #18
Vidim da pretežno vlada mišljenje da bi txt bio sporiji od baze, u ovom konkretnom slučaju. Ja opet mislim da bi za neku količinu podataka do 100k reči dobro napisan program sa txt fajlovima ostavio iza sebe bilo koji db engine. Evo, ako je neko u mogućnosti neka nam da podatke (reči), možemo napisati par primera i meriti brzine (mada bi verovatno u oba slučaja pretraga trajala nemerljivo malo, reda milisekundi). Evo malo brojeva za razmišljanje:
- čovek predviđa 10k reči, ako uzmemo rezervu x10 to je 100k reči - ne zaboravite da je rečnik u pitanju i da je poprilično ograničena mogućnost rasta broja podataka, a promene strukture jednostavno nema.
- uzmimo prosečno 15 slova/reč - 1,5M slova
- na nekom modernom računaru to zauzima 0,15 - 0,30% ram-a
- na novijim procesorima, svi podaci hladno staju u keš (cca. 40% keša) :), mada nam tamo i nisu stalno potrebni
- ako podatke prilikom učitavanja sortiramo, posle se traženje reči svodi na max. stotinjak poređenja stringova
Sam db engine, ma koliko da je mali, kad se učita u ram će zauzeti više od ovoga, sama komunikacija na relaciji db<->program je sporija od tih stotinjak poređenja, ako je još između odbc/oledb/ado...uh...
Baza podataka bi bila u redu da se radi o raznorodnim upitima, koji uključuju komplikovaniju logiku, ili o višekorisničkom pristupu podacima, ali za ovako trivijalan program jednostavno ne vidim opravdanje u korišćenju dba, osim eventualno neke embedded varijante - što srki kaže, malo TStringList-a (ili nekog derivata) i problem rešen. S druge strane, lepota zero-configuration klijenta i otvorenost formata je toliko veeelika prednost kad program distribuirate na više računara. Sve ovo imho, naravno.

ss.
Potpis
When something is hard to do, then it's not worth doing.
Re: Recnik: DB ili TXT ? -savet- 18.10.2006. u 16:40 · pre 243 meseca #19
Mozda cu malo odstupiti od teme, ali procitao sam da se ovo moze odraditi sa TClientDataSet komponentom, .cds, .xml i na kraju sa SQLite.
Mozete li malo da me uputite:
1) kako da iz delphi -a kreiram .xml, pa da upisujem podatke u njega? Da li se to radi kao upis u .txt?
2) SQLite? Za cega se praktikuje njegovo koriscenje i da li je besplatan?

Hvala Vam unapred.
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme