Tema: Re: Text wraperis VBA
Autorius: Jornada Del Muerto
Data: 2011-01-26 15:22:55
O cia per ka skaitai? kaip faila ? galima ir kaip duomenu baze: http://www.connectionstrings.com/textfile jei VB tai cia manau ODBC: http://www.connectionstrings.com/textfile#p87

Ir cia ta prasme per ilgu eiluciu nesupranta ar ten duomenyse enter kodu prideliota ? jei duomenyse enteriu yra tai duomenis reiketu bent i kabutes kist, pvz:

"laukas a"    "laukas b"    "laukas c
blabla
blabla"    "laukas d"
"laukas a1"    "laukas b1" ir t.t...

Jei per ODBC usage toks daugmaz:

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

cn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\txtFilesFolder\;Extensions=asc,csv,tab,txt;" <<=== NURODOMA BUTENT KATALOGAS O NE FAILAS, cia dazniausia daroma programmeriu klaida

With rs
    .ActiveConnection = cn
    .CursorLocation = adUseServer

    .Source = "SELECT * FROM tekstinio_failo_vardas.txt"
    .Open

    While (Not .EOF)
        ' Ciklas pereinantis visus irasus

        variable = .Fields("fieldName") ' Do whatever you need to the data

        arba

        variable = .Fields(0)     ' rasai stulpelio numeri pradedant nuo 0
        variable = .Fields(1) 
    End While


    .Close

End With

Set rs = Nothing
Set cn = Nothing

Tiesa tas connection string man rodos dar gali turet papildomu nustatymu, koks txt failo delimiter ir t.t... taciau galima ir tame kataloge kur stovi tekstinis failas ar failai ideti ini failus kurie nurodo nustatymus http://www.connectionstrings.com/Providers/microsoft-text-odbc-driver


    Praktiskai visa ideologija darbo su tekstiniais failais kaip su duombaze yra labai elementari, nurodomi ivairus nustatymai arba connection string arba ini failuose, ir tada connectinamasi su connection prie katalogo o poto gali selectus ar dar kazka daryti, man rodos net joinus vieno failo su kitu, tipo: Select * from textfile1.txt Inner Join textfile2.txt blabla vat tik sintakse pasiaiskyt reikia visko ;) retai kas tai naudoja.

    O jeigu nenori db naudoti tai skaityk pats kaip teksta, kad ir po 1 baita o ne eilutemis ir nagrinek skyriklius bei kitas eilutes ir krauk viska i kazkur.

JDM
Freelancer Developer
http://www.lythum.lt




"Zv" <zvaigzdzius@gmail.com> wrote in message news:ihp61d$lha$1@trimpas.omnitel.net...
> Sveiki,
> yra csv failas kurio formatas toks:
> 
> Failo pradzia
> 
> Headeris1;
> Headeris2;
> Headeris3;
> 
> Stulpelio_pavadinimas1;Stulpelio_pavadinimas2;Stulpelio_pavadinimas3;Stulpelio_pavadinimas_n;
> Reiksme;Reiksme;Reiksme;Reiksme_n;
> Reiksme;Reiksme;Reiksme;Reiksme_n;
> 
> Reiksme;Reiksme;Rei(bendras eilutes ilgis 600 simboliu)
> ksme;Reiskme_n;
> Reiksme;Reiksme;Reiksme;Reiksme_n;
> Reiksme;Reiksme;Reiksme;Reiksme_n;
> 
> 
> Failo pabaiga
> 
> Eilutes atskirtos CRLF
> 
> Problema ta, kad jei simboliu skaicius eiluteje virsyja 600 simboliu, 
> eilutes pabaigoje rasomas CRLF, o sekancioje eiluteje surasomi pries tai 
> esanciai eilutei priklausantys duomenys, kuriu pabaigoje irgi yra CRLF. 
> Sioje nukeltoje eiluteje simboliu nebuna daugiau nei 100.
> 
> Reikia kazkoki text wraperi susikurti, kuris sujungtu eilutes, kurios 
> yra taip "dirbtinai" nukeltos.
> 
> Kartu tarp duomenu eiluciu yra tusciu eiluciu, kuriu taip pat reikia 
> atsikratyti, bet cia manau bus lengviau isspresti.
> 
> Duomenys bus apdorojami vartotojo kompiuteryje Windows XP su Microsoft 
> Excel 2003.
> 
> Gal kas uzvestu ant kelio kaip su VBA toki text wraperi susikurpti?
> 
> Zv
>