serbiangnome-lista
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Serbiangnome-lista] Rečnik


From: Goran Rakić
Subject: [Serbiangnome-lista] Rečnik
Date: Sat, 12 Apr 2003 23:59:56 +0200
User-agent: KMail/1.4.3

Update stanja:

Rečnik radi!

Međutim, postoje neki problemi. Prvi je da ja ne znam da modifikujem configure 
ili koju već skriptu koju je napravio glade iz koje se generiše Makefile. Šta 
je potrebno, potrebno je proveriti da li na sistemu postoji sqlite 
biblioteka, i ukoliko postoji dodati -lsqlite u parametre linkera. Možeš li 
to da odradiš?

Drugi problem je oko samog pretraživanja. Naime, ja koristim sledeći kod:

   char upit[300] = "select eng,srp from recnik where eng like '%";
   strcat(upit,(char *) str);
   strcat(upit,"%';");

što pravi upit "select eng,srp from recnik where eng like '%Copy All%';", na 
primer. To će naći "Umnoži sve" u bazi, ali će naći i "Umnoži sve unose", 
"Umnoži sve liste" ili šta već u bazi ima.

Problem je, a možda  i nije, što će za reč (slovo) "o" naći sve reči gde se o 
pojavljuje. Dakle, hteo bih nekako da ograničim (a možda i nije neophodno) da 
pretražuje isključivo celu reč, tj da za upit "o" prikaže samo fraze čija 
engleska varijanta u sebi ima REČ "o", a ne slovo "o". To se možda može 
izvesti iz callback funkcije sqlite upita u kojoj treba svaki unos proveriti.

// callback za sqlite...
int dodajrec_clb(void * store, int c, char **v, char **azColName) {
  int i;
  GtkTreeIter   iter;

  for(i=0; i<c; i=i+2){
   if(izraz da li se trazeni pojam sadrzi u frazi kao cela rec) {
    gtk_tree_store_append (store, &iter, NULL);
    gtk_tree_store_set (store, &iter,
                    ENG, v[i],
                    SRP, v[i+1],
                    -1);
   }
  }
  return 0;
}

ali to ne znam da uradim.

Dodao sam da kada se u listi oznaci unos da se prevedena fraza prekopira u GTK 
Clipboard. (onaj it ctrl+c i ctrl+v kombinacija) Mislim da je to bolje nego 
da ide u PRIMARY Clip. (onaj od X-a, na prelaz miša).

Druga stvar koja mi se nesviđa, jeste generisanje upita (gore navedeno). 
Mislim da bi neko dinamicko spajanje ovih nizova bilo bolje nego ovako. Jer 
ovde lako dolazi do buffer owerflow-a. To se može proveriti (da li strlen 
veci od 300-fiksni deo) ali verujem da to moze bolje, kako se ne bi 
rezervisalo uvek 300*sizeof(char) memorije. (gde je voljeni std::vector u 
C-u? ;) ).

Sam GUI mislim da zadovoljava, kako se prvi put srecem sa pakovanjem kontrola 
(radio sam u fltk-u, koji to sve nema, tj ima ali se ne koristi ;) ). Ostalo 
je jos azuriranje baze, ali to prvo moram da nadjem na koji nacin uopste 
zamisliti. (koliko mislis da baza moze da bude velika?, da li se moze 
kompresovana povuci cela? )

Pogledaj source na devbase.net/recnik/recnik.tar.gz

Pozdrav,
Goran









reply via email to

[Prev in Thread] Current Thread [Next in Thread]