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

Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc

[es] :: Visual Basic 6 :: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc

Strane: 1 2

[ Pregleda: 4725 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
93.184.82.*

Sajt: https://extremesolidworks..


+4 Profil

icon Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc29.09.2009. u 22:23 - pre 177 meseci
Imam fajl izlaz.txt sa podacima. Faj moze da ima 99999 sifri a svaka sifra jos 100-njak unosa. Prilazem fajl.

sifra,naziv,rbr,datum,dokument,cinilac,ulaz,izlaz,cena,vrednost,kolicina,saldo

"000008","Lezaj R8 2RS",1,"01.01.2009","POPIS za 2009 1","",35,0,"99.000","3465.000",35,"3465.000"
"000008","Lezaj R8 2RS",2,"24.01.2009","NIVELACIJA Br. 00002","",0,0,"110.000","385.000",35,"3850.000"
"000008","Lezaj R8 2RS",3,"20.03.2009","FA 01505/M - 0001000","MALOPRODAJA",0,1,"110.000","-110.000",34,"3740.000"
"000008","Lezaj R8 2RS",4,"21.05.2009","FA 03051/M - 0001000","MALOPRODAJA",0,3,"110.000","-330.000",31,"3410.000"
"000008","Lezaj R8 2RS",5,"03.09.2009","FA 05743/M - 0001000","MALOPRODAJA",0,4,"110.000","-440.000",27,"2970.000"
"000008","Lezaj R8 2RS",6,"11.09.2009","FA 05997/E - 0000148","FKL AD",0,5,"110.000","-550.000",22,"2420.000"
"000011","Lezaj SL 11 (W209PPB30)",1,"01.01.2009","POPIS za 2009 2","",67,0,"451.000","30217.000",67,"30217.000"
itd ....

Treba da se dobije fajl izlaz2.txt sa sledecom strukturom:

Sifra,Naziv,Ukupni_izlaz,Maksimalni_izlaz,Zadnja_cena,Izlaz_januar,Izlaz_februar, i tako do 12 meseca

"000008","Lezaj R8 2RS",13,5,22,"110.000",0,0,1,0,3,0,0,0,9,0,0,0
"000011","Lezaj SL 11 (W209PPB30)",150,17,63,"501.000", nije uradjeno
"000013","Lezaj SL 13 (W209PPB25)",239,60,68,"501.000", nije uradjeno
"000017","Lezaj L 17",2371,218,375,"78.000", nije uradjeno
"000027","Mazalica M 8x1 (tip T1B)",0,0,3000,"5.000"


Napravio sam kod za jedan deo ali nisam zadovoljan. Naime program radi sat vremena a nisam uspeo jos da izvucem racunicu za podatke.

Dali treba koristiti bazu kod VB ili ja jos nisam dorastao ovom problemu. Molim za svaku pomoc, sa ovim problemom danonocno lomim glavu vec nekih nedelju dana. Pozdrav
Prikačeni fajlovi
 
Odgovor na temu

dava
Banja Luka

Član broj: 27208
Poruke: 893



+384 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc30.09.2009. u 07:09 - pre 177 meseci
Nisi nam rekao gdje si tacno zapeo?
Mozda je bolje koristiti bazu podataka zbog lakse manipulacije sa podacima, ali moze i ovako. Kako bih ja to uradio: napravio bih proceduru koja cita liniju po liniju iz izlaz.txt fajla. Ta procedura bi slala tu liniju drugoj proceduri koja bi sluzila da parsira liniju na kolone i da odradi potrebne operacije nad tim podacima (kolonama), zatim bi pozivao trecu proceduru koja bi sluzila da sadrzaj tih kolona smjesta u izlaz2.txt fajl.
SELECT * FROM หน่วยงานหลัก WHERE ยสันติ LIKE 'โดย%'
 
Odgovor na temu

DraganK

Član broj: 4976
Poruke: 109



+3 Profil

icon Re: baza u *.txt fajlu dali moze da se ubaci u VB5 i napravi query30.09.2009. u 10:35 - pre 177 meseci
Otvori fajl, čitaj red po red, a za odvajanje zarezima korsiti funkciju split. Nešto ovako:

Dim red As String, sniz() As String, l As long
red = "a,b,c,d"
sniz() = Split(red, ",")
For l = 0 To 3
MsgBox sniz(l)
Next l
 
Odgovor na temu

DraganK

Član broj: 4976
Poruke: 109



+3 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc30.09.2009. u 11:28 - pre 177 meseci
Ne treba ti baza, sporo bi ti bilo...
Uradi ovako:
Deklarišeš string niz, recimo niz().
Otvoriš fajl koji čitaš, uzimaš red po red, koristiš funkciju split(string, ","), smeštaš kolone u niz(1), niz(2), niz(3)...
Otvoriš fajl u koji pišeš, smeštaš red po red obrćući redosled niz(3), niz(1)...
Usput radiš matematiku...
Fajlove otvaraj preko FSO objecta, on ima funkciju readline, to ide brzo...

Terotetski bi bilo brže uz dvodimenzionalni niz, ali VB je tu spor.

Sve u svemu, nije teško...
 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
93.184.82.*

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc01.10.2009. u 22:13 - pre 177 meseci
Izvinjavam se sto se nisam odmah javio, nisam imao pristup internetu.

Mislim da moj program radi dugo (pola sata sto je stvarno mnogo) jer sam primenio sledeci princip. Uzmem jednu sifru (pre toga sam napravio pomocni faj iz koga citam sve sifre koje se mogu javiti) pa provrtim celu bazu da bi nasao podatke za tu sifru (jer treba da nadjem zbir izlaza, max izlaz, zbir ulaza, zadnju cenu, preostalu kolicinu).

Problem je sto sam dobio zadatak da napravim izvrsni fajl koji je u *.txt obliku. Resio sam problem sa accesom i querijem. Da vam ne pricam da sam fajl izlaz.txt dobio tako sto sam se ubio pisuci kodove za ciscenje *.prn fajla koji izlazi iz knjigovodstvenog programa.

Mozda je resenje da nekako primenim baze iz vb ali nemam bas nikakvog iskustva sa tim (kako da ucitam bazu iz *.txt kako da primenim sql). da li neko moze da mi pomogne na tu temu.

Mozda je problem sto koristim visual basic 5.

Da li mogu da primenim neki program za sql i koji? Da li sa tim programom mogu da pravim izvrsni fajl.

Da li sa accesom mogu da napravim izvrsni fajl.
 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
93.184.82.*

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc03.10.2009. u 20:33 - pre 176 meseci
Molim Vas za pomoc jos jednom i da malo pojenostavim problem.

Radim u Visual basicu 5.

Imam fajl c:\temp\izlaz.txt (fajl je tezak 10,5 mb, ima pretpostavimo 100000 x (Od 3 do 60) redova) i kolona 24)

izgleda ovako: (pokusacu da ga pridruzim uz poruku)

sifra,naziv,rbr,datum,dokument,cinilac,ulaz,izlaz,cena,vrednost,kol,saldo,01,02,03,04,05,06,07,08,09,10,11,12
"000008","Lezaj R8 2RS",1,"01.01.2009","POPIS za 2009 1","",35,0,"99.000","3465.000",35,"3465.000",0,0,0,0,0,0,0,0,0,0,0,0
"000008","Lezaj R8 2RS",2,"24.01.2009","NIVELACIJA Br. 00002","",0,0,"110.000","385.000",35,"3850.000",0,0,0,0,0,0,0,0,0,0,0,0
"000008","Lezaj R8 2RS",3,"20.03.2009","FA 01505/M - 0001000","MALOPRODAJA LAGERTON",0,1,"110.000","-110.000",34,"3740.000",0,0,1,0,0,0,0,0,0,0,0,0
"000008","Lezaj R8 2RS",4,"21.05.2009","FA 03051/M - 0001000","MALOPRODAJA LAGERTON",0,3,"110.000","-330.000",31,"3410.000",0,0,0,0,3,0,0,0,0,0,0,0
"000008","Lezaj R8 2RS",5,"03.09.2009","FA 05743/M - 0001000","MALOPRODAJA LAGERTON",0,4,"110.000","-440.000",27,"2970.000",0,0,0,0,0,0,0,0,4,0,0,0
"000008","Lezaj R8 2RS",6,"11.09.2009","FA 05997/E - 0000148","FKL AD",0,5,"110.000","-550.000",22,"2420.000",0,0,0,0,0,0,0,0,5,0,0,0
"000011","Lezaj SL 11 (W209PPB30)",1,"01.01.2009","POPIS za 2009 2","",67,0,"451.000","30217.000",67,"30217.000",0,0,0,0,0,0,0,0,0,0,0,0
"000011","Lezaj SL 11 (W209PPB30)",2,"24.01.2009","NIVELACIJA Br. 00002","",0,0,"501.000","3350.000",67,"33567.000",0,0,0,0,0,0,0,0,0,0,0,0
..................................................................................................................................................................................................

cilj je da program odradi queri direktno iz vb i u fajl c:\temp\zbirno.txt:


"000008","Lezaj R8 2RS",13.00,5,22,"110.000",0.00,0.00,1.00,0.00,3.00,0.00,0.00,0.00,9.00,0.00,0.00,0.00
"000011","Lezaj SL 11 (W209PPB30)",150.00,17,63,"501.000",0.00,34.00,40.00,38.00,6.00,2.00,6.00,10.00,14.00,0.00,0.00,0.00
"000013","Lezaj SL 13 (W209PPB25)",239.00,60,68,"501.000",10.00,33.00,81.00,54.00,34.00,17.00,2.00,4.00,4.00,0.00,0.00,0.00
"000017","Lezaj L 17",2371.00,218,375,"78.000",15.00,366.00,322.00,290.00,226.00,599.00,259.00,115.00,179.00,0.00,0.00,0.00
..............................................................................................................................................................................


sql iz accesa je:


SELECT Izlaz.sifra, Izlaz.naziv, Sum(Izlaz.izlaz) AS SumOfizlaz, Max(Izlaz.izlaz) AS MaxOfizlaz, Last(Izlaz.kol) AS LastOfkol, Last(Izlaz.cena) AS LastOfcena, Sum(Izlaz.[01]) AS SumOf01, Sum(Izlaz.[02]) AS SumOf02, Sum(Izlaz.[03]) AS SumOf03, Sum(Izlaz.[04]) AS SumOf04, Sum(Izlaz.[05]) AS SumOf05, Sum(Izlaz.[06]) AS SumOf06, Sum(Izlaz.[07]) AS SumOf07, Sum(Izlaz.[08]) AS SumOf08, Sum(Izlaz.[09]) AS SumOf09, Sum(Izlaz.[10]) AS SumOf10, Sum(Izlaz.[11]) AS SumOf11, Sum(Izlaz.[12]) AS SumOf12
FROM Izlaz
GROUP BY Izlaz.sifra, Izlaz.naziv
ORDER BY Izlaz.sifra;

Zahtev mog gazde je da dobije *.txt fajl tako sto ce imati *.exe aplikaciju iz vb bez da koristi access


molim vas da mi neko pomogne kako da napisem kod koji ce ucitati txt odraditi posao i izbaciti txt.


izlaz, kol i cena mogu da budu i decimalni *********.***













 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc04.10.2009. u 12:44 - pre 176 meseci
Ja te stvarno ne kužim. Spominješ da imaš jedan txt file i da trebaš prebaciti u drugi, a poslije kažeš da čitaš podatke iz baze. Imaš na kraju te podatke u bazi ili u access .mdb?

Ako imaš u txt, probaj sve strpati u string listu i onda obrađivati string listu, mislim da će ići brže nego čitanje red po red i txt fajla. Ili uzmi dio zapisa u string listu, obradi pa uzmi slijedeće.
F
 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
*.dynamic.sbb.rs.

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc04.10.2009. u 15:33 - pre 176 meseci
Imao sam jedan *.prn fajl koji sam procistio kodom vb i dobio fajl izlaz.txt sa podacima koje sam napred naveo. potrebno je kodom da dodjem do treceg fajla koji treba da izvrsi odredjene operacije (da ne kasem nesto slicno queriju, sumu nekog polja zadnji izlaz, max itd).

Posto do sada nisam imao kontakt sa koriscenjem baza u vb5 napravio sam neko kod koji sa velikom kolicinom podataka sporo radi, zato sam se obratio forumu. Koristim i access i tu brzo odradim posao medjutim moj zadatak je da napravim *.exe verziju sa vb koja nece koristiti access bazu.

Pomoc mi je bila potrebna da mi neko malcice pomognem da napisem kod (da koristim mogucnosti baze iz vb) sa ulaznim *.txt fajlom, zatim formiranjem upita u vb i slanje tog upita u *.txt. Mislim da sam bio jasan i pre ovog objasnjenja ali hajde!!!!

Koliko vidim ovih nekoliko dana koliko stoji ovaj topik niko mi nista konkretno nije pomogao, tako da sam izgubio misljenje da forumasi jedni drugima svesrdno pomazu.

I na kraju jedna lepa vest ako to ikoga zanima. Sinoc sa ispravio ispravke na kodu tako da brzo radi i zavrsava posao (ali voleo bih da sam na ovom zadatku mogao da naucim koriscenje baza u vb, te vapaj za pomoci i dalje ostaje)

Puno pozdrava!!
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc04.10.2009. u 17:01 - pre 176 meseci
Čekaj polako, nemoj da se nerviraš. Nije da ti niko nije pomogao, nego ti nisi lepo objasnio šta hoćeš... a ljudi su pokušali da ti objasne kako da parsuješ txt fajl. Ja sam tek iz tvog poslednjeg posta shvatio da ti zapravo hoćeš da pristupiš text fajlu kao bazi i da na njemu izvršiš neki upit, jel tako ? S obzirom da je u pitanju klasičan csv fajl, to može da se izvede korišćenjem ADO i MS Text Drivera. Dakle, dodaj referencu na Active Data Object Library 2.0 i onda otvori konekciju na ovaj način
Code:
Dim adoConn As ADODB.Connection
Dim adoRS As ADODB.Recordset
Dim strQry As String

    Set adoConn = New ADODB.Connection
    adoConn.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
        "DefaultDir=C:\Temp\"
    adoConn.Open

    strQry = "Select * FROM izlaz.txt WHERE sifra = '000011'"
    Set adoRS = adoConn.Execute(strQry)
    
    Do Until adoRS.EOF
        If IsNull(adoRS.Fields(0).Value) Then
            Debug.Print "<null>"
        Else
            Debug.Print adoRS.Fields(0).Value
        End If
        
        adoRS.MoveNext
    Loop

adoRS.Close
adoConn.Close
Set adoRS = Nothing
Set adoConn = Nothing

Dakle, jednom kada otvoriš fajl, on se ponaša kao klasična access tabela i možeš sa njom raditi šta hoćeš. Recimo u navedenom slučaju ispisuje se vrednost prve kolone u Immediate prozoru. E sad, ne znam koliko će ovo brzo raditi sa velikim fajlovima, jer nisam nikad pokušavao i inače izbegavam da koristim ovaj metod, jer ponekad zavisno od slučaja do slučaja može doneti više problema nego koristi. Više volim da isparsujem csv fajl, smestim podatke u access bazu i onda radim sa njima, što i tebi preporučujem. Naravno, ako to nije izvodljivo i baš mora da ide direktno sa txt fajlom, onda nema drugog rešenja do ovog što sam naveo... ili da ručno parsiraš csv fajl, smestiš u neku matricu i onda barataš podacima, ali onda se oprosti od SQL upita.

Takođe postoje razni third party alati koji mogu text fajl konvertovati u nešto drugo ili recimo exportovati direktno u SQL ili MySQL bazu, no pošto nije o tome tema, nećemo se zadržavati. Čisto napominjem da imaš i tu opciju ako je krajnji cilj da podaci završe u nekoj MSSQL ili MySQL bazi.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
*.dynamic.sbb.rs.

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc05.10.2009. u 20:39 - pre 176 meseci
Marko_L hvala ti puno na ulozenom trudu i pomoci.

Losa vest je da nisam uspesno napravio onaj kod koji mi je radio sa iteracijama. Zariba kada za sifru ima samo jedan unos.

Meni je u stavi koliko pocinjem da uvidjam glavni problem kako napravim za odredjenu sifru (zbir izlaza, , maksimum izlaza, zadnji izlaz, zadnju cenu, zadnju kolicinu i na kraju kao slag na tortu za odredenu sifru treba da izvucem zbir izlaza za odredene mesece).

Iz prn fajla sam uspesno izvukao sve podatke i poslao u drugi fajl c:\temp\izlaz.txt. Kada importujem izlaz.txt u access uspesno izvrsim queri.

Marko_L pokusao sam sa tvojim kodom. U debug prozoru mi je isprintao 000011 onoliko puta koliko ima ulaza za sifru 000011 iako u strungu za queri stoji zvezdica to znaci da je trebao da izbaci sve podatke vezane za sifru, kako to? sta nije uredu.


da li neko moze da mi pomogne sa ovim primerom fajla izlaz.txt (fajl sam skratio) da pokusamo da napravimo kod bez baze??

ulaz c:\temp\izlaz,txt

ovaj red koji pisem ispod ovog je da razjasni zaglavlje:
sifra,naziv,rbr,datum,dokument,cinilac,ulaz,izlaz,cena,vrednost,kol,saldo,01,02,03,04,05,06,07,08,09,10,11,12

a ovo je ulazni fajl

"000008","Lezaj R8 2RS",1,"01.01.2009","POPIS za 2009 1","",35,0,"99.000","3465.000",35,"3465.000",0,0,0,0,0,0,0,0,0,0,0,0
"000008","Lezaj R8 2RS",2,"24.01.2009","NIVELACIJA Br. 00002","",0,0,"110.000","385.000",35,"3850.000",0,0,0,0,0,0,0,0,0,0,0,0
"000008","Lezaj R8 2RS",3,"20.03.2009","FA 01505/M - 0001000","MALOPRODAJA LAGERTON",0,1,"110.000","-110.000",34,"3740.000",0,0,1,0,0,0,0,0,0,0,0,0
"000008","Lezaj R8 2RS",4,"21.05.2009","FA 03051/M - 0001000","MALOPRODAJA LAGERTON",0,3,"110.000","-330.000",31,"3410.000",0,0,0,0,3,0,0,0,0,0,0,0
"000008","Lezaj R8 2RS",5,"03.09.2009","FA 05743/M - 0001000","MALOPRODAJA LAGERTON",0,4,"110.000","-440.000",27,"2970.000",0,0,0,0,0,0,0,0,4,0,0,0
"000008","Lezaj R8 2RS",6,"11.09.2009","FA 05997/E - 0000148","FKL AD",0,5,"110.000","-550.000",22,"2420.000",0,0,0,0,0,0,0,0,5,0,0,0
"000031","Lezaj 67512",1,"01.01.2009","POPIS za 2009 7","",6,0,"595.000","3570.000",6,"3570.000",0,0,0,0,0,0,0,0,0,0,0,0
"000031","Lezaj 67512",2,"24.01.2009","NIVELACIJA Br. 00002","",0,0,"661.000","396.000",6,"3966.000",0,0,0,0,0,0,0,0,0,0,0,0
"000031","Lezaj 67512",3,"20.08.2009","FA 05415/E - 0000220","VEKA DOO",0,2,"661.000","-1322.000",4,"2644.000",0,0,0,0,0,0,0,2,0,0,0,0
"000133","Lezaj 4305",1,"01.01.2009","POPIS za 2009 23","",1,0,"1000.000","1000.000",1,"1000.000",0,0,0,0,0,0,0,0,0,0,0,0
"000135","Lezaj 23044",1,"01.01.2009","POPIS za 2009 24","",1,0,"40000.000","40000.000",1,"40000.000",0,0,0,0,0,0,0,0,0,0,0,0
"000286","Lezaj N 311",1,"06.05.2009","FA 00280/I - 0000079","VTL DOO",1,0,"921.000","921.000",1,"921.000",0,0,0,0,0,0,0,0,0,0,0,0
"000286","Lezaj N 311",2,"06.05.2009","FA 02611/E - 0000058","TERAZIJE DOO",0,1,"921.000","-921.000",0,"0.000",0,0,0,0,1,0,0,0,0,0,0,0

treba da se dobije

izlaz c:\temp\analitika.txt

ovaj red koji pisem ispod ovog je da razjasni zaglavlje:
sifra,naziv,zbir_izlaza,max_izlaza,zadnja _koli, zadnja_cena, zbir_izlaza za 01_mesec,zbir_izlaza za 02_mesec...................zbir_izlaza za 02_mesec


"000008","Lezaj R8 2RS",13,5,22,"110.000",0,0,1,0,3,0,0,0,9,0,0,0
"000031","Lezaj 67512",2,2,4,"661.000",0,0,0,0,0,0,0,2,0,0,0,0
"000133","Lezaj 4305",0,0,1,"1000.000",0,0,0,0,0,0,0,0,0,0,0,0
"000135","Lezaj 23044",0,0,1,"40000.000",0,0,0,0,0,0,0,0,0,0,0,0
"000286","Lezaj N 311",1,1,0,"921.000",0,0,0,0,1,0,0,0,0,0,0,0


Pomoc, pomoc, pomoc!!!!




Prikačeni fajlovi
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc05.10.2009. u 22:53 - pre 176 meseci
Citat:
Marko_L pokusao sam sa tvojim kodom. U debug prozoru mi je isprintao 000011 onoliko puta koliko ima ulaza za sifru 000011 iako u strungu za queri stoji zvezdica to znaci da je trebao da izbaci sve podatke vezane za sifru, kako to? sta nije uredu.

A, pa to je tako za DAO, a ovo je ADO... tako da umesto "*" koristi "%", a umesto "?" koristi "_" (naravno, bez navodnika). Takođe, umesto operatora "=" koristi "LIKE", al to već verovatno znaš. Dakle, query koji bi ti dao sve rezultate bi izgledao ovako
Code:
Select * FROM izlaz.txt WHERE sifra LIKE '%'

ili jednostavno izbaciš WHERE klazulu
Code:
Select * FROM izlaz.txt


Dalje, pošto je ovo klasična access tabela kada se ovako otvori, možeš da praviš iste upite kao u access-u, pa recimo možeš da sabiraš polja sa SUM itd. Ne znam da li je to bilo tvoje pitanje. Ako treba neka dalja pomoć, viči (ne bukvalno kao u prethodnoj poruci) :)
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
*.dynamic.sbb.rs.

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 13:03 - pre 176 meseci
Marko, jos jednom ti hvala.

kada u proceduru koju si mi dao ubacim:

strQry = "Select sifra FROM izlaz.txt WHERE sifra = '000011'"
program javi:
[Microsoft][ODBCTextDriver]Too few parameters,Expeced1

kada u proceduru koju si mi dao ubacim:

strQry = "Select * FROM izlaz.txt WHERE sifra LIKE '%'"
program javi:
[Microsoft][ODBCTextDriver]Too few parameters,Expeced1


kada u proceduru koju si mi dao ubacim:

strQry = "Select * FROM izlaz.txt"

program u debug.print prozoru:
izredja sifre:

000008
000008
000008
000008
.........
000011
.........
099994

Glavni problem mi je da napravim zbir izlaza za svaku pojedinacnu cifru, maksimum izlaza za svaku pojedinacnu sifru itd vec sam pricao o tome.

sql querija iz accesa je:


SELECT Izlaz.sifra, Izlaz.naziv, Sum(Izlaz.izlaz) AS SumOfizlaz, Max(Izlaz.izlaz) AS MaxOfizlaz, Last(Izlaz.kol) AS LastOfkol, Last(Izlaz.cena) AS LastOfcena, Sum(Izlaz.[01]) AS SumOf01, Sum(Izlaz.[02]) AS SumOf02, Sum(Izlaz.[03]) AS SumOf03, Sum(Izlaz.[04]) AS SumOf04, Sum(Izlaz.[05]) AS SumOf05, Sum(Izlaz.[06]) AS SumOf06, Sum(Izlaz.[07]) AS SumOf07, Sum(Izlaz.[08]) AS SumOf08, Sum(Izlaz.[09]) AS SumOf09, Sum(Izlaz.[10]) AS SumOf10, Sum(Izlaz.[11]) AS SumOf11, Sum(Izlaz.[12]) AS SumOf12
FROM Izlaz
GROUP BY Izlaz.sifra, Izlaz.naziv
ORDER BY Izlaz.sifra;

kako bi trebao da izgleda u ovom slucaju??











 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
*.dynamic.sbb.rs.

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 14:05 - pre 176 meseci
Da li je sve ovo jer koristim vb 5 a ne vb 6?
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 14:21 - pre 176 meseci
Nije, nego verovatno nemaš upisana imena kolona u prvoj liniji text fajla. Prva linija u text fajlu treba da bude header i da sadrži imena kolona. Ovako nekako
Code:
"sifra","nesto_drugo","nesto_trece"

I tako nabacaš sve kolone. Bez toga, query naravno neće prepoznati ime polja "sifra" koje si koristio u upitu.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
*.dynamic.sbb.rs.

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 16:19 - pre 176 meseci
imao sam heder samo nisu bili pod navodnicima"".

"sifra","naziv","rbr","datum","dokument","cinilac","ulaz","izlaz","cena","vrednost","kol","saldo","01","02","03","04","05","06","07","08","09","10","11","12"

sada je bila ovakva situacija:

strQry = "Select sifra FROM izlaz.txt WHERE sifra = '000011'"

izbaci 000011 onoliko puta koliko ih ima



StrQry = "Select * FROM izlaz.txt WHERE sifra LIKE '%'"
strQry = "Select * FROM izlaz.txt"

u oba slucaja: izbaci za sifru ololiko linija koliko ih ima od pocetka do kraja.

sta nije u redu?

koko bi trebao da izleda moj queri koji u accesu izgleda:

SELECT Izlaz.sifra, Izlaz.naziv, Sum(Izlaz.izlaz) AS SumOfizlaz, Max(Izlaz.izlaz) AS MaxOfizlaz, Last(Izlaz.kol) AS LastOfkol, Last(Izlaz.cena) AS LastOfcena, Sum(Izlaz.[01]) AS SumOf01, Sum(Izlaz.[02]) AS SumOf02, Sum(Izlaz.[03]) AS SumOf03, Sum(Izlaz.[04]) AS SumOf04, Sum(Izlaz.[05]) AS SumOf05, Sum(Izlaz.[06]) AS SumOf06, Sum(Izlaz.[07]) AS SumOf07, Sum(Izlaz.[08]) AS SumOf08, Sum(Izlaz.[09]) AS SumOf09, Sum(Izlaz.[10]) AS SumOf10, Sum(Izlaz.[11]) AS SumOf11, Sum(Izlaz.[12]) AS SumOf12
FROM Izlaz
GROUP BY Izlaz.sifra, Izlaz.naziv
ORDER BY Izlaz.sifra;
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 17:35 - pre 176 meseci
Kako to misliš šta nije u redu ? Koliko ja vidim sve radi kako treba.
Code:
strQry = "Select sifra FROM izlaz.txt WHERE sifra = '000011'"

Znači uslov je da ti izbaci sve redove u kojima je šifra jednaka "000011"
Code:
StrQry = "Select * FROM izlaz.txt WHERE sifra LIKE '%'"
strQry = "Select * FROM izlaz.txt"

U oba slučaja dobijaš isti rezultat, tj. sve redove, jer u prvom slučaju tražiš redove gde je šifra jednaka bilo šta, a u drugom uopšte ne postavljaš bilo kakav uslov... tako da ćeš u oba slučaja dobiti sve redove koji imaju bilo koju šifru.

A query iz access-a, treba da izgleda upravo tako kako je u access-u. Eventualno izbaci ekplicitno navođenje tabele pošto radiš samo sa jednom tabelom. Dakle, ovako bi trebalo da radi
Code:
strQry = "SELECT sifra, naziv, Sum(izlaz) AS SumOfizlaz, Max(izlaz) AS MaxOfizlaz, Last(kol) AS LastOfkol, Last(cena) AS LastOfcena, Sum([01]) AS SumOf01" & _
", Sum([02]) AS SumOf02, Sum([03]) AS SumOf03, Sum([04]) AS SumOf04, Sum([05]) AS SumOf05, Sum([06]) AS SumOf06, Sum([07]) AS SumOf07, Sum([08]) AS SumOf08" & _
", Sum([09]) AS SumOf09, Sum([10]) AS SumOf10, Sum([11]) AS SumOf11, Sum([12]) AS SumOf12 FROM Izlaz.txt GROUP BY sifra, naziv ORDER BY sifra"


Edit > Evo sad sam probao ovaj query na onom mom primeru i radi bez problema.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
93.184.83.*

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 20:59 - pre 176 meseci
Marko ja znam da imam vrlo malo znanja o ovome, ali u mome immediate prozoru kada sam ubacio ovaj novi query (prosljaka dobro) ali izbacuje samo jednu kolonu "sifra" i sada je grupisao po sifri ali ocekujem: (znaci sve kolone po mogucstvu odvojene sifrom ili tab-om)

"000008","Lezaj R8 2RS",13,5,22,"110.000",0,0,1,0,3,0,0,0,9,0,0,0
"000031","Lezaj 67512",2,2,4,"661.000",0,0,0,0,0,0,0,2,0,0,0,0
"000133","Lezaj 4305",0,0,1,"1000.000",0,0,0,0,0,0,0,0,0,0,0,0
"000135","Lezaj 23044",0,0,1,"40000.000",0,0,0,0,0,0,0,0,0,0,0,0
"000286","Lezaj N 311",1,1,0,"921.000",0,0,0,0,1,0,0,0,0,0,0,0

.......................................................................................
.......................................................................................

i molio bi te da napises kod za ispis ovih rezultata u novi tekstualni fajl c:\temp\rezultat.txt

Mislim da cu uz tvoju bezrezervnu pomoc izgleda izaci iz ovog za mene neresivog problema (da te ne davim o tome da moj gazda ovo ocekuje od mene i ako je iznad mojih programerskih mogucnosti i da me je strah da ne popijem otkaz zbog ovoga)

Hvala bezrezervno.
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 21:16 - pre 176 meseci
Čovek, obrati pažnju na deo koda koji ispisuje podatke.
Code:
    Do Until adoRS.EOF
        If IsNull(adoRS.Fields(0).Value) Then
            Debug.Print "<null>"
        Else
            Debug.Print adoRS.Fields(0).Value
        End If
        
        adoRS.MoveNext
    Loop

Kao što vidiš, primer je i napravljen da se ispisuje samo prvo polje, to je ono adoRS.Fields(0). Da si stavio adoRS.Fields(1) ispisivalo bi se samo drugo polje, itd. Zato se i zove primer, a ne gotova aplikacija :)
Ako ćeš da ispišeš sva polja, onda protrčiš kroz kolekciju polja i odvojiš ih čime hoćeš, na primer zarezom (a možeš da staviš bilo šta). Dakle kod bi izgledao ovako nekako
Code:
Dim I As Long
Dim strRed as String
    
    Do Until adoRS.EOF
        strRed = ""
        For I = 0 To adoRS.Fields.Count - 1
            If IsNull(adoRS.Fields(I).Value) Then
                strRed = strRed & "<null>" & ","
            Else
                strRed = strRed & adoRS.Fields(I).Value & ","
            End If
        Next I
        strRed = Left(strRed, Len(strRed) - 1) 'uklonimo zarez viska
        Debug.Print strRed
        adoRS.MoveNext
    Loop

Za pisanje u fajl možeš pronaći primere na forumu, al ajde kad sam već tu
Dakle pre nego što uletiš u Do... Loop petlju, otvori fajl za pisanje

Code:
Dim fn As Integer
fn = Freefile
Open "c:\temp\rezultat.txt" for Output As #fn


zatim umesto linije
Code:
Debug.Print strRed

koja ispisuje u Debug prozoru, staviš
Code:
Print #fn, strRed

koja će pisati u fajl, a zatim kad se završi petlja (dakle na kraju posle Loop linije) zatvoriš fajl
Code:
Close #fn

To je otprilike cela mudrost.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 21:24 - pre 176 meseci
E da, ovo će ispisivati polja odvojena zarezom, ali neće stavljati navodnike. Ako trebaju i navodnici, onda promeni ovaj deo
Code:
            If IsNull(adoRS.Fields(I).Value) Then
                strRed = strRed & "<null>" & ","
            Else
                strRed = strRed & adoRS.Fields(I).Value & ","
            End If


u

Code:
            If IsNull(adoRS.Fields(I).Value) Then
                strRed = strRed & """" & "<null>" & """" & ","
            Else
                strRed = strRed & """" & adoRS.Fields(I).Value & """" & ","
            End If


Takođe, ono "<null>" ne moraš da ispisuješ tako... to je samo oznaka da je polje null vrednosti. Umesto "<null>" možeš jednostavno da upisuješ prazan string "" ili vbNullString
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

ioblak
Ivan Oblak
Tehnolog
MIN AD Vagonka Niš
Niš

Član broj: 127755
Poruke: 91
93.184.83.*

Sajt: https://extremesolidworks..


+4 Profil

icon Re: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc06.10.2009. u 21:34 - pre 176 meseci
Marko svaka ti cast covece. Sve sljaka kao sat. Mogu da tzapazim da si pravi virtuoz sa ovim stvarima. Takodje si mi omogucio da naucim strasno puno novih stvare. Mislim da ce na ovom primeru (a za mene opstanku u firmi) mogi ljudi mnogo nauciti.

Code:
Private Sub Form_Load()
Dim adoConn As ADODB.Connection
Dim adoRS As ADODB.Recordset
Dim strQry As String

Dim I As Long
Dim strRed As String
Dim fn As Integer
fn = FreeFile
Open "c:\temp\rezultat.txt" For Output As #fn

    Set adoConn = New ADODB.Connection
    adoConn.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
        "DefaultDir=C:\Temp\"
    adoConn.Open


    strQry = "SELECT sifra, naziv, Sum(izlaz) AS SumOfizlaz, Max(izlaz) AS MaxOfizlaz, Last(kol) AS LastOfkol, Last(cena) AS LastOfcena, Sum([01]) AS SumOf01" & _
", Sum([02]) AS SumOf02, Sum([03]) AS SumOf03, Sum([04]) AS SumOf04, Sum([05]) AS SumOf05, Sum([06]) AS SumOf06, Sum([07]) AS SumOf07, Sum([08]) AS SumOf08" & _
", Sum([09]) AS SumOf09, Sum([10]) AS SumOf10, Sum([11]) AS SumOf11, Sum([12]) AS SumOf12 FROM Izlaz.txt GROUP BY sifra, naziv ORDER BY sifra"
    
    Set adoRS = adoConn.Execute(strQry)
    
    Do Until adoRS.EOF
        strRed = ""
        For I = 0 To adoRS.Fields.Count - 1
            If IsNull(adoRS.Fields(I).Value) Then
                strRed = strRed & "<null>" & ","
            Else
                strRed = strRed & adoRS.Fields(I).Value & ","
            End If
        Next I
        strRed = Left(strRed, Len(strRed) - 1) 'uklonimo zarez viska
        'Debug.Print strRed
        Print #fn, strRed
        adoRS.MoveNext
    Loop

Close #fn

adoRS.Close
adoConn.Close
Set adoRS = Nothing
Set adoConn = Nothing


End Sub


Evo stavio sam ovo tvoje remek delo da vide svi. Praktican si sto posto.

Autor ovog koda je: Marko Lošonc. Pored svega mogu ti reci i da si dobar covek koji mi je strasno pomogao (iako i neznas ko sam).

Pozdrav i jos jedno veliko Hvala!!!
 
Odgovor na temu

[es] :: Visual Basic 6 :: Izvlacenje podataka iz *.txt u *.txt uz odredjenu gimnastiku. Molim Vas za pomoc

Strane: 1 2

[ Pregleda: 4725 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

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