| Termin | Definicja |
|---|---|
| Separator pól | Separator pól to znak rozdzielający wartości w pliku tekstowym, np. przecinek lub tabulator. Separator pól w plikach tekstowychSeparator pól jest umownym znakiem albo ciągiem znaków, który pozwala rozpoznać granice między kolejnymi wartościami zapisanymi w jednym wierszu. Dzięki temu pozornie zwykły tekst może zostać odczytany jako uporządkowana tabela. Wiersz może zawierać na przykład identyfikator produktu, nazwę, liczbę sztuk i datę, a separator pól wskazuje, gdzie kończy się jedna informacja i zaczyna następna. Sam znak rozdzielający nie jest zazwyczaj częścią danych, lecz pełni funkcję technicznego oznaczenia struktury. W praktyce spotyka się pliki CSV, TSV oraz wiele własnych formatów eksportu. W pliku CSV często stosowany jest przecinek, chociaż w polskich programach biurowych i systemach lokalizowanych dla języków europejskich często używany bywa średnik. W pliku TSV wykorzystuje się tabulator, czyli znak niewidoczny podczas zwykłego oglądania tekstu. Możliwe jest także stosowanie pionowej kreski, dwukropka, średnika, spacji albo specjalnego ciągu znaków. O wyborze nie decyduje wygląd separatora, lecz zgodność ustawień programu zapisującego i programu odczytującego dane. Przykładowy zapis może wyglądać tak: Separator pól a format danych i kodowanieSeparator pól należy odróżnić od innych elementów wpływających na poprawność pliku. Znak rozdzielający określa podział kolumn, natomiast znak końca wiersza wskazuje przejście do kolejnego rekordu. Osobną kwestią jest kodowanie znaków, które decyduje o tym, czy zostaną prawidłowo wyświetlone polskie litery, symbole walutowe oraz znaki używane w nazwach. Plik może więc mieć prawidłowy separator, ale nadal wyglądać na uszkodzony z powodu niezgodnego kodowania. Istotne jest również rozpoznanie wartości tekstowych zawierających sam separator. Jeżeli w polu znajduje się przecinek, średnik albo tabulator, zwykle stosuje się cudzysłowy, aby program nie potraktował tego znaku jako końca pola. Przykład Porównując popularne rozwiązania, można wskazać kilka różnic:
Nie istnieje jeden separator odpowiedni dla każdego zastosowania. Wymagane jest sprawdzenie dokumentacji źródłowego programu, ustawień regionalnych oraz sposobu obsługi cudzysłowów i pustych wartości. Przed importem większego zbioru bezpieczne jest wykonanie próby na kilku wierszach. Separator pól przy typowych problemach z importemJednym z częstych objawów nieprawidłowego odczytu jest pojawienie się wszystkich danych w jednej kolumnie. Najczęściej oznacza to, że wybrano inny separator niż ten zapisany w pliku. Możliwa jest także sytuacja odwrotna: pola zostają rozbite na zbyt wiele kolumn, ponieważ znak występujący w opisie został potraktowany jako separator mimo braku prawidłowego ujęcia tekstu w cudzysłowy. Inny problem pojawia się wtedy, gdy część wierszy ma inną liczbę pól. Przyczyną może być dodatkowy średnik w komentarzu, brakujący cudzysłów, niezamknięta wartość tekstowa albo przypadkowe przejście do nowej linii wewnątrz pola. W takiej sytuacji pierwsze rekordy mogą wyglądać poprawnie, a błędy ujawnią się dopiero przy dalszym przetwarzaniu. Program może przesunąć kolejne dane do niewłaściwych kolumn, co utrudnia późniejsze wykrycie pierwotnej przyczyny. Problematyczne bywają też puste pola. Zapis Do diagnostyki przydatne jest otwarcie kopii pliku w edytorze tekstu, w którym można zobaczyć rzeczywiste znaki, a następnie porównanie kilku wierszy. Należy sprawdzić, czy separator pozostaje taki sam w całym pliku, czy każdy rekord kończy się wierszem oraz czy pola zawierające separator są prawidłowo ujęte. Przy plikach z tabulatorami pomocne może być włączenie widoczności znaków specjalnych. Nie powinno się poprawiać oryginału przed zachowaniem kopii, ponieważ mechaniczne zamienienie jednego znaku na inny może uszkodzić wartości tekstowe. Separator pól w codziennej pracy z danymiPrzed zapisaniem lub przesłaniem pliku warto uzgodnić nazwę formatu, separator, kodowanie i sposób oznaczania tekstu. Krótka informacja dołączona do pliku może zawierać na przykład zdanie: „Kolumny rozdzielono średnikiem, tekst ujęto w cudzysłowy, kodowanie ustawiono na UTF-8”. Taki opis ogranicza ryzyko błędów po stronie odbiorcy. Przy cyklicznej wymianie danych dobrze jest utrzymywać stałe reguły, zamiast zmieniać separator zależnie od pojedynczego eksportu. Praktyczne znaczenie ma również kolejność kolumn. Jeżeli w jednym pliku pierwsze pole oznacza numer, a w innym nazwę, sam separator nie rozwiąże problemu. Struktura powinna być opisana przez nagłówki, na przykład Nie należy bez sprawdzenia zamieniać przecinków na kropki ani odwrotnie, ponieważ może to dotyczyć wartości liczbowych, a nie separatora pól. W jednym pliku przecinek może rozdzielać kolumny, w drugim może oznaczać część liczby dziesiętnej. Również data, numer telefonu, kod pocztowy i identyfikator produktu mogą wymagać traktowania jako tekst, aby nie utracić zer początkowych. Separator odpowiada za strukturę, lecz nie określa samodzielnie typu danych. Bezpieczny proces obejmuje eksport niewielkiej próbki, otwarcie jej w docelowym programie, sprawdzenie liczby kolumn, porównanie kilku wartości oraz dopiero późniejsze przetworzenie całego zbioru. Po imporcie warto zweryfikować pierwsze, środkowe i ostatnie rekordy. Jeżeli plik jest używany przez skrypt, należy przetestować także puste pola, znaki diakrytyczne, dłuższe opisy i wartości zawierające separator. Takie przypadki zwykle pokazują problemy, których nie widać w prostym przykładzie. Separator pól i moment zgłoszenia problemuDo serwisu komputerowego warto zgłosić się wtedy, gdy problem z separatorem pól powtarza się w kilku programach, plik zawiera istotne dane, a samodzielna zmiana ustawień prowadzi do utraty kolumn lub zniekształcenia informacji. W Warszawskim Pogotowiu Komputerowym 24/7 można skonsultować działanie komputera, konfigurację aplikacji oraz sposób bezpiecznego otwierania plików tekstowych. Przed przekazaniem urządzenia dobrze jest zachować kopię pliku źródłowego i zanotować, w którym programie występuje błąd. Pomoc techniczna może być potrzebna także wtedy, gdy plik otwiera się poprawnie na jednym komputerze, lecz na innym wszystkie dane trafiają do jednej kolumny, znikają polskie znaki albo liczby są rozpoznawane jako tekst. Przyczyną bywa różna konfiguracja regionalna, odmienne kodowanie, brak właściwego programu lub ustawienia importu. Samo ponowne zapisanie dokumentu nie zawsze rozwiązuje problem, szczególnie gdy wcześniej doszło do nieprawidłowego podziału rekordów. Przy przekazywaniu pliku należy opisać oczekiwany efekt, wskazać program używany do otwierania danych i, jeśli to możliwe, dołączyć małą kopię pozbawioną danych poufnych. Nie powinno się wysyłać haseł, pełnych baz klientów ani innych informacji, które nie są potrzebne do rozpoznania problemu. Wystarczający może być krótki przykładowy plik z kilkoma wierszami, zachowujący ten sam separator, kodowanie i sposób zapisu tekstu. Separator pól jest niewielkim elementem pliku, ale wpływa na cały proces wymiany danych. Prawidłowe rozpoznanie jego rodzaju, obsługa wartości zawierających znaki rozdzielające oraz kontrola kodowania pozwalają uniknąć błędów w arkuszach, programach magazynowych i skryptach. Gdy nie można ustalić, czy problem wynika z pliku, programu czy konfiguracji komputera, uporządkowana diagnostyka pozwala określić źródło nieprawidłowości bez przypadkowego nadpisywania danych. |