vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest wtorek, 14 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Filtrowanie pliku txt


otwartyotwarty rozpoczął: Blaszka_P postów: 4



napisał: Blaszka_P
postów: 112


umieszczony:
31 maja 2011
18:48

  
Witam

Sprawa rozwiązana , źle zadeklarowałem zmienne .Dzięki za podpowiedzi

pozdrawiam
napisał: Blaszka_P
postów: 112


umieszczony:
31 maja 2011
17:25

  
nazwa pliku rozmiar
test.txt 1.29 kB

Witam

Przesyłam plik txt, bo nie mogę sobie poradzić coś nie wychodzi

Pozdrawiam i dzięki
napisał: Trebor
postów: 1209


umieszczony:
31 maja 2011
16:44

  
Jeśli piszesz o kolumnach w pliku tekstowym to zakładam, że istnieje znak który dzieli wiersze na kolumny. Znak taki możesz wykorzystać w funkcji Split, rozkładając wiersz na tablicę, której pierwszy element ma index 0. W ten sposób możesz każdą kolumnę sprawdzić czy odpowiada Twoim wymaganiom.
Jeśli potrzebujesz przykładu zamieść na forum plik tekstowy z fikcyjnymi danymi o prawidłowym separatorze kolumn.
Hej
napisał: Blaszka_P
postów: 112


umieszczony:
31 maja 2011
11:33

  
Witam

Mam mały problem, czy można inaczej zapisać wartość TextToFind = "1,xxx,Dobry"
chodzi mi o to, że w pliku plikwe.txt w kolumnie trzeciej każdy wiersz ma inną wartość od 1-200 .Celem filtru jest żeby wszystkie linie w plikuwe.txt zawierające TextToFind= "1,xxx,Dobry" ale w kolumnie 3 wartość "1-200" i w piątej "Dobry" pomijając kolumnę czwartą , były zapisywane do pliku wynik.txt


Z góry dziękuję za pomoc


Sub Filter()
    On Error Resume Next
    Open ThisWorkbook.Path & "\plikwe.txt" For Input As #1
    Open ThisWorkbook.Path & "\wynik.txt" For Output As #2
    If Err <> 0 Then
        MsgBox "Błąd odczytu lub zapisu."
        Exit Sub
    End If
    TextToFind = "1,xxx,Dobry"
             
    Filtered = 0
    
    
    Do While Not EOF(1)
        Line Input #1, data
        If InStr(3, data, TextToFind) Then
            Filtered = Filtered + 1
        Print #2, data
       End If
        
             
       
          
          Loop
    Close
    MsgBox "Zapisano " & Filtered & " wierszy."
    
End Sub



<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z