Mure on vaja lahendada. Nii on prn fail ja sealt on vaja andmed saada exceli tabelisse. Muidu võiks isegi käsitsi teha, aga faile on rohkem.
Üks näidis fail ka alla pool.
Spoiler
########################E#########E###########################################################E###########################################################»
r r N A I S E D r M E H E D r
r Kokku Ē*********Ä*********Ä*********Ä*********Ä*********Ä*********×*********Ä*********Ä*********Ä*********Ä*********Ä*********¶
r r Alla 25 | 25-29 | 30-39 | 40-49 | 50-55 | Üle 56 r Alla 25 | 25-29 | 30-39 | 40-49 | 50-60 | Üle 61 r
########################I#########I#########+#########+#########+#########+#########+#########I#########+#########+#########+#########+#########+#########¹
KOKKU r 18857 r 1419 | 1703 | 4502 | 3755 | 1731 | 2673 r 298 | 290 | 752 | 688 | 643 | 403 r
########################I#########I#########+#########+#########+#########+#########+#########I#########+#########+#########+#########+#########+#########¹
Tallinn r 4828 r 391 | 375 | 989 | 1090 | 494 | 777 r 56 | 45 | 155 | 170 | 188 | 98 r
Kohtla-Jrve l. r 578 r 56 | 56 | 134 | 110 | 46 | 110 r 4 | 5 | 16 | 26 | 13 | 2 r
Narva linn r 734 r 91 | 97 | 164 | 129 | 64 | 98 r 11 | 8 | 15 | 24 | 27 | 6 r
Prnu linn r 688 r 56 | 65 | 150 | 138 | 72 | 91 r 12 | 10 | 26 | 24 | 28 | 16 r
Sillame linn r 178 r 37 | 11 | 36 | 24 | 12 | 24 r 13 | 3 | 10 | 6 | | 2 r
Tartu linn r 1503 r 88 | 132 | 397 | 294 | 139 | 185 r 31 | 24 | 61 | 55 | 56 | 41 r
Harjumaa r 1257 r 123 | 112 | 338 | 241 | 95 | 166 r 24 | 6 | 53 | 31 | 45 | 23 r
Hiiumaa r 196 r 10 | 18 | 44 | 46 | 21 | 14 r 12 | 2 | 15 | 5 | 6 | 3 r
Ida-Virumaa r 740 r 77 | 59 | 156 | 178 | 59 | 103 r 15 | 10 | 17 | 37 | 23 | 6 r
Jgevamaa r 611 r 27 | 44 | 133 | 128 | 55 | 102 r 14 | 19 | 25 | 19 | 32 | 13 r
Jrvamaa r 662 r 32 | 68 | 152 | 150 | 71 | 76 r 3 | 13 | 37 | 33 | 12 | 15 r
Lnemaa r 511 r 20 | 47 | 142 | 102 | 46 | 58 r 8 | 12 | 34 | 23 | 11 | 8 r
Lne-Virumaa r 1041 r 74 | 112 | 269 | 191 | 92 | 133 r 14 | 11 | 58 | 38 | 28 | 21 r
Plvamaa r 536 r 18 | 63 | 146 | 97 | 46 | 83 r 10 | 13 | 20 | 15 | 15 | 10 r
Prnumaa r 617 r 78 | 50 | 160 | 92 | 53 | 76 r 9 | 14 | 29 | 22 | 25 | 9 r
Raplamaa r 624 r 43 | 56 | 146 | 127 | 64 | 83 r 7 | 10 | 29 | 29 | 15 | 15 r
Saaremaa r 568 r 30 | 62 | 177 | 96 | 46 | 63 r 4 | 12 | 39 | 17 | 13 | 9 r
Tartumaa r 758 r 51 | 65 | 194 | 116 | 67 | 118 r 27 | 23 | 30 | 26 | 18 | 23 r
Valgamaa r 533 r 35 | 53 | 136 | 100 | 42 | 79 r 6 | 14 | 14 | 20 | 16 | 18 r
Viljandimaa r 961 r 38 | 88 | 253 | 183 | 82 | 130 r 7 | 18 | 43 | 41 | 42 | 36 r
Vrumaa r 733 r 44 | 70 | 186 | 123 | 65 | 104 r 11 | 18 | 26 | 27 | 30 | 29 r
########################Z#########Z#########L#########L#########L#########L#########L#########Z#########L#########L#########L#########L#########L#########
Tõstad faili Excelisse nii nagu on. Siis võtad esimese veeru aktiivseks ja Data alt Text to columns. Tüübiks paned Delimited ja järgmises aknad määrad Delimiteriks r tähe. Siis võtad aktiivseks selle veeru, kus ülejäänud kraam ja kordad tegevust, Delimiteriks seekord |.
Ok. Sain asja loetavale kujule. Nüüd järgmine probleem. kaustas on ~20 prn faili. Vaja kõigile scripti rakendada ja pärast salvestada exeli failideks.
Kuidas see süsteem põhimõtselt peaks välja nägema?
1) Avatakse fail, tehakse toiminud ja salvestatakse uue nimega.
2) Avatakse kõik failid korraga ?
Või on mõni parem võimalus veel-.
J
Kas ei oleks mõistlikum uurida, milleks see süsteem võimeline on, mis neid prn faile genereerib?
Äkki saaks sealt andmed kohe kuidagi mõistlikumalt kätte?
See, mis sa siin näitasid - see on porno ja nii andmeid ei töödelda!
Nii et on tegemist arhiivis olevate failide konvertimisega kaasaegsemale kujule?
Kui neid on palju, siis oleks otstarbekas skript valmis kribada, mis töö regulaaravaldiste abil automaatselt ära teeb.
Kui on tegemist Windowsi süsteemiga ja regulaaravaldised pole otse kasutatavad, on abiks Cygwin - võimaldab bash skripte jooksutada, regulaaravaldisi ja muid mugavusi kasutada. _________________ Tee inimesele lõke ja tal on soe üheks päevaks, pista ta põlema ja tal on soe elu lõpuni. (Terry Pratchett)
e.k spikker: muhk on kumer, lohk on nõgus.
Nagu Dogbert ütles, siis ainuke mõistlik lahendus on kirjutada mingi programm, mis selle töö ära teeb. Selline programm peaks koosnema kahest osast:
* Esiteks programm, mis võtab võtab ühe selles imelikus formaadis faili ja konverteerib selle teise formaati (näiteks cvs-i).
* Teiseks on tarvis seda esimest programmi lihtsalt jooksutada kõigi su failide peal. Selleks piisab mõnest lühikesest skriptist kas siis Dogberti pakutud CygWinis või näiteks Windowsi PowerShellis.
Kuid endiselt on õhus küsimused, millele sa vastanud pole...
Kas sa siis ikkagi oskad programmeerida või mitte. Arvestades seda, et sa ei pöördunud oma probleemiga kohe programmeerimise foorumisse, siis ma oletaks, et eriti ei oska. Samas mainisid sa vahepeal, et said asja loetavale kujule ja tahad nüüd skripti rakendada kõigile kaustas olevatele failidele - selle järgi ma nagu oletaks, et sa juba kirjutasidki mingi skripti. Võta nüüd kinni... _________________ Mõistus otsas? Pane pinusse...
Proged oskan.
Mõtlesin natuke ise. Idee on selline, et tuleb vba script(macro).
Kuna failid on kataloogides, tavaliselt ~20 faili ühes kataloogis.
Algul teeb masiivi katloogis leiduvatest prn failidest. Seejärel avab faili, paigutab andmed excelisse. Salvestab exeli failiks. Lõpuks sulgeb ja võtab järgmisse.
Ehk igas kataloogis hakan käsitsi käivitama scripti.
Kuidas tundub?
Kui sul neid katalooge on palju, siis on see ju ikka suht tüütu tegevus või mis. Kindlasti saaks seda asja ka katalooge mööda käima õpetada. _________________ Mõistus otsas? Pane pinusse...
Väike mõistujutt.
Kunagi oli keegi mitte eriti tark inimene, kes leidis, et just sellisel kujul on tore andmeid säilitada (tegemist on trükivormiga - eraldi andmete säilitamise peale ei mõeldudki). Nüüd ollakse nende andmetega hädas, sest nad ei ole mõistlikult töödeldavad. Nii pannaksegi andmeid töötlema usin noor, kellele antakse ülesandeks andmed ühe suletud süsteemi poolt toetatavasse formaati panna.
X aasta pärast ollakse hädas, sest andmed on formaadis, mida enam keegi ei kasuta ja mille kohta puudub ka täpne avatud dokumentatsioon. Palgatakse jälle noor, kes hakkab andmeid töötlema, et neid panna formaati Y.
Ehk siis - on märksa paremaid formaate andmete säilitamiseks, eriti juhul, kui andmed peaksid aastakümneid säilima. Mõnda neist on võimalik ka Exceliga avada.
Mina olen igatahes päris mures, sest nii mõneski ettevõttes on personaliosakond kokkuhoiu nimel loobunud vanadest perfokaartidest ja kogu arvestus käib elektrooniliselt. Jääb ainult loota, et vahendeid uuendades ei pea hüüatama "ah, ei saa aru, mis seal vanas baasis on - teeme uue puhtalt lehelt". Töötajate andmeid tuleb nimelt päris kaua säilitada.
Ega excel fail ei ole tõepoolest õige formaat andmete säilitamiseks, jutt jumala õige! _________________ Tee inimesele lõke ja tal on soe üheks päevaks, pista ta põlema ja tal on soe elu lõpuni. (Terry Pratchett)
e.k spikker: muhk on kumer, lohk on nõgus.
Nii ärge kritiseeriga formaati, seda lihtne teha. Pakkuge parem välja. Ka minu ülatus oli suur, et andmeid nii hoidakse. Eelmine inimene oli enne mind jõudnud nii kaugele,
et kirjutas mingi scripti mis tõstis kõik ~3000 faili ühte katloogi. Ühesõnaga tegi asja veel hullemaks, lõhkus struktuuri. Õnneks jäätis prn failid alles.
Andmed läksid excelis esimesse veergu. Siis käsiti minul neid faile sorteerima hakata aastata järgi ja esimesest veerust andmeid laial tõstma.
Seda scripti mina enda silmaga näinud ei ole. Tal vist häbi selle pärast. Kõrgelt haritud inimene. Ok see selleks. Kataloogide mööda võib muidugi käima panna. See eriti tööd ei lisa.
Natuke sobrades ma leidsin mõned prn failid mis olid hoopis kooloniga eraldatud. Mõistlik siis vast kõik kataloogid käsitsi läbi käia. Lõpuks peaks minema kogu värk exceli pivot'itess. See juba tulevik.
Kas andmed on igas PRN failis samal kujul ja sama asja kohta (st. päis ja esimene veerg ühesugused)? Kui nii, siis üpris lihtsakoelise VBA jupiga on võimalik nad ühtsele CSV kujule viia, mida söövad kõik arvestatavad arvutusprogrammid.
Private Sub CommandButton1_Click()
'Sheet4.UsedRange.Clear '' puhastus
'teelist ("C:\WINNT\Profiles\andresa\Desktop\H96D1") 'folderi sisust teeb listi ja kirjutab tabelisse
i = 1 'a1:a..n failide nimed ja asukohad
Do Until IsEmpty(Cells(i, 1)) = True
Nüüd olen natuke hädas. Esimine asi. Igakord kui ma exceliga prn faili avan, annab hoiatuse. Kas oled ikka kindel ja niii. Kuidas seda ära saab jätta.
Vea teda pildis. Kahju kui koug värk selle taha jääb
Katsu Workbooks.OpenText asemel kasutada tavalisi VBA sisend-väjund funktsioone. Ilmselt on parem kirjutada selleks eraldi funktsioon, näiteks midagi sellist:
vb:
Function GetFileContents(FileName AsString)AsString
Application.DisplayAlerts = False
Kas see ei võta kisa vähemaks?
Suurepärane! Tänan
Mille poolest on tavaline VBA sisend-väljund f parem kui Workbooks.opentext?
2korda2 kirjutas:
Väike mõistujutt.
X aasta pärast ollakse hädas, sest andmed on formaadis, mida enam keegi ei kasuta ja mille kohta puudub ka täpne avatud dokumentatsioon. Palgatakse jälle noor, kes hakkab andmeid töötlema, et neid panna formaati Y.
Ehk siis - on märksa paremaid formaate andmete säilitamiseks, eriti juhul, kui andmed peaksid aastakümneid säilima. Mõnda neist on võimalik ka Exceliga avada.
Tõesti kardad, et exceli tabelist ei saa andmeid mõne aja pärst kätte? Alati saab ju vanema office tõmmata, need ei kao kuhugi ma arvan.
Missugune dokumentatsioon peaks tabelite kohta olema? Paku palun parem formaat välja siis
Mille poolest on tavaline VBA sisend-väljund parem kui Workbooks.opentext?
See rohkem maitse asi. Kui Workbooks.opentext sinu jaoks töötab, siis lase edasi. Ma ise eelistaks andmed mällu lugeda, neid seal töödelda ja alles seejärel Exceli töölehele kirjutada. Esimeses etapis on sul ju tarvis töödelda failist loetud ridu - Exceli tabelilahtrite sellesse segamine tundub mu meelest üleliigne. Aga noh, samas kui see minu teha oleks, siis ma ei teeks seda asja üldse Exceliga.
geek kirjutas:
Tõesti kardad, et exceli tabelist ei saa andmeid mõne aja pärst kätte? Alati saab ju vanema office tõmmata, need ei kao kuhugi ma arvan.
Missugune dokumentatsioon peaks tabelite kohta olema? Paku palun parem formaat välja siis
Ma arvan, et siin oleneb siiski palju antud juhtumi spetsiifikast. Me siin oleme näinud vaid ühte su PRN faili. Võibolla on täiesti mõeldamatu neid faile CSV vms lihtsamale kujule konverteerida. Palju oleneb sellest, milleks neid andmeid kasutada plaanitakse. Täiesti võimalik, et Excel ongi kõige parem lahendus nende andmete hoidmiseks. Aga võibolla hoopis kõige hullem variant. Laiemat pilti oleks tarvis kogu sellest asjast, et otsustada.
Peaasi on, et sa hoiad ka need tekstifailid alles. _________________ Mõistus otsas? Pane pinusse...
Tõesti kardad, et exceli tabelist ei saa andmeid mõne aja pärst kätte? Alati saab ju vanema office tõmmata, need ei kao kuhugi ma arvan.
Missugune dokumentatsioon peaks tabelite kohta olema? Paku palun parem formaat välja siis
Kujuta ette aastat 2020.
Antud olukorda silmas pidades on positiivne, kui kontoris on järgmine seis: kõigil kasutajatel on 64-bit Windows 10, millel installeeritud Office 14 (sest 13 jääb vahele ). Eriti heal juhul on MS suutnud tagada ühilduvuse Office2005 tasemel failidega ja andmed saab kätte (pärast kümnekordset hoiatust, et formaadid ei pruugi sobida jms). Ainsaks probleemiks jääb see, et Excel 14 on juba sisuliselt tehisintellekti tasemel ja teisendab sujuvalt kõik arvulised väärtused kuupäevadeks (või vastupidi), nagu heaks arvab. Et seda vältida, tuleb läbi X menüü anda kolm kinnitust, et sa ei taha selliseid "automatiseeritud tööd hõlbustavaid abivahendeid" kasutada.
Kui aga peaks minema natuke teist teed: kontoris on kõigil kasutajatel Eesti-Linux 2.0 (riigipoolse finantseerimisega tehtud vabalt jagatav ja riigiasutustele kohustuslik distributsioon) millel jooksutakse Eesti-OO.o (sama lugu). Kuidas nüüd tundub võimalus, et saadakse andmed sujuvalt kätte Excel 2005 formaadist?
Vabu formaate tegelikult on. Siin olevasse ritta julgeks ma pakkuda (kui mainitutest ükski ei sobi) ka TAB-delimited variandi. Lisaprobleemiks loomulikult kodeering (nagu näitefailis näha, siis sellega juba on probleem). Kõikide probleemide vältimiseks oleks muidugi parim, kui saaks kohe andmed viisakasse andmebaasi.
Ma olen tööalaselt andmebaaside vahel andmeid liigutanud aastast 1997 ja näinud selle aja jooksul piisavalt vaeva, et igasugu fekaalist kukleid vorpida. See ka põhjus, miks torkab valusalt, kui näen mõnd analoogset ohuallikat.
Niimoodi kunagi neid DOS-i andmebaasi tabeleid ja igasugu aruandeid printerile saadeti ja tekstifaili salvestati.
Raamatupidamisprogrammide väljundid olid kõik enamasti sellised.
Lisan teile tudvumiseks mõned realsed failid. Olen kohanud ka kooloniga eraldatud faile. Ühesõnaga kohtuvalt suur kaos.
Manuse lõpust pdf ära korjata!
Ma tunnen sulle südamest kaasa. Ma ei oska isegi nii suurt summat öelda, mis paeluks mind piisavalt, et sellist tööd ette võtta
OK, tegelt võrduks see summa tõenäoliselt X praktikandi Y kuupalgaga, millele lisanduks summa Z. Kus X ja Y kombineerides saaks vajaliku töömahu, et kogu inf käsitsi kuhugile normaalselt uuesti sisestada ja Z tähistab minu isiklikku valuraha sellise jamaga tegelemiseks.
Kribasin-kopipeistisin oma vba skriptidest mingi käkerdise kokku. Näidisfailide puhul andis tulemusi. Kas just häid, aga tulemusi ikkagi. Mõte siis selles, et annad kausta ette ja asi tekitab iga faili kohta .csv lõpuga vaste, mida Exceliga seejärel tarvitada annab. Käsitööst see ei päästa, aga ehk on abiks.
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.