Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima

[es] :: Visual Basic 6 :: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima
(Zaključana tema (lock), by goranvuc)
Strane: 1 2 3

[ Pregleda: 7017 | Odgovora: 40 ] > FB > Twit

Postavi temu

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
80.93.249.*



+3 Profil

icon Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima18.07.2007. u 02:59 - pre 204 meseci
Kako brzo pretraziti reci iz fajla "Ilustracije.txt" koji je dole prikacen. Na primer: rec je od 7 slova kod koje je npr. trece slovo "O" a peto slovo u reci "I". Da li postoji jos neko resenje sem sa LIKE.
rgdrajko
Prikačeni fajlovi
 
0

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima18.07.2007. u 06:48 - pre 204 meseci
Upravo tako kako si opisao, tako i uradis. Ucitas reci u niz, zatim prodjes kroz ceo niz i za svaki element proveris prvo jedan kriterijum (u ovom slucaju da li je trece slovo O) pa onda drugi (u ovom slucaju da li je peto slovo I) i ostale.
 
0

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
80.93.249.*



+3 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima22.07.2007. u 10:44 - pre 203 meseci
Citat:
Shadowed: Upravo tako kako si opisao, tako i uradis. Ucitas reci u niz, zatim prodjes kroz ceo niz i za svaki element proveris prvo jedan kriterijum (u ovom slucaju da li je trece slovo O) pa onda drugi (u ovom slucaju da li je peto slovo I) i ostale.


Hvala, ali to sam uradio jos pre 20 godina. Za veliki broj ispitivanja reci to dodatno usporava rad. Da li postoji neki brzi nacin?
rgdrajko
 
0

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima22.07.2007. u 11:02 - pre 203 meseci
Mozes koriscenjem "Regular Expressions" ali da naucis da to koristis bi ti trebao omanji kurs.
 
0

BinLaden
Ni na nebu ni na zemlji

Član broj: 147476
Poruke: 102
*.teol.net.

Sajt: www.sove-soft.rs.ba


Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima22.07.2007. u 12:09 - pre 203 meseci
A da te rijeci prebacis u bazu pa onda "SELECT * FROM ... WHERE ...."???
Ero S Onoga Sveta
 
0

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima22.07.2007. u 12:41 - pre 203 meseci
Citat:
rgdrajko: Hvala, ali to sam uradio jos pre 20 godina. Za veliki broj ispitivanja reci to dodatno usporava rad. Da li postoji neki brzi nacin?

Svaka od tih reci mora proci kroz tu proveru a ovo sto sam ti rekao sadrzi samo proveru, bez icega vise (osim same petlje koja predstavlja jedan jne ili je (ili vec zavisno kako da vb izenterpretira).
Znaci:
1. potrebno je da svakoj reci izvrsis proveru
2. potrebno je da imas sto manje ostalog rada

Ono najjednostavnije resenje koje sam ti pokazao upravo zadovoljava ta dva uslova. Osim naravno, ako ne zelis da napises to u c/c++ pa da pozivas iz vb-a.

Sve ovo nisam ranije napisao jer mi je bilo ocigledno da bi programer sa iole vise iskustva to smatrao ociglednim.


Goranvuc, regexp nije brzi, samo je laksi za koriscenje :) Verovatno bi dobio na brzini ako bi koristio neki regexp engine radjen u c/c++ (ili nekom dovoljno optimalnom jeziku za brzinu), pod uslovom da koristi ovako jednostavne uslove.
 
0

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima22.07.2007. u 14:59 - pre 203 meseci
Nisam ja ni tvrdio da je to brze resenje, vec sam samo ponudio alternativni pristup, a kome se meri - neka ukljuci stopericu Hteo sam da mu predlozim i ono sto je Ero/BinLaden predlozio, ali za to bi mu trebala 3 kursa.
 
0

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima22.07.2007. u 15:23 - pre 203 meseci
Eh, da, da ne budem lenj pa da cisto napomenem (podsetilo me to sa bazom). Ukoliko bi uslov uvek bio bas sa prvim i trecim (ili vec kojim, samo da je uvek isto) i da su isti podaci u pitanju, onda bi moglo da se sve organizuje u sorted binary tree i tada da se vrsi pretrazivanje.
Znaci, samo u slucaju da je kriterijum uvek isti (da bi moglo da se sortira po tom kriterijumu) bi mogao broj poredjenja da se svede na log2(n)+1 gde je n broj linija.
Isto vazi za BinLadenov predlog pod uslovom da se indeksiranje izvrsi kako treba.
 
0

BinLaden
Ni na nebu ni na zemlji

Član broj: 147476
Poruke: 102
*.teol.net.

Sajt: www.sove-soft.rs.ba


Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima22.07.2007. u 20:54 - pre 203 meseci
Nekako imam predosjecaj da je to za onu TV slagalicu.
Kad bi nam @rgdrajko objasno detaljnije sta mu tacno treba lakse bi pomogli.
I dalje mislim da je u ovom slucaju bolje raditi sa bazom nego txt fajlom
jer je baza bolje opremljena za sortiranje, pretrazivanje.....

PS:
Posto @goranvuc non - stop potencira ono "Ero" samo za njega promijenio sam potpis.
Ero S Onoga Sveta
 
0

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima22.07.2007. u 22:44 - pre 203 meseci
Meni se svidja tvoj nov potpis
 
0

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
80.93.249.*



+3 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima23.07.2007. u 00:41 - pre 203 meseci
Citat:
BinLaden: Nekako imam predosjecaj da je to za onu TV slagalicu.
Kad bi nam @rgdrajko objasno detaljnije sta mu tacno treba lakse bi pomogli.
I dalje mislim da je u ovom slucaju bolje raditi sa bazom nego txt fajlom
jer je baza bolje opremljena za sortiranje, pretrazivanje.....


Ma slagalica je odavno prevazidjena, to je veoma lako uraditi, algoritam za pretrazivanje sa LIKE je veoma prost.

Evo primer za trazenje reci od 7 slova kod koje je npr. trece slovo "O" a peto slovo "I". Na mestu znaka pitanja moze biti bilo koje slovo tj. znak.
(Inace ovaj algoritam je mnogo brzi nego ispitivanje da li je na trecem mestu slovo "O" i na petom slovo "I", a i kraci je.)

...
If SpisakReciOd7Slova(rednibrojreci) Like "??O?I??" then
'Komande
end if
...

Uslov je da bude txt fajl jer se lako kreira i ispravlja npr. iz Notepada i zbog toga baza ne dolazi u obzir.
Ne treba mi pomoc u programiranju vec u algoritmu za brze pretrazivanje od gore navedenog.


rgdrajko
 
0

BinLaden
Ni na nebu ni na zemlji

Član broj: 147476
Poruke: 102
*.teol.net.

Sajt: www.sove-soft.rs.ba


Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima24.07.2007. u 02:04 - pre 203 meseci
Citat:
Uslov je da bude txt fajl jer se lako kreira i ispravlja npr. iz Notepada i zbog toga baza ne dolazi u obzir.
Ne treba mi pomoc u programiranju vec u algoritmu za brze pretrazivanje od gore navedenog.

I baza se vrlo brzo kreira u Access-u ili u necemu drugom, a isto tako brzo i ispravlja ili
mijenja.
Posto si ti, "recimo" programemer i vjerovatno ne pravis programe iz zabave nego
za nekog korisnika kome trebas da olaksas neki posao ili ne znam sta, njemu je svejedno
da li ce podatci biti sacuvani u .txt ili .mdb ili .eee ili .rrr ili .oooo, vazno mu
je da program odradi kvelitetno i dovoljno brzo ono sto njemu treba. Inace zasto onada
bezveze pravis program? Neka otvori notepad pa polako sa Find.....
Evo napisacu ti SQL upit koji ce da odradi to sto tebi treba u ~"jednoj milisekundi".
Pisem iz glave nije testirano, ako je potrebno sutra cu ti napraviti program za to.
Code:
SELECT * FROM Rijeci WHERe LEN(Rijec)=7 And Mid(Rijec,3,1)="?" And Mid(Rijec,5,1)="?"


Po mojoj subjektivnoj procjeni ovdje nisi ni trazio odgovor nego cisto da vidimo da si
saznao kako radi (Like).
Za tebe, a mozda ce i nekom drugom da koristi okacio sam fajl u kome je napisanao 99% VB
funkcija, definicija, komandi i tako to, al se nadam da neces kad god skontas kako neka
od njih funkcionise otvarati novu temu.
Ero S Onoga Sveta
Prikačeni fajlovi
 
0

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
80.93.249.*



+3 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima25.07.2007. u 20:26 - pre 203 meseci
Citat:
BinLaden:
Posto si ti, "recimo" programer i vjerovatno ne pravis programe iz zabave nego za nekog korisnika kome trebas da olaksas neki posao ili ne znam sta, njemu je svejedno da li ce podatci biti sacuvani u .txt ili .mdb ili .eee ili .rrr ili .oooo, vazno mu je da program odradi kvelitetno i dovoljno brzo ono sto njemu treba.


Pa "recimo" da ja nisam programer a da si ti programer i to "dobar". Posto ocigledno nemas dovoljano iskustva u programiranju, a i pravljenju programa za druge korisnike, inace bi znao da je korisniku veoma bitno u cemu ce da on vrsi ispravku nekog fajla. Ali dobro, to je stvar ukusa a i znanja.

Citat:
BinLaden:
Po mojoj subjektivnoj procjeni ovdje nisi ni trazio odgovor nego cisto da vidimo da si saznao kako radi (Like).


Pa da, "saznao sam" kako LIKE radi jos pre 20 godina.

Citat:
BinLaden
Za tebe, a mozda ce i nekom drugom da koristi okacio sam fajl u kome je napisanao 99% VB
funkcija, definicija, komandi i tako to, al se nadam da neces kad god skontas kako neka
od njih funkcionise otvarati novu temu.


Molio bih te da ubuduce tako nesto ne kacis, beskorisno je, a i ako nisi znao posto HELP u VB.


OK. Hvala vam svima na pomoci.
Problem sam resio, nov algoritam za pretrazivanje pretrazuje od 100 do 10000 puta brze.

rgdrajko
 
0

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima25.07.2007. u 21:29 - pre 203 meseci
Citat:

OK. Hvala vam svima na pomoci.
Problem sam resio, nov algoritam za pretrazivanje pretrazuje od 100 do 10000 puta brze.

U odnosu na šta radi brže?
 
0

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima25.07.2007. u 21:55 - pre 203 meseci
O tvom iskustvu iz Visual Basic-a od pre 20 godina mozes da lazes na drugom mestu.
Drugo, obicaj je da kada neko resi problem koji je postavio kaze i kako je resio jer ako je ocekivao da mu drugi pomognu i podele svoje znanje, onda je red da i on podeli svoje ako je pronasao resenje. U suprotnom je to nekulturno ponasanje koje se ne dopusta.
 
0

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
80.93.249.*



+3 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima25.07.2007. u 22:02 - pre 203 meseci
Citat:
X Files: U odnosu na šta radi brže?


U odnosu na algoritam sa komandom LIKE ciji je primer dat gore.



Citat:
Shadowed: O tvom iskustvu iz Visual Basic-a od pre 20 godina mozes da lazes na drugom mestu.


Ko si ti da dajes tako glupe zakljucke o necijem iskustvu? Video sam tvoje znanje, pokazao si se.
rgdrajko
 
0

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima25.07.2007. u 22:03 - pre 203 meseci
Mislim da smo svi vrlo zainteresovani da vidimo taj algoritam koji ste otkrili - ili on mozda ne postoji?
 
0

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
80.93.249.*



+3 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima25.07.2007. u 22:18 - pre 203 meseci
Citat:
goranvuc: Mislim da smo svi vrlo zainteresovani da vidimo taj algoritam koji ste otkrili - ili on mozda ne postoji?


Pa ti si mi dao ideju u jednom od tvojih odgovora na ovom sajtu. Hvala ti, mnogo sam ti zahvalan.
Prosto je, pokusaj.
rgdrajko
 
0

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima25.07.2007. u 22:23 - pre 203 meseci
Ocigledno se puno bavis enigmatikom, pa su ti i komentari postali zagonetni

Sto se tice davanja ideje, nema na cemu, ovaj sajt i sluzi za razmenu ideja - izmedju ostalog. Ipak te molim da nam izlozis tvoje resenje, prvenstveno zbog tebe samog, jer ovako samo dajes argumente za dalju raspravu koja nema veze sa temom koju si ti i postavio.
 
0

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima25.07.2007. u 22:24 - pre 203 meseci
Citat:

U odnosu na algoritam sa komandom LIKE ciji je primer dat gore.

Brzina izvrsavanja LIKE komande zavisi od toga da li su postavljeni odgovarajuci INDEXI na tabeli. Dakle, ne radi se o JEDNOM algoritmu. Ako jesu postavljeni indexi, pretraga ce biti daleko brza, cak brza nego sto prosecan korisnik zna da sam napravi. Inace, bespredmetno je baviti se brzinom LIKE-a jer ona ne garantuje bas nista, to je samo univerzalni SQL mehanizam koji vraca rezultat (a kako ce biti gde implementiran, niko ne garantuje).

Ako hoces brzinu, prethodno je potrebno sve reci prebaciti u RAM memoriju, na primer u neki stream ili obicne nizove, nije toliko ni bitno. Najbolje na pocetku rada programa ili pred neku operaciju. Kasnije ce brzina pretrage ici velikom brzinom, cak i sa nekoliko if-ova. Ako je zagarantovano da rec ima tacno N karaktera, jos bolje (konstantni Offset ce ubrzati pretragu)

Ako imas i neko pripremno vreme, mozes taj n-ti i m-ti karakter prebaciti na prve dve pozicije, izvrsiti indexsiranje, pa koristiti binarnu pretragu. Tada bi ti i LIKE radio daleko brze. Ima puno nacina, samo treba odabrati pravi.


[Ovu poruku je menjao X Files dana 25.07.2007. u 23:36 GMT+1]
 
0

[es] :: Visual Basic 6 :: Brzo pretrazivanje reci odredjene duzine na osnovu slova na odredjenim mestima
(Zaključana tema (lock), by goranvuc)
Strane: 1 2 3

[ Pregleda: 7017 | Odgovora: 40 ] > FB > Twit

Postavi temu

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.