Forum QGIS
Operacje na danych tekstowych - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html)
+--- Wątek: Operacje na danych tekstowych (/thread-1207.html)



Operacje na danych tekstowych - brylu - 17-04-2015

Mam pewien problem dotyczący danych tekstowych. W tabeli atrybutów mam kolumnę zawierającą numery działek zgodne z TERYTem dla województwa. pierwszych kilkanaście znaków zawiera numer województwa, powiatu, gminy, rodzaj gminy, numer obrębu. To są wartości które mają stałą liczbę znaków. Dalej jest numer działki. I tu pojawia się problem, ponieważ numer działki jest czasem poprzedzony innym tekstem. Wygląda to tak:
przykładowe działki zapisane standardowo:
140704_2.0004.175/1
140704_2.0004.29/1
140704_2.0004.198
przykładowe działki zapisane niestandardowo:
140704_2.0003.AR_22.257/1
140704_2.0003.AR_3.128
140704_2.0003.AR_2.224

Potrzebuję do oddzielnej kolumny wyciągnąć tekst zaczynający się od "AR" do kropki. Problem polega na tym, że ten tekst może mieć 4 bądź 5 znaków długości. Próbowałem w kalkulatorze pól zastosować coś takiego:

CASE
WHEN regexp_match( "nazwa kolumny teryt" , 'AR') =1
THEN substr( "nazwa kolumny teryt", 15, strpos( "nazwa kolumny teryt", '.',15)-15)
ELSE 'brak'
END

Niestety w QGIS prawdopodobnie funkcja strpos nie może zawierać trzeciego argumentu oznaczającego numer znaku od którego ma zacząć przeszukiwanie. Może ktoś z Was ma jakiś pomysł?...


RE: Operacje na danych tekstowych - [wiki] - 18-04-2015

Najszybsza wersja (taka na rympał troszkę) - edytor tekstowy i zamiana ciągu '.' na tab'.
Wtedy dostaniesz osobnych kilka kolumn z poszczególnymi wartościami.

Kopiujesz kolumnę z identyfikatorami działek 2x (bo po czymś trzeba plik wgrać z powrotem do bazy).
Kopiujesz tabelę do edytora (funkcją 'kopiuj do excela').
Obrabiasz jak potrzeba.
uwaga: jeżeli edytujesz numery działek w excelu to zwracaj uwagę na format nowej kolumny, drań lubi nieodwracalnie podmieniać niektóre numery działek na daty.
Podpinasz tabelę po polu z pełnym identyfikatorem działki.


RE: Operacje na danych tekstowych - brylu - 18-04-2015

Akcja z zewnętrznymi edytorami raczej odpada bo w sumie mam ponad 4 000 000 rekordów Smile Na próbce danych zrobiłem sobie to funkcjami w excelu i wszystko działa. Niestety excel ma ograniczenie co do ilości rekordów w pliku (chyba kilkadziesiąt tysięcy) więc teraz musiałbym pociąć tego dbfa na nie wiem ile części, wyciągnąć co potrzeba i skleić wszystko z powrotemSmile Dlatego pomyślałem o kalkulatorze pól.