user_name pominje se vb i parsiranje hatemela ti si ovo doktorirao xixixixixixi
samo ako se smije oglasit
Interesuje me ima li forumasha koji se bave programiranjem u VB-u i voljni su da mi pomognu u vezi sa text parsiranjem. Znam da mogu sve ovo da nadjem na googlu, chak sam i nashao rjeshenje, ali sam zatvorio prozor i odluchio ovdje da pitam, da malo ozhivimo ovaj forum.
Ako ima takvih, postavicu html kod koji treba parsirati.
Hvala!
BEFORE SEX u help each other get naked. AFTER SEX u only dress yourself. Noone helps u once ur fcked
user_name pominje se vb i parsiranje hatemela ti si ovo doktorirao xixixixixixi
samo ako se smije oglasit
uf taj ružni jezik
kakav tekst je u pitanju...mislim što konkretno treba-da se izvuče neki "čisti" tekst, ili da se na osnovu tog html-a kreiraju neke tabele i čuda?
....
Izvukao sam podatke sa jedne webstranice koji su formatirani:
Ovo su samo dva reda, ali u toku dana tabela "raste". Obiljezio sam pocetak svakog reda tako shto sam zamijenio <tr> tag nekim koji se ne pojavljuje u HTML-u:Code:<table border="0" width="665" Cellpadding="2"> <tr class="caltrow" > <td align="left">podatak1</td> <td align="left">podatak2</td> <td align="right">podatak3</td> <td align="right">podatak4</td> <td align="right">podatak5</td> <td align="center">podatak6</td> <td align="center">podatak7</td> <td align="center">podatak8</td> </tr> <tr class="caltrow" > <td align="left">podatak1</td> <td align="left">podatak2</td> <td align="right">podatak3</td> <td align="right">podatak4</td> <td align="right">podatak5</td> <td align="center">podatak6</td> <td align="center">podatak7</td> <td align="center">podatak8</td> </tr> </table>
Replace("<tr class="caltrow" >", "pocetakParsinga")
i dobija se sljedece:
Najprostijom funkcijom za parsiranje sam uspio da izvucem jedan red, posljednji u tabeli, ali meni treba kod kojim cu sve podatke iz reda ubaciti u array i upisivati u sql server. U ovom mom slucaju treba raditi dva parsinga, jedan da se odvoje redovi, a drugi, u okviru prvog, da se iz reda izvuku svi podaci i ubace u array.Code:<table border="0" width="665" Cellpadding="2"> pocetakParsinga <td align="left">podatak1</td> <td align="left">podatak2</td> <td align="right">podatak3</td> <td align="right">podatak4</td> <td align="right">podatak5</td> <td align="center">podatak6</td> <td align="center">podatak7</td> <td align="center">podatak8</td> </tr> pocetakParsinga <td align="left">podatak1</td> <td align="left">podatak2</td> <td align="right">podatak3</td> <td align="right">podatak4</td> <td align="right">podatak5</td> <td align="center">podatak6</td> <td align="center">podatak7</td> <td align="center">podatak8</td> </tr> </table>
Toliko za sad
BEFORE SEX u help each other get naked. AFTER SEX u only dress yourself. Noone helps u once ur fcked
Eeee, konačno nešto interesantno na ovom podforumu
ne treba ti tu nikakvo odvajanje i reimenovanje... Jedan Regular Expression izvlači sve... Samo da nešto obavim i napisaću ti kod...
sredio sam malo text i isparsirao ga.
u tekstualnom polju sada imam:
i sve tako redom. Posto polja nece uvijek biti iste duzine, morao sam obiljeziti pocetak i kraj polja, a i neka polja ce biti prazna.Code:pocetakParsinga pocetak podatak1 kraj pocetak podatak2 kraj pocetak podatak3 kraj pocetak podatak4 kraj pocetak podatak5 kraj pocetak podatak6 kraj pocetak podatak7 kraj pocetak podatak8 kraj pocetakParsinga pocetak podatak1 kraj pocetak podatak2 kraj pocetak podatak3 kraj pocetak podatak4 kraj pocetak podatak5 kraj pocetak podatak6 kraj pocetak podatak7 kraj pocetak podatak8 kraj
sad treba parsirati tekst unutar ovog parsiranja. Ovo je moj primjer iz druge, staticne, stranice:
ako ovaj kod iskoristim, dobicu samo vrijednost iz posljednjeg reda. Mene interesuje kako ovaj kod prilagoditi tako da kad nadje vrijednost, prebaci je u varijablu (object), i tako za svaki red pa nakon parsiranja da dobijem, npr:Code:Dim lnStartPos As Integer Dim lnEndPos As Integer Dim START As String Dim pocetak As String Dim kraj As String Dim GetProxyListing As String START = "pocetakParsiranja" pocetak = "pocetak " kraj = " kraj" lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 0) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox6.Text = GetProxyListing lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 50) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox7.Text = GetProxyListing lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 100) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox8.Text = GetProxyListing lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 150) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox9.Text = GetProxyListing lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 200) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox10.Text = GetProxyListing lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 250) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox11.Text = GetProxyListing lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 300) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox12.Text = GetProxyListing lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 350) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox13.Text = GetProxyListing lnStartPos = InStr(InStr(1, TextBox2.Text, START), TextBox2.Text, PRICE1) + Len(pocetak) lnStartPos = (lnStartPos + 400) lnEndPos = InStr(lnStartPos, TextBox2.Text, kraj) GetProxyListing = Mid(TextBox2.Text, lnStartPos, lnEndPos - lnStartPos) TextBox14.Text = GetProxyListing
red1Vrijednost1 = 0
red1Vrijednost2 = 0
red1Vrijednost3 = 0
red1Vrijednost4 = 0
red1Vrijednost5 = 0
red1Vrijednost6 = 0
red1Vrijednost7 = 0
red1Vrijednost8 = 0
red2Vrijednost1 = 0
red2Vrijednost2 = 0
red2Vrijednost3 = 0
red2Vrijednost4 = 0
red2Vrijednost5 = 0
red2Vrijednost6 = 0
red2Vrijednost7 = 0
red2Vrijednost8 = 0
itd...
Last edited by Balsa; 28-01-09 at 13:13.
BEFORE SEX u help each other get naked. AFTER SEX u only dress yourself. Noone helps u once ur fcked
Da ne bih komplikovao, evo koda koji koristim za parsiranje (znam da je ispreturan i objecti nijesu bash kreativno nazvani ali kad proradi shto mi treba, kasnije ce biti implementiran kako dolikuje):
Ovo parsiranje mi daje rezultat iz prethodnog posta.Code:Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim string1 As String Dim string2 As String Dim string3 As String Dim string4 As String Dim string5 As String Dim string6 As String Dim string7 As String Dim string8 As String Dim string9 As String string1 = Microsoft.VisualBasic.Right(TextBox2.Text, Len(TextBox2.Text) - 3116) 'uklanjanje nepotrebnog koda sa pocetka stranice string2 = Microsoft.VisualBasic.Left(string1, Len(string1) - 67) 'uklanjanje nepotrebnog koda sa kraja stranice string3 = Replace(string2, "<tr class=""caltrow"" >", "pocetakParsinga") string4 = Replace(string3, "<tr >", "pocetakParsinga") string5 = Replace(string4, "<td align=""center""></td>", "0") string6 = Regex.Replace(string5, "\<[^\>]+\>", "") string7 = Replace(string6, " ", "") string8 = Replace(string7, " ", "") TextBox1.Text = string8 Dim sBuffer As String Dim lEnd As Long Dim sData As String ' podaci u bufferu sBuffer = string8 lEnd = InStr(sBuffer, "pocetakParsinga") 'trazi pocetak parsiranja Do ' Pocetak Loop-a If lEnd > 0 Then ' If > 0 onda imamo pocetak parsiranja u bufferu sData = Microsoft.VisualBasic.Left(sBuffer, lEnd - 1) ' sData su karakteri prije lEnd sBuffer = Mid(sBuffer, lEnd + 18) ' brisanje proslijedjenih podataka iz buffera TextBox3.AppendText(sData & vbCrLf) lEnd = InStr(sBuffer, "pocetakParsinga") ' odredjuje startnu poziciju za sljedeci parsing End If Loop While lEnd > 0 ' Loop dok ima "pocetakParsinga" u bufferu End Sub
I imajte u vidu da sam prvi put instalirao VB prije nedjelju dana, pa i nijesam bash neki struchnjak
Last edited by Balsa; 28-01-09 at 13:44.
BEFORE SEX u help each other get naked. AFTER SEX u only dress yourself. Noone helps u once ur fcked
Balša - pošalji ti nama primjer neparsirane stranice (čisti HTML) - onako kako dobiješ sa Web servera, a ja ću napisati mehanizam za parsiranje bez toga svega.
hm trenutno nemam previše vremena (a ni instaliran VS), tako da možda malo kasnije pomognem više...
ali generalno mislim da ne možeš da kreiraš kod koji će da tekst pretvori u ime promjenljive...to teško da se može bez interpretera, a iako VS ima neke runtime stvari mislim da to nije dozvoljeno.
ono što možeš jeste da napraviš (dvodimenzioni) niz koji će čuvati te vrijednosti. tada je otprilike umjesto red1Vrijednost1 = 0 potrebno napisati niz(1,1)=0
recimo nešto ovako (trenutno nemam VB, pa možda ima poneka greška).
Dim vrijednost(1 to 100,1 to 100) as integer 'ili umjesto integer stavi string ili što li već
vrijednost(1,1)=0 'ovo je umjesto red1Vrijednost1 = 0
vrijednost(1,2)=0 'ovo je umjesto red1Vrijednost2 = 0
...
tako da otprilike bude ovako: pocetakParsinga, pocetak i kraj nemoj da ispisuješ!
dakle umjesto
treba da budeCode:pocetakParsinga pocetak podatak1 kraj pocetak podatak2 kraj pocetak podatak3 kraj pocetak podatak4 kraj pocetak podatak5 kraj pocetak podatak6 kraj pocetak podatak7 kraj pocetak podatak8 kraj pocetakParsinga pocetak podatak1 kraj pocetak podatak2 kraj pocetak podatak3 kraj pocetak podatak4 kraj pocetak podatak5 kraj pocetak podatak6 kraj pocetak podatak7 kraj pocetak podatak8 kraj
e sad ovaj fajl možeš lako da parsiraš. (otprilike ovako)Code:podatak1 podatak2 podatak3 podatak4 podatak5 podatak6 podatak7 podatak8 podatak1 podatak2 podatak3 podatak4 podatak5 podatak6 podatak7 podatak8
Code:promjenljivu za red staviš na 1, a vr isto na 1. while nije kraj fajla v=čitaj novi red while v je prazan red (samo novi red bez podataka) i nije kraj fajla v=čitaj novi red end while 'sada je v vrijednost koja treba da se čuva vrijednost(red,vr)=v vr=vr+1 v=čitaj novi red while v nije prazno i nije kraj fajla vrijednost(red,vr)=v vr=vr+1 v=citaj novi red end while red=red+1 end while
e sad ovo je pokušaj pseudo koda na brzinu. generalno to je prva ideja koja mi je pala na pamet...mislim da uz malo igre (pretvaranje ovog mog "pseudokoda" u VB kod i eventualno neke izmjene...nisam siguran ima li koja gre[ka al ne bi trebalo) možeš da sam isprogramiraš (što je jako bitno ako želiš da se baviš sa tim).
ako ne kasnije ću riješiti i postaviti ti kod (ako me Djoks ne prestigne )
....
Bez mnogo komplikacija - podatke ćeš iz prvog HTML primjera iščupati na sljedeći način:
Treba ti u vrhu:
i sljedeći kod koji se koristi vrijednostima iz varijable HTMLText:Code:Imports System.Text.RegularExpressions
Da li ćeš ti iz petlje direktno da puniš SQL Server ili da ideš kroz kolekciju/niz - to je na tebi.Code:Dim RegexObjekat As New Regex("<td[^>]*>(.*?)</td>", RegexOptions.Singleline Or RegexOptions.IgnoreCase) Dim RezultatiPretrage As Match = RegexObjekat.Match(HTMLText) While RezultatiPretrage.Success MessageBox.Show(RezultatiPretrage.Groups(1).ToString) RezultatiPretrage = RezultatiPretrage.NextMatch() End While
db, i dalje se drogiras
ako znas da ti je html kod po standardima (tj, znas da ce svaki otvoreni element uvijek biti zatvoren itd..) tj, validan uvijek 100%,
onda mozes lagano da ga uvezes kao xml dokument, i jednim prostim XPath izrazom da otpakujes sve sto ti treba i stavis automatski u niz, listu i sl...
2 linije koda....
a ako nije po standardima, ima i za to lijeka....
while True:suplje, prazno = prazno, suplje
Ako je HTML kod pravilno struktuiran - onda ima i elegantnije rješenje od toga: LINQ to XML, ali tu je rizik svaka izmjena strukture HTML fajla od strane Webmastera.
Zato je Regex manje bolno rješenje jer će iščupati sadržaj gdje god se on unutar HTML stranice nalazio. Samo je potrebno propisno formulisati Regex izraz.
pa čovjek je već odradio pola posla....nije fora sad da sve to budu 2 linije gotovog koda...nek malo uči i algoritmiku
no dobro-glavno je da ima rješenje i Djoks-ovo i ovo moje
....
Evo još jednog načina - u maniru .NET 3.5 SP1 (da budemo "up-to-date") opisanog na lokaciji: http://blogs.msdn.com/bethmassi/arch...nq-to-xml.aspx
Hvala Djoks i db!
Uspio sam mnogo elegantnije da isparsiram text
evo koda kojim sam isparsirao HTML iz , ako kome treba ili ga/je interesuje:
Ocu li previshe opteretiti program/bazu ako stvarim upisivanje u nju prilikom svakog Loop-a? Je li mnogo bolje napraviti neki string i onda ga na kraju upisati?Code:Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim string1 As String Dim string2 As String Dim string3 As String Dim string4 As String Dim list As ListViewItem string1 = Microsoft.VisualBasic.Right(TextBox2.Text, Len(TextBox2.Text) - TextBox4.Text) 'uklanjanje nepotrebnog koda sa pocetka stranice string2 = Microsoft.VisualBasic.Left(string1, Len(string1) - TextBox5.Text) 'uklanjanje nepotrebnog koda sa kraja stranice string3 = Replace(string2, "<tr class=""caltrow"" >", "pocetakParsinga") string4 = Replace(string3, "<tr >", "pocetakParsinga") Dim sBuffer As String Dim lEnd As Long Dim sData As String Dim vr As Integer Dim varijabla(0 To 8) As String ' podaci u bufferu sBuffer = string4 lEnd = InStr(sBuffer, "pocetakParsinga") 'trazi pocetak parsiranja Do ' Pocetak Loop-a If lEnd > 0 Then ' If > 0 onda imamo pocetak parsiranja u bufferu sData = Microsoft.VisualBasic.Left(sBuffer, lEnd - 1) ' sData su karakteri prije lEnd sBuffer = Mid(sBuffer, lEnd + 17) ' brisanje proslijedjenih podataka iz buffera 'parsiranje u parsiranju vr = 0 Dim RegexObjekat As New Regex("<td[^>]*>(.*?)</td>", RegexOptions.Singleline Or RegexOptions.IgnoreCase) Dim RezultatiPretrage As Match = RegexObjekat.Match(sData) While RezultatiPretrage.Success varijabla(vr + 1) = RezultatiPretrage.Groups(1).ToString & vbCrLf RezultatiPretrage = RezultatiPretrage.NextMatch() vr = vr + 1 End While 'dodavanje reda u tabeli list = New ListViewItem(varijabla(1)) list.SubItems.Add(varijabla(2)) list.SubItems.Add(varijabla(3)) list.SubItems.Add(varijabla(4)) list.SubItems.Add(varijabla(5)) list.SubItems.Add(varijabla(6)) list.SubItems.Add(varijabla(7)) list.SubItems.Add(varijabla(8)) Me.ListView1.Items.Add(list) lEnd = InStr(sBuffer, "pocetakParsinga") ' odredjuje startnu poziciju za sljedeci parsing End If Loop While lEnd > 0 ' Loop dok ima "pocetakParsinga" u bufferu End Sub
BEFORE SEX u help each other get naked. AFTER SEX u only dress yourself. Noone helps u once ur fcked
Nemoj mi zamjeriti Balša, ali ovo meni nije elegantno, i ne funkcioniše mi ... no bitno je da ti završava posao. Ako si ti zadovoljan - onda je dobro.
Što se tiče drugog dijela odgovora (tek sad vidjeh): baza se neće ljutiti u svakom slučaju, ali bih ja savjetovao deklaraciju jednog tipiziranog DataSet-a i odgovarajućeg TableAdapter-a (koji zna kako da puni bazu podataka i prihvata parametre), kojeg bi ti kroz prolaz u petlji punio podacima, da bi na kraju (ako nema grešaka) - pozvao Update i sve te promjene proslijedio bazi podataka.
U suprotnom - obavezno koristi database transakciju - da ne bi tokom punjenja došlo do greške i u bazi imao nepotpune podatke...
Treba li ti primjer za ovo?
Chu zamjeriti. Nemam zashto. Pocheo sam prije nedjelju dana da uchim programiranje i zadovoljan sam kako to sve ide. Ja sam samo rekao da je posljednja verzija koda mnogo elegantnija od prve, iako je ona daleko od perfekcije
Mislim da cu koristiti upisivanje u loop-u jer mi je previshe komplikovano ovo drugo shto pominjesh.
Kako je najbolje uchiti VB? Ima li neko u PG da daje privatne chasove? Koliko to koshta? Imam puno volje, ali mi ponekad za najvecu glupost treba sat vremena da rijeshim koristeci se google=om - samo zato shto nemam osnovu.
p.s. ne funkcionishe ti kod jer nijesi napravio listview1 sa 8 kolona. Nijesam uspio (tachnije ostao sam bez zhivaca) danas ispishem kod za kreiranje kolona pa sam ruchno napravio listview u dizajnu
Last edited by Balsa; 29-01-09 at 16:53.
BEFORE SEX u help each other get naked. AFTER SEX u only dress yourself. Noone helps u once ur fcked
ne mogu da vjerujem da nisi naucio da izpersiras visual basic...
/code*html-url persiranje bejzika.ccc
/ccc.rezultati_persiranja*over.fin
eto nadam se da sam razjasnio
this is pointless
Siwtchovao sam ga preko HUB-a, pa sam ga isportovao preko krekovanog nortona, ali nije htio da mi iZtunelira parsiranje... Mo'sh li zamislit
BEFORE SEX u help each other get naked. AFTER SEX u only dress yourself. Noone helps u once ur fcked
Dodao sam, nego su me oni Textbox-ovi sludili u početku, i dobijem dva reda u ListView-u - prvi je prazan, a drugi je popunjen podacima...
Ne znam, doduše, i kakav je sadržaj tih textbox-ova pa ne mogu da probam tvoj kod u potpunosti...
--
Elem, kod Visual Basic-a imaš punu slobodu u procesu dolaska do konačnog rješenja. Možeš na 100 načina parsirati taj HTML i proslijediti podatke u bazu, međutim - postoje mehanizmi u VB.NET-u 2008 koji su tu da ti što više olakšaju pisanje kod-a, i naknadne izmjene. Ja bih ti savjetovao da se usmjeriš u tom pravcu. Dakle: da ne programiraš u VB-u 2008 onako kako bi programirao u VB-u 6.0 (što je otprilike taj kod poviše; istini za volju - regularne izraze imamo i u C-u, pa nema razloga da se toliko mnogo "algoritmira" tamo gdje to nije potrebno).
Ne kažem da je to loše - već da te sputava da brže dođeš do rješenja, a vidjećeš kad uđeš u produkciju (ili ako već jesi) koliko je svaki sat programiranja važan! db kaže: "neka mu malo algoritmiranja", i to je OK - ali ako imaš deadline da predaš program i 100 takvih mjesta u kod-u - vidjećeš da stvari stoje drugačije...
Zato VB.NET 2008 i uopšte .NET - VRVI od mehanizama koji su tu da ti pomognu i olakšaju programiranje od najosnovnijih rutina - do onih najkompleksnijih. Probaj pošto poto da budeš up-to-date i sa svakim mehanizmom se upoznaj makar bazično; kada dođe momenat da ti zatreba - ići ćeš lako u detalje.
Zašto ovo pišem? Zato što su zahtjevi klijenata sada znatno drugačiji od zahtjeva klijenata prije 10 i više godina (kada je VB6 bio aktuelan). Sada klijenti traže da im program funkcioniše na mobilnim uređajima, traže da mogu off-line da koriste podatke, da se sinhronizuju sa centralnom bazom podataka, da programi komuniciraju kroz mrežu, da im program šalje SMS-ove itd. itd. šta sve ne...
Tu će ti onda dobro doći tehnologije tipa: Sync Services, Entity Framework, WCF, WWF, Project Astoria, Azzure itd.
---
Što se učenja VB-a tiče: moja preporuka su knjige, i to izdanja WROX-a, a ponajviše Apress-a (preporuka br. 1: Visual Basic 2008 Recipies - a problem solution approach Apr 2008), zatim Video tutoriali (fantastična Beth Massi): http://msdn.microsoft.com/en-us/vbasic/bb466226.aspx i potom brojna on-line predavanja.
Uči VB i C# sintaksu da možeš pratiti primjere kod-a i predavanja koja su orjentisana jednom i drugom, a u .NET-u je praktično svejedno koji ćeš koristiti.
Ako uspiješ da nabaviš seriju tutoriala za VB 2008 od AppDev-a - to je pun pogodak!
nismo se razumjeli....
mislio sam da treba u procesu učenje da obrati pažnju na algoritmiku i kako se u VB-u radi sa fajlovima, promjenljivim,... (a tek kasnije da savlada te novije stvari-višeg nivoa). čovjek je tek počeo da radi sa VB i mislim da isto mora prvo da se upozna sa tim stvarima, a ne da bude ekspert za algoritme (ovo moje je negdje taman na početničkom nivou).
naravno da je tvoje rješenje elegantnije i bolje za iskusnog (ili srednje iskusnog) programera, ali mislim da je veoma važno da se prođe jedan ciklus gdje treba savladati i algoritmiku (ako ništa drugo-ponekad se neke stvari ne mogu uraditi na visokom nivou, nego nešto mora da se odradi na nižem...mada to sve zavisi od zahtjeva). to ne mora da oduzme puno vremena, ali eto možda jedna nedjelja čisto da bi shvatio kako se radi sa nizovima, listama i sličnim stvarima...
a mislim da je kasnije (kad se savladaju osnove VB-a) lako naučiti kako da se koriste ti mehanizmi kojih ima mnogo i koji su veoma korisni, ali mislim da se moraju znati i "obične" stvari (mada to je stvar pogleda-neko misli da se treba odmah preći na taj "viši" nivo...pitanje je što je bolje). sve to se generalno lako uči-VB je takav jezik, ali ima baš dosta toga (nije teško, ali je obimno)
PS: moj kod uopšte ne oduzima puno vremena-to je sklepano za 3-4 minuta, ali je svakako bolje koristiti tvoj kod u aplikaciji (posebno ako treba na više mjesta). a i ja nisam imao VB kod sebe, a ne volim da pišem napamet, pa nisam htio da se upuštam u te stvari....
beth je dobra....meni je ranije mnogo koristila, i preporuka su svakako video tutorijali, ali isto za detalje treba knjiga ili online dokumentacija. za gotovo svaki problem google ima pravo rješenje
za bazu: zavisi kakva je baza (koji server, na kakvom računaru,...), ali generalnoje bolje imati jedan veliki unos nego više malih unosa. tako da je svakako bolje unositi u loop-u, i tek na kraju opičiti update nego update nakon svakog unosa...i naravno korisno je koristiti transakcije (posebno ako je puno manjih podataka-kao ovo ovdje)
....
Nije sporno. Nego sam ja razumio da Balša nije početnik u oblasti programiranja, već se konkretno prvi put susreće sa VB-om, pa mu algoritmi i osnovne vještine nijesu strani pojam (što pokazuje na primjeru gore).
Tačno, algoritmiranje mu ne gine, bez obzira na sve, no moj savjet bio čisto praktične prirode: da se ne gubi vrijeme tamo gdje nije potrebno, da se pažnja usmjeri na važnije segmente programa.
Ja se, u VB-u, ježim ovih string funkcija: InStr, Left, Right, Mid, Substr itd., jer znam koliko sam propatio baš na ovakvim i sličnim slučajevima, i ako se mogu izbjeći - odlično! Tamo gdje se ne mogu izbjeći (koristim ih jedino još u T-SQL-u i uskladištenim procedurama) - nemam izbora nego da ih pišem i beskrajno mnogo testiram...
Međutim, tu sam malo staromodan, jer sad mogu koristiti .NET CLR unutar SQL Server-a da .NET program pozivam kao što pozivam uskladištenu proceduru, ali... doći će i to po redu...
Zapravo: nemoguće je držati korak sa Microsoft-ovim inovacijama. Tek smo upoznali novonastale izmjene u .NET-u 3.5 SP1, a .NET 4.0 je uveliko na pomolu. Tek smo upoznali XAML i Silverlight, a Microsoft već uvodi SDK za Mesh da se aplikacije mogu izvršavati unutar LiveDesktop-a na bilo kojoj platformi bez obzira na Mono... itd. da ne dužim... Ko bi bio u korak sa svim time.
Ali makar regularne izraze treba što prije usvojiti, i u tu svrhu - evo dva obavezna programa:
- http://www.ultrapico.com/Expresso.htm (besplatan, preporuka Microsoft-a) i
- http://www.regexbuddy.com/ (nije besplatan, ali odličan - ima primjere kod-a za sve razvojne platforme i programske jezike).
Ima ih još, ali pored ova dva - ne treba ti više ni jedan.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks