Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA EXCEL - Tworzenei makra do wczytywania części danych z pliku .txt

AdamGrzeszczak 01 Sie 2013 11:21 3549 9
  • #1 01 Sie 2013 11:21
    AdamGrzeszczak
    Poziom 6  

    Witam,
    mam problem, mianowicie potrzebuje stworzyć makro które wczyta mi dane z pliku .txt z takim oto przykładowym układem:

    2011-01-12 00:00:00.000|bm2csrin|31310
    2011-01-13 00:00:00.000|bm2csrin|24610
    2011-01-14 00:00:00.000|bm2csrin|231984
    2011-01-12 00:00:00.000|auto_sql|596981
    2011-01-13 00:00:00.000|auto_sql|49033
    2011-01-14 00:00:00.000|auto_sql|48506
    2011-01-12 00:00:00.000|partnerzy|84868
    2011-01-13 00:00:00.000|partnerzy|7438
    2011-01-14 00:00:00.000|partnerzy|165726

    Tylko haczyk jest taki że chodzi mi tylko o dane liczbowe na końcu wiersza a wartość z |xxx| powinna być nazwą kolumny/arkusza tak by dane po różnych znacznikach się nie mieszały... (wczytywane były do innych kolumn/arkuszy)

    Nie wiem jak się za to zabrać bo w pliku źródłowym nie ma nawet znaków rozdzielający kolumny w wierszach.

    Byłbym bardzo wdzięczny za pomoc.

    0 9
  • Pomocny post
    #2 01 Sie 2013 12:58
    PRL
    Poziom 33  

    Może ktoś z Kolegów znajdzie szybsze rozwiązanie, ale to też działa:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #3 02 Sie 2013 09:34
    AdamGrzeszczak
    Poziom 6  

    Super, działa ale od czasu do czasu w pliku źródłowym mam puste wiersze i działa dopiero po usunięciu ich wszystkich tak samo w przypadku gdy po "|" nie ma znaków... mogę liczyć na jakąś prostą modyfikacje Twojego kodu z obsługą błędów?

    edit: I jeszcze jedno: jak mogę wpleść w to aplikację do wyboru pliku z okna dialogowego?
    Mam takie cudo:

    "Application.GetOpenFileName
    Application.GetSaveFileName"

    i nie wiem pod jaką nazwą zapisywany jest plik który wybiorę żeby podmienić go ze ścieżką pliku w wyrażeniu
    'plik = "C:\\...\"

    0
  • Pomocny post
    #4 02 Sie 2013 10:25
    PRL
    Poziom 33  

    W miarę odporne na zmienna strukturę pliku wejściowego:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Sprawdź...

    Dodano po 18 [minuty]:

    Zmien OR na:
    If p > 0 And d > 0 Then

    Dodano po 5 [minuty]:

    Masz z opisem, to będziesz w stanie sam poprzerabiać:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #5 02 Sie 2013 10:27
    AdamGrzeszczak
    Poziom 6  

    O teraz działa praktycznie w każdym wypadku!
    Tylko gdybyś mógł jeszcze włączyć opcję obsługi przypadku w którym w wierszu nie ma nic innego tylko "|".
    Program do raportów po tytułach części raportu wkleja jeden wiersz w którym jest ten jeden znak i to wykrzacza...


    i gdybyś mógł mi pomóc z tym oknem dialogowym..

    0
  • #6 02 Sie 2013 10:30
    PRL
    Poziom 33  

    Cytat:
    Tylko gdybyś mógł jeszcze włączyć opcję obsługi przypadku w którym w wierszu nie ma nic innego tylko "|".


    Jeżeli jest tylko jeden znak '|', to będzie działać w tej wersji.
    Pamiętaj, że miałeś zmienić OR na AND. Ale jak wkleisz moją ostatnią wersję z opisami, to już będzie ok.

    Jakim oknem dialogowym?
    Czegoś nie doczytałem?;)

    P.S. Nie klikaj za często w pomógł, bo dostaniesz opieprz.:)

    0
  • #7 02 Sie 2013 10:56
    AdamGrzeszczak
    Poziom 6  

    tutu :)

    AdamGrzeszczak napisał:


    edit: I jeszcze jedno: jak mogę wpleść w to aplikację do wyboru pliku z okna dialogowego?
    Mam takie cudo:

    "Application.GetOpenFileName
    Application.GetSaveFileName"

    i nie wiem pod jaką nazwą zapisywany jest plik który wybiorę żeby podmienić go ze ścieżką pliku w wyrażeniu
    'plik = "C:\\...\"


    Dobra ja już nie wiem o co chodzi... raz mi nie przechodzi aż do momentu w którym usunę wszystkie inne wiersze niż czyste dane, innym razem mogę mieć napchane pustych wierszy i obcych znaków ile wlezie i działa. NIE CZAJE:/

    Spróbuj z tym plikiem...

    Klikam bo pomagasz xD

    0
  • #8 02 Sie 2013 10:58
    adamas_nt
    Moderator Programowanie

    :arrow: PRL Nie prościej byłoby Split'em? Zobacz taki test

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Autorowi, zdaje się, chodzi o
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #9 02 Sie 2013 11:12
    PRL
    Poziom 33  

    Adamas, tak jakoś zacząłem i zostawiłem.

    A do autora:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Tak to jest, jak z pliku 'śmiecia' ma się coś wyłuskać...

    0
  • #10 02 Sie 2013 11:21
    AdamGrzeszczak
    Poziom 6  

    PRL Dzięki wielkie, dokładnie jest tak jak mówisz ale od tej pory nie trzeba będzie tego robić ręcznie :)

    Dzięki wielkie za pomoc i zamykam temat ^^

    0