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 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 powrotem Dlatego pomyślałem o kalkulatorze pól. |