Citat:
ovo nije bio komentar "ja sam pametniji"
nisam ga tako ni shvatio, vec kao poziv na pravu (nadam se nekome i korisnu) diskusiju kakvu odavno nisam video na ovom forumu :)
i sve sto sledi ne dokazuje da sam ja u pravu a da ti nisi, vec samo iznosim svoje argumente i doprinosim diskusiji (cisto da ne shvatis ovo kao "ja sam pametniji" sa moje strane :D)
Citat:
nisi bas najbolje shvatio poentu
jesam ja shvatio, ali Rollback nije naveo kakve tacno podatke ima u tom ListBoxu-u, recimo da ima:
2
489
4126
238
blablabla
153
45 evra
i sad, ako se krene petljom i sa Cdbl, ukoliko se ne koristi IsNumeric kod blablabla ce javiti gresku, ukoliko se koristi IsNumeric onda ce preci preko blablabla ali isto tako i preko 45 evra, odakle moze da se "iscupa" ono 45 sto ce Val i da uradi (Val ce za blablabla da vrati 0, a posto je u pitanju sabiranje nema potrebe da se koristi IsNumeric jer 0 ne utice na konacan zbir)
Citat:
ako upisujes u string promenljive vrednosti formatirane na osnovu lokalnog podesavanja, onda je najbolje da ih citas/konvertujes sa CDbl(), a ako vec koristis Val() moras da imas u vidu karakteristiku koju sam naveo.
tacno je to ali zasto ne skratiti kod tamo gde je moguce ako sa duzim kodom ne dobijas na brzini (ako je Val i sporiji od IsNumeric+CDbl to je toliko neznatno da ne vredi pominjati)? cak i taj kraci kod (Val) ti daje odredjene mogucnosti ('45 evra' string)
Citat:
vec sam hteo da ukazem da treba poznavati funkcije koje upotrebljavate (narocito funkcije za konverziju kod kojih je bitno koje su "lokalno svesne", a koje ne).
i to je tacno
Citat:
Pitanje: Da li ti kod korisnika postavljas lokalno podesavanje tako da tvoji programi ispravno rade, ili pravis aplikacije koje su lokalno nezavisne? Ako si koristio Val() na nacin na koji si ovde pokazao morao si bar kod nekog od korisnika da imas problem u slucaju kad je kod njega razlicit decimalni separator na sistemu.
Ne, ne postavljam lokalna podesavanja kod korisnika, zapravo nikada nisam imao problema sa lokalnim podesavanjima (da cukem u drvo da tako i ostane), jedino sam imao problema sa fontovima i nasim slovima (od tada stavljam fontove u svaku instalaciju :D) a koristio sam Val u vise navrata, ne tako cesto ali sam koristio, koristio sam ja i CDbl i CInt i ostalo kad mi je trebalo ali problema (srecom) nisam imao...
Citat:
Citat:
hvala na dopuni ali ja sam ipak za to da se koristi Val iz razloga sto ce Val iz recimo stringa "45.5 evra" vratiti 45.5 dok ce CDbl tu javiti gresku
Netacno
hoces da kazes da CDbl nece prijaviti gresku? Mozda gresim ali proverio sam, pogledaj attachment...
Citat:
Tacno, Val() je dobro resenje za string koji nema pouzdano numericku vrednost, vec je moguce da sadrzi i neke slovne karaktere, a funkcija vraca samo ono sto je broj, a ostalo ignorise.
pa to ja i pricam, nigde ne kazem da je Val bolji od CDbl vec da je Val laksi za upotrebu i ja ga preporucujem upravo u ovakvim situacijama, kada nije sigurno da su samo brojevi u pitanju (sto se tice ove teme Rollback nije ni rekao da ima problema sa nenumerickim stringovima, ja sam to samo naveo kao pretpostavku jer ce mozda neko drugi imati upravo taj problem)
Citat:
Val() je prilicno "prljava" funkcija i treba je koristiti samo u slucajevima koji to opravdavaju.
po cemu si zakljucio da je "prljava"? (i sta taj termin uopste znaci kada se upotrebi kao "epitet" uz funkciju, to mu dodlje na isto kao kad sportski komentator kaze "to je trojka, ali traljava trojka", kako trojka moze da bude traljava?)
ne verujem da si imao prilike da vidish izvorni kod Val funkcije pa me interesuje kako znas da je "prljava" (navedi primere koji dokazuju "prljavost" i razloge zasto ne koristiti neke "prljave" metode ako ce to u datoj situaciji resiti problem na lak nacin)
Citat:
Da zakljucim, ako u istom programu - na istom lokalnom podesavanju upisujete numericke vrednosti u tekst, pa posle te iste vrednosti citate i konvertujete u brojeve KORISTITE CDbl() i nece biti nikakvih problema. Za sve ostale situacije i kombinacije morate predvideti moguce slucajeve i poznavati funkcije za konverziju koje koristite.
apsolutno se slazem sa ovim
Citat:
Jos malo saveta za "lenje" programere: Ako koristite Val() funkciju za konverziju zato sto ona ne daje gresku pri konverziji, razmislite ipak o koristenju lokalno svesnih funkcija(CDbl, Cint...) u sprezi sa IsNumeric() funkcijom - malo vise koda, ali uvek cista situacija. U suprotnom, moze vam se desiti da Val("123a") + Val("a123") = 123!
Da li je to rezultat koji ste ocekivali?
ja sam se pronashao u "lenjim" programerima, zato sto jesam lenj (to mi je najveca mana) ali isto tako gledam da sto vise optimizujem kod, tj da ga smanjim (koristeci "prljave" funkcije ako je to potrebno, a nece dovesti do nezeljenih situacija) i ubrzam (recimo koristeci LenB, InStrB itd umesto Len i InStr i td) sto je nekad mnogo zamorno (skoro sam uzeo da sredim neki stari kod i za sat vremena sam broj linija smanjio za 30%, a proces izvrsavanja ubrzao za ~2%) ali isplativo...
elem, jos jednom da kazem da ne pokusavam da dokazem da ti gresis (jer ne gresis, ali ne gresim ni ja) cak sta vise ja smatram da ti u nekim stvarima imas vise iskustva od mene (jer si stariji i verovatno se duze bavis programiranjem od mene) i ja to postujem... samo pokusavam malo da ozivim ovaj forum sa kvalitetnim diskusijama...
poz