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

Problem sa Unicodom

[es] :: Visual Basic 6 :: Problem sa Unicodom

[ Pregleda: 2383 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

fpedja
Beograd

Član broj: 145092
Poruke: 76
*.xdsl.beograd.com.



Profil

icon Problem sa Unicodom23.04.2008. u 15:05 - pre 194 meseci
Code:


    Dim ts As TextStream
    Set ts = fso.OpenTextFile(putFajl)

    While Not ts.AtEndOfStream
        sLine = ts.ReadLine
        mystr = Split(StrConv(sLine, vbFromUnicode), "$")    '****************
     
        upit = "INSERT INTO RegistarPG(SifraDK, Naziv, Sediste, Adresa, PIB, JMBG, DS, PF, TekuciRacun, BrojPG )" _
                 & "VALUES ('" & mystr(0) & "','" & mystr(1) & "','" & mystr(2) & "','" & mystr(3) & "','" & mystr(4) & "','" _
                                    & mystr(5) & "','" & mystr(6) & "','" & mystr(7) & "','" & mystr(8) & "','" & mystr(9) & "')"

        ocon.Execute upit

    Wend


Pozdrav,
Da ne duzim mnogo, zasto ovo radi dobro samo kod citanja prvog reda u fajlu a kod ostalih vraca u mystr bezveze znakove?? Inace, fajl je .csv, sLine je string, mystr je niz tipa string, ocon je ADODB.Connection. Gde gresim .
 
Odgovor na temu

galahad
Slobodan Todorov
Radio-televizija Vojvodine,
Jack-Of-All-IT-Trades, Web redakcija
Novi Sad

Član broj: 20613
Poruke: 146
*.ADSL.panline.net.

Jabber: galahad@elitesecurity.org
ICQ: 52020296
Sajt: www.todorowww.net


+4 Profil

icon Re: Problem sa Unicodom23.04.2008. u 16:50 - pre 194 meseci
Ajde sad malo pomotji, koji VB koristish, da li je VB6, VBScript, VBA u nekom od Office proizvoda?

I zashto bre koristish FileSystemObject, kad VB ima savrsheno funkcionalan file handling sistem? Mogao bi i dati deo tog CSV fajla, mozhda je u njemu neka greshka? Naravno, osetljive podatke promeni nekim bezveznim...
- SKRati link - JaZaKraljevo.rs -

"I have never let my schooling interfere with my education." - Mark Twain
 
Odgovor na temu

fpedja
Beograd

Član broj: 145092
Poruke: 76
*.vdial.verat.net.



Profil

icon Re: Problem sa Unicodom23.04.2008. u 19:33 - pre 194 meseci
Koristim VB6. Primer sa FileSystemObject sam ostavio zato sto je poslednji sa cime sam pokusao. Mislim da nije u tome problem. Posto, kad odradim istu stvar u VB.Net-u, radi sve ok, pa sam zakljucio da je problem u konverziji. Koliko znam .net radi sa Unicodom a vb6 ne vec mora da se konvertuje. Pokusavao sam sa nekim konverzijama ali nije uspelo. Evo i delic fajla. Inace fajl je ogroman, preko 400.000 redova (ako ti nesto znaci taj podatak).
Prikačeni fajlovi
 
Odgovor na temu

galahad
Slobodan Todorov
Radio-televizija Vojvodine,
Jack-Of-All-IT-Trades, Web redakcija
Novi Sad

Član broj: 20613
Poruke: 146
*.ADSL.panline.net.

Jabber: galahad@elitesecurity.org
ICQ: 52020296
Sajt: www.todorowww.net


+4 Profil

icon Re: Problem sa Unicodom23.04.2008. u 23:34 - pre 194 meseci
I VB6 je interno Unicode, samo su mu kontrole, tipa TextBox, Label i slichno, ANSI... Malo chudno, ali tako je... Tako da faktichki, mozhesh da pokushash bez koverzije, vetj da odmah upisujesh u recordset... Kod kutje nemam VB, na Linuxu sam, ali tju ujutru na poslu malo prchnuti pa videti u chemu je shtos... Broj podataka ne bi trebao da ima veze sa tim...
- SKRati link - JaZaKraljevo.rs -

"I have never let my schooling interfere with my education." - Mark Twain
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
91.150.125.*



+1 Profil

icon Re: Problem sa Unicodom24.04.2008. u 02:18 - pre 194 meseci
Nesto se razmisljam, ako ti prvi red rastumaci ok, a tek posle toga se zbuni, probaj da dodas recimo neki znak kao delimiter za kraj reda. Da nije problem da ti umesto Carrier Return + LineFeed vraca nesto drugo?
 
Odgovor na temu

fpedja
Beograd

Član broj: 145092
Poruke: 76
*.xdsl.beograd.com.



Profil

icon Re: Problem sa Unicodom24.04.2008. u 08:08 - pre 194 meseci
To su neki moji zaključci. Kad izbacim strconv, čita mi iz fajla ali sa nekom konverzijom koja ne znam šta je, ali definitivno nije Unicod, ne znam šta uradi sa originalnim tekstom. Cr+Lf jeste na kraju jer sam pokušao da smestim u niz sa split gde mi je delimiter vbCrLf. E, sad, jedino cu još probati da to zaobiđem pa da fajl binarno pročitam, pa da izvršim konverziju. Još mi jedino to pada na pamet. Ali mi opet ostaje dilema zašto posle prvog reda?? Mada, kad uradim strconv, taj prvi red na mestu prvog znaka stavi "?". Ne znam da li mu to nije neka oznaka za neku konverziju??
 
Odgovor na temu

galahad
Slobodan Todorov
Radio-televizija Vojvodine,
Jack-Of-All-IT-Trades, Web redakcija
Novi Sad

Član broj: 20613
Poruke: 146
*.adsl-2.sezampro.yu.

Jabber: galahad@elitesecurity.org
ICQ: 52020296
Sajt: www.todorowww.net


+4 Profil

icon Re: Problem sa Unicodom24.04.2008. u 10:12 - pre 194 meseci
Sad bash neshto gledam u nekom editoru, zapisano je kao UTF-16 Little Endian... I to ti pravi problem u VB chini mi se... Kada snimim taj tvoj fajl kao UTF-8, VB ga lepo prochita, i sve zapishem u fajl primer.t, i sachuva UTF-8 format... Ali kad je u pitanju UTF-16 LE, dodje do zeza... Sachuva on UTF-16 LE, ali je totalno nechitljiv... Probaj dakle da exportujesh ili konvertujesh taj UTF-16LE u UTF-8, i VB tje ti raditi kako treba, bar bi trebalo...

Onaj znak pitanja u prvom redu je Byte Order Mark, 0xFEFF, odnosno, u nashem sluchaju 0xFFFE jer je u pitanju Little Endian... Chini mi se da VB ne konta UTF-16, samo UTF-8, i tu nastaje zez... Mozhesh ti da napishesh svoju rutinu za chitanje UTF-16 fajlova, binarno uchitavash, pazish na byte order (LE ili BE), i onda muljash... Ali to je previshe posla... Dakle, probaj prvo da taj CSV kovertujesh u UTF-8, tj. exportujesh ga kao takvog, i onda propusti kroz tvoj program...

Mozhda kad bi na pochetak svakog reda stavljao BOM, bi radilo i sa UTF-16 LE, probaj i to...

EDIT: Sad mi je palo na pamet, zashto ti stavlja "?"... Zato shto ne konta pravilno byte order mark... Taj karakter inache ne treba da se vidi uopshte, ochigledno strconv() ne mozhe da barata sa UTF koji nije UTF-8...

EDIT #2: Evo linka za jedan sajt, koji ima neke VB funkcije za UTF-8 i UTF-16, kao i Unicode: http://www.vovisoft.com/unicode/UniFunctions.htm Mozhda tje ti pomotji, proveri...

Ne pitah, iz chega exportujesh taj CSV? Excel, Access, MySQL, neshto chetvrto?

[Ovu poruku je menjao galahad dana 24.04.2008. u 11:33 GMT+1]
- SKRati link - JaZaKraljevo.rs -

"I have never let my schooling interfere with my education." - Mark Twain
 
Odgovor na temu

fpedja
Beograd

Član broj: 145092
Poruke: 76
*.xdsl.beograd.com.



Profil

icon Re: Problem sa Unicodom24.04.2008. u 11:43 - pre 194 meseci
Taj fajl dobijam. F-ja mi deluje ok, mislim može da pomogne. Pokusacu.

EDIT: Rešio sam problem, na, možda, ne baš lep način, ali funkcioniše. Za svaki naredni red, posle prvog dodam "?" i konvertujem sa strconv, i on to odradi dobro. Zatim odsečem prvi znak i radim dalje. Inače, taj fajl generiše SQL2000. Stavi na početku fajla marker "?". Kad izvršim čitanje celog fajla binarno i smestim ga u jednu promenljivu, uradi dobro, ali kad čitam red po red, nema marker na početku svakog reda pa ne može ni da izvrši konverziju dobro. E, sad, ne mogu da čitam ceo fajl jer može biti isuviše veliki pa može doći do "out of memory" !! Ne bi trebalo, ali može da se desi. U svakom slučaju hvala za pomoć, f-je sa linka će mi dobro doći. Pozdrav!

[Ovu poruku je menjao fpedja dana 24.04.2008. u 13:14 GMT+1]

[Ovu poruku je menjao fpedja dana 24.04.2008. u 13:18 GMT+1]
 
Odgovor na temu

[es] :: Visual Basic 6 :: Problem sa Unicodom

[ Pregleda: 2383 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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