diff --git a/Kod%3A-Przetwarzanie-plik%C3%B3w.md b/Kod%3A-Przetwarzanie-plik%C3%B3w.md new file mode 100644 index 0000000..e94d31a --- /dev/null +++ b/Kod%3A-Przetwarzanie-plik%C3%B3w.md @@ -0,0 +1,52 @@ +# Przetwarzanie plików + +Klasa `dataProcess` odpowiedzialna za przetwarzanie plików wejściowych i generowanie plików wyjściowych + +### Główna funkcja klasy (`start`) + +Funkcja ta odpowiedzialna za zainicjowanie kolejnych funkcji w odpowiedniej kolejności oraz zwrócenie informacji o błędach lub pomyślnym wykonaniu polecenia +1. Inicjacja funkcji `__checkIfAtLeastOneInputFileIsFilled` w celu sprawdzenia czy przynajmniej jedno pole plików wejściowych zostało wypełnione +2. Inicjacja funkcji `__checkIfInputFilesIsReadable` w celu sprawdzenia czy pliki wejściowe, do których ścieżki zostały podane, są możliwe do odczytania +3. Inicjacja funkcji `__checkIfInputFilesFormatPresetsExist` w celu sprawdzenia czy format presety, które zostały wybrane, istnieją +4. Inicjacja funkcji `__getData` w celu zebrania danych z plików wejściowych +5. Dla każdego zbioru danych - `for x in data` (dla każdej osoby), inicjacja funkcji `__checkLogin`, `__checkFname`, `__checkLname`, oraz dla uczniów `__checkSchool`, `__checkClass`, w celu sprawdzenia poprawności danych +6. Inicjacja funkcji `__processData` w celu przetworzenia danych w linie gotowe do zapisania w plikach wyjściowych +7. Inicjacja funkcji `__checkIfCreatingOutputFilesIsPossible` w celu sprawdzenia czy możliwe jest utworzenie plików wyjściowych +8. Inicjacja funkcji `__saveData` w celu zapisania danych w plikach wyjściowych +9. Funkcja zwraca listę zawierającą zmienne boolean potwierdzające w którym momencie zakończyło się wykonywanie funkcji (z powodu błędu lub pomyślnego ukończenia operacji) + +### Funkcje sprawdzające istnienie + +- `__checkIfAtLeastOneInputFileIsFilled` - sprawdza czy przynajmniej jedno pole plików wejściowych zostało wypełnione oraz zwraca dane z wypełnionych pól +- `__checkIfInputFilesIsReadable` - sprawdza czy pliki wejściowe są możliwe do odczytania +- `__checkIfInputFilesFormatPresetsExist` - sprawdza czy wybrane format presety istnieją +- `__checkIfCreatingOutputFilesIsPossible` - sprawdza czy utworzenie plików wyjściowych jest możliwe + +### Funkcje sprawdzające poprawność + +Funkcje te sprawdzają poprawność określonych typów danych. + +### Wyodrębnienie danych z plików (`__getData`) + +Funkcja odpowiedzialna jest za wyodrębnienie danych z pliku (`path`) na podstawie określonego format presetu (`format`) + +Dla każdego zbioru ścieżek plików wejściowych i format presetów (`for x in input`): + +1. Pobranie danych z pliku formatu (za pomocą funkcji `FMT.R`) +2. Pobranie zawartości z pliku wyjściowego i podzielenie ich na zbiory danych pojedyńczych osób (`.split(personseparator)`) + +Dla każdego zbioru danych pojedyńczych osób (`for x in file`): + +3. Dzielenie zbioru danych na linie (`x.split(linesSeparator)`) +4. Dla każdej linii: dzielenie danych na pojedyńcze segmenty separatorami z listy `dataSeparators` +5. Wyodrębnienie wymaganych danych ze zbioru +6. Dodanie danych pojedyńczej osoby do listy `data` + +### Przetworzenie danych (`__processData`) + +Funkcja odpowiedzialna jest za przetworzenie danych w linie gotowe do zapisania w plikach wyjściowych +Funkcja zwraca listę `[mailData, officeData]` + +### Zapisanie danych (`__saveData`) + +Funkcja odpowiedzialna jest za zapisanie danych w plikach wyjściowych dla poczty i dla office \ No newline at end of file