[ SpizaGenije @ 09.03.2011. 08:50 ] @
Pozdrav! :)

Naime... moram da uradim sledeće... da sa neke putanje pokupim .xls fajl određenog naziva, konvertujem ga u .txt fajl i ostavim ga na istoj putanji...
[ goranvuc @ 09.03.2011. 12:05 ] @
Za resenje tvog problema bitna je struktura tih excel fajlova, tj. da li samo prvi sheet sadrzi podatke, da li su ti podaci samo tabela, ili neki specifican obracun.

Ako je samo prvi sheet i obicna tabela, moze se resiti u 20-tak programskih linija. Znaci, daj malo preciznije.
[ SpizaGenije @ 09.03.2011. 14:23 ] @
Znači... najpreciznije... :)

Najobičnija tabela sa nekih desetak kolona i par stotina redova! :D
Podaci u kolonama su string i integer bez bilo kakvih formula... taj .xls fajl mi kreira neka druga aplikacija (ne moja "neka druga aplikacija")...


E sada... ja moram da vršim vremensku kontrolu foldera u kome se fajl nalazi... čim moja aplikacija pronađe .xls fajl određenog naziva, mora da ga konvertuje u .txt format i da obriše fajl u .xls formatu
[ goranvuc @ 09.03.2011. 15:52 ] @
Dobro, malo sam preterao, u prilogu je resenje sa 40 linija koda, od toga 13 za dimenzionisanje promenljivih.

Ovo ti je resenje kroz VB Script, ako hoces mozes ga uvek prebaciti u VB 6.0

Sam biras filter za xls fajlove, kao i separator. Ako je noviji format "xlsx" samo zameni u kodu.

Zahtevi: DAO na sistemu, ne radi se uopste sa Excel objektom, tj. ne treba ti Excel na racunaru na kom izvrsavas kod.

VBS je zgodan jer mozes kroz scheduled task da ga podesis da ti radi u odredjeno vreme i sl.

Ajd pa javi se.

P.S.

Naravno, skript pokreces u folderu gde su ti Excel datoteke.

[Ovu poruku je menjao goranvuc dana 09.03.2011. u 17:07 GMT+1]
[ SpizaGenije @ 10.03.2011. 07:29 ] @
Joj druže muke... Ajd pokušavam još danas, a ako ne uspem vičem pomoć! :p
[ goranvuc @ 10.03.2011. 07:43 ] @
Pa sta te muci, napisao sam ti kod koji ti radi posao, pusti ga medju te tvoje excel-e :)

Treba samo da vidis koji ti je separator, koji ti je filter i eventualno da formatiras upis u txt datoteku - ja ga nisam formatirao, sve ti je u liniji:
Code:
Row = Row & Separator & Values(Counter, 0)


Ne mozes pogresiti.
[ SpizaGenije @ 10.03.2011. 09:31 ] @
Danke Große! :)

Javljam ti se kasnije, sada sam u nekoj frci! :p

Najverovatnije da ću do tada i završiti posao! :D
[ SpizaGenije @ 10.03.2011. 11:07 ] @
S obzirom da u svakom polju u .xls fajlu nemam isti broj karaktera, kako da napravim razmak koji će i "kolone" u .txt fajlu pravilno da sortira (tj. da budu 'lepo' poslagane)? Sada mi ide sve cik-cak! :p

Valjda znaš o čemu pričam...

PS. kako se dodaje prilog, pa da ti zakačim taj .xls fajl?
[ goranvuc @ 10.03.2011. 11:17 ] @
Pa osnovno pitanje na koje nisi dao odgovor je i bilo kakav format treba da ima taj tvoj txt fajl. Po ovome sto kazes, ispada da ti treba tzv. fixed width, tj. da svako polje ima fisknu duzinu. Ako je to tako, onda moras da u skladu sa predefinisanom duzinom svakog polja dodas koliko je potrebno "space" karaktera.

Mozda ti treba tab separated format, u kom slucaju samo treba umesto zareza da polja razdvajas tab karakterom, a mozda ti treba i nesto trece - nisi nam jos dao potpune informacije. Sta god da ti treba, moj kod ti radi posao, a sve izmene treba da odradis u onoj jednoj liniji koda koju sam vec citirao.

Ajd' uzdravlje!

Inace, imas ono dugmence "Upload uz poruku".
[ SpizaGenije @ 10.03.2011. 13:05 ] @
Citat:
onda moras da u skladu sa predefinisanom duzinom svakog polja dodas koliko je potrebno "space" karaktera.


E upravo to mi treba, a to ne znam da odradim...



Citat:
Mozda ti treba tab separated format, u kom slucaju samo treba umesto zareza da polja razdvajas tab karakterom


Već ih odvajam tabom, ali kao što si rekao (prethodni citat), moram da dodam i space karaktere... E sa tim se borim već par sati, jer ne znam gde da izračunam broj karaktera (na kom mestu) i kako da dodam space karaktere (znam kako, ali ne znam gde)! :p

PS. okačio sam primer .xls fajla



[ loto17 @ 10.03.2011. 13:08 ] @
Mozda ovo pomogne :)

Program ce u C:\Proba\ konvertovati Proba.xls,napraviti Konvertovano.txt i obrisati Proba.xls

Dodaj referencu za Excell


Code:

Private Sub Command1_Click()
    saveExcelAsCsv ("C:\Proba\Proba.xls")
End Sub
Sub saveExcelAsCsv(ExcelFileName As String)
  Dim objXlApp As New Excel.Application
  Dim objXlBook As Excel.Workbook
  Set objXlBook = Excel.Workbooks.Open(ExcelFileName)
  objXlBook.SaveAs "C:\Proba\Konvertovano.txt", xlCurrentPlatformText
  Kill "C:\Proba\Proba.xls"
  objXlBook.Close True
  objXlApp.Quit
  Set objXlBook = Nothing
  Set objXlApp = Nothing
End Sub


[Ovu poruku je menjao loto17 dana 10.03.2011. u 14:42 GMT+1]
[ SpizaGenije @ 10.03.2011. 13:53 ] @
Isti slučaj... :p

Neće da mi lepo poslaže u .txt fajlu...
[ loto17 @ 10.03.2011. 14:32 ] @
Ako ti ide cik-cak pritisni Maximize dugme :(
[ SpizaGenije @ 10.03.2011. 14:51 ] @
Citat:
loto17: Ako ti ide cik-cak pritisni Maximize dugme :(


hahahaha :)))))

Skini onaj fajl koji sam okačio par postova pre, pa ga konvertuj... Videćeš o čemu je reč! :D
[ goranvuc @ 10.03.2011. 15:00 ] @
Izvini, ali stvarno ne razumem da je problem zalepiti odredjeni broj praznih karaktera na neki string:

Code:

If Counter = 2 Then 'Slucaj za naziv artikla, npr. nek je fiksna duzina 50
    Row = Row & Separator & Values(Counter, 0) & String(50 - Len(Values(Counter, 0)), " ")
End If

Slucaj kod brojeva gde je "desno ravnanje" prepustam tebi. Nisam mislio da trebam do kraja da ti odradim posao, ali ...
[ SpizaGenije @ 10.03.2011. 15:44 ] @
Citat:
goranvuc: Izvini, ali stvarno ne razumem da je problem zalepiti odredjeni broj praznih karaktera na neki string:

Code:

If Counter = 2 Then 'Slucaj za naziv artikla, npr. nek je fiksna duzina 50
    Row = Row & Separator & Values(Counter, 0) & [u]String(50 - Len(Values(Counter, 0))[/u], " ")
End If

Slucaj kod brojeva gde je "desno ravnanje" prepustam tebi. Nisam mislio da trebam do kraja da ti odradim posao, ali ...


E ovo me bunilo:
Code:
Row = Row & Separator & Values(Counter, 0) & String(50 - Len(Values(Counter, 0)), " ")





Tačnije:

Code:
50 - Len(Values(Counter, 0)

Nisam znao odakle da izbrojim karaktere!



Hvala ti još jednom za sve!


Nisam sada za svojim računarom, ali sutra kačam završen kôd... Možda ima još "paćenika" kao što sam ja, sa istim "problemom"! :D
[ goranvuc @ 10.03.2011. 16:01 ] @
Nema na cemu, moglo je i onako sa referencom na Excel kao sto je dao Loto17, ali sam smatrao da ce u mojoj varijanti biti vise toga da se nauci (npr, raditi sa Excel-om bez instaliranog excel-a, koristiti vbs umesto standardne aplikacije, rad sa DAO - moglo je i ADO, rad sa FSO ...)
[ loto17 @ 10.03.2011. 17:43 ] @
Mozda coveku odgovara i ovako nesto :
http://www.databison.com/index...th-text-file-format-using-vba/]


[Ovu poruku je menjao loto17 dana 10.03.2011. u 18:55 GMT+1]
[ SpizaGenije @ 10.03.2011. 19:45 ] @
@goranvuc

Da znaš da sam i skontao nešto! :)
Jbg... muka me uhvatila, morao sam to brzo da završim, a nisam imao toliko vremena (čitaj: dana) da sam skontam guglajući... :p
Iskreno, nisam nešto vičan kada su u pitanju VB + Office, ali ako kome treba kačanje na MySQL, MSSQL, kačanje na paralelni, serijski, USB ili TSP/IP port, može mi se slobodno obratiti i direktno na PP. Drage volje ću da pomognem! :D

Bilo da je u pitanju VB6 ili VB.Net...

Pa ljudi, ja se bavim automatizacijom u industriji i očitavanjima i obradama podataka sa bilo kog hardvera koji ima mogućnost konekcije sa PC... Nisam ja za ove stvari... zaista ima stvari koje ne mogu nikako da svarim i razumem... zato što me ne zanimaju previše... radim ih samo ako moram... ljudi (čitaj: šefovi) misle, programer pa može sve što zamislim! :p



@loto17

Druže, ovo poslednje što si okačio je veoma zanimljivo rešenje... samo što mora da prati fajlove koji se nalaze u određenom folderu i da ih ažurira (konvertuje, kreira, briše...), tako da mi nije od neke velike pomoći... Zamisli kada bi knjigovođa (ili ko već) morao da klikće još i po ekselu... :DDD

Ova aplikacija će se koristiti u lancima velikih marketa prilikom ažuriranja lager listâ, a onaj excelov fajl je ustvari baza podataka eksportovana iz onih zajebanih digitalnih vaga (onih koje imaju na sebi barkod čitače, termalne printere, svoju tastaturu... čuda!)

Problem je bio to što se baza eksportuje samo i samo u .xls formatu, a može da se importuje samo i samo u .txt formatu... Jbg, proizvođač napravio baš veliki za*eb, pa sada stvara nama muku zato što ne možemo da pravimo automatski apdejt u određenom vremenu...


P.S.
Eh da... da ne dođe do zabune... kada sam rekao da će se aplikacija koristiti u lancima velikih marketa, to ne znači da ću ja preko tuđih leđa (goranovih) da namlatim veliki keš... :D
Ustvari... neću da namlatim nikakav keš... dobiću "redovnu" platu (uostalom, i sami znate kako to funkcioniše kada radiš kod privatnika) :p


Eto... pa ako neko "zakači" neki njemu "nerešiv" problem, neka se slobodno javi! :D

Pozdrav, i do sledećeg viđenja (čitanja)! :DDD
[ goranvuc @ 10.03.2011. 23:04 ] @
Citat:
Eh da... da ne dođe do zabune... kada sam rekao da će se aplikacija koristiti u lancima velikih marketa, to ne znači da ću ja preko tuđih leđa (goranovih) da namlatim veliki keš...
Ustvari... neću da namlatim nikakav keš... dobiću "redovnu" platu (uostalom, i sami znate kako to funkcioniše kada radiš kod privatnika)


Pa nema problema, mogu ja tom tvom privatniku da fakturisem

Salu na stranu, iskreno receno - da ti ja ili neko drugi ovde nije resio problem tesko bi ga sam resio, koliko vidim (bez potcenjivanja - sam znas da ovo nije tvoj fah). Posto ce od ovog taj tvoj privatnik da profitira, trebalo je sve ovo da ide u berzu poslova, ali ...
Citat:
Eto... pa ako neko "zakači" neki njemu "nerešiv" problem, neka se slobodno javi!
Budi od reci.
[ SpizaGenije @ 11.03.2011. 08:14 ] @
Citat:
Salu na stranu, iskreno receno - da ti ja ili neko drugi ovde nije resio problem tesko bi ga sam resio, koliko vidim (bez potcenjivanja - sam znas da ovo nije tvoj fah).


... Izguglao bih ga ja već nekako! :D



Citat:
Posto ce od ovog taj tvoj privatnik da profitira, trebalo je sve ovo da ide u berzu poslova, ali ...


Ma neće tu ni moj privatnik profitirati... To samo privatnici za koje radi moj privatnik žele da olakšaju sebi život... :P




Citat:
Pa nema problema, mogu ja tom tvom privatniku da fakturisem


hahahaha
imaš piće kada dođeš u Bijeljinu! :D










[ goranvuc @ 11.03.2011. 08:41 ] @
Citat:
SpizaGenije: ... Izguglao bih ga ja već nekako!


Tesko da bi ovo moje izguglao, jer sam ti to namenski napisao - zna google svasta, ali ne ume sam da pise programe

Al' bih se ja napio kad bi krenuo svuda gde su mi obecali pice

Nadam se da se pored resenja tvog problema jos nesto i naucilo, jer je to i bila svrha mog posta - ucinilo mi se kao interesantan problem, narocito u sadasnje vreme kad svuda vlada posast deinstaliranja Office-a, a naviklo se na Excel.
[ SpizaGenije @ 11.03.2011. 10:26 ] @
Citat:
Tesko da bi ovo moje izguglao, jer sam ti to namenski napisao - zna google svasta, ali ne ume sam da pise programe


Ma kada je već naučio da prevodi i priča, ima da nauči i da programira (na više jezika)
Samo ne znam šta će sa nas tada da bude?! :P