diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index f5214e2..75e322a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -80,6 +80,7 @@
+
@@ -102,6 +103,6 @@
-
+
\ No newline at end of file
diff --git a/changelog-UC.txt b/changelog-UC.txt
index 74da955..8e7a1d8 100644
--- a/changelog-UC.txt
+++ b/changelog-UC.txt
@@ -24,3 +24,9 @@
- Doprowadzenie programu do podstawowego stanu użyteczności (występuje błąd: nie można dodać drugiej ścieżki poprzez wybór)
- Utworzenie systemu crashlogów
- Zastosowanie systemu crashlogów dla głównego modułu
+
+4.0 Alpha (Build 19349.2)
+- Nowy system dialogowy
+- Stworzenie pliku formatu
+- Usunięcie plików format.py i dataprocess.py
+- Przygotowanie do dalszych prac
diff --git a/components/__pycache__/dialog.cpython-38.pyc b/components/__pycache__/dialog.cpython-38.pyc
index 7ef5676..ebafbb8 100644
Binary files a/components/__pycache__/dialog.cpython-38.pyc and b/components/__pycache__/dialog.cpython-38.pyc differ
diff --git a/components/__pycache__/load_config.cpython-38.pyc b/components/__pycache__/load_config.cpython-38.pyc
index 64f87e9..3474cb2 100644
Binary files a/components/__pycache__/load_config.cpython-38.pyc and b/components/__pycache__/load_config.cpython-38.pyc differ
diff --git a/components/__pycache__/load_format.cpython-38.pyc b/components/__pycache__/load_format.cpython-38.pyc
new file mode 100644
index 0000000..d5847b2
Binary files /dev/null and b/components/__pycache__/load_format.cpython-38.pyc differ
diff --git a/components/__pycache__/processing.cpython-38.pyc b/components/__pycache__/processing.cpython-38.pyc
index 2c3e1dc..51255a3 100644
Binary files a/components/__pycache__/processing.cpython-38.pyc and b/components/__pycache__/processing.cpython-38.pyc differ
diff --git a/components/dataprocess.py b/components/dataprocess.py
deleted file mode 100644
index 9bc6c9b..0000000
--- a/components/dataprocess.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import time as TM
-
-def plr(text):
- text1 = text.replace('ę', 'e')
- text2 = text1.replace('ó', 'o')
- text3 = text2.replace('ą', 'a')
- text4 = text3.replace('ś', 's')
- text5 = text4.replace('ł', 'l')
- text6 = text5.replace('ż', 'z')
- text7 = text6.replace('ź', 'z')
- text8 = text7.replace('ć', 'c')
- text9 = text8.replace('ń', 'n')
- text10 = text9.replace('Ę', 'E')
- text11 = text10.replace('Ó', 'O')
- text12 = text11.replace('Ą', 'A')
- text13 = text12.replace('Ś', 'S')
- text14 = text13.replace('Ł', 'L')
- text15 = text14.replace('Ż', 'Z')
- text16 = text15.replace('Ź', 'Z')
- text17 = text16.replace('Ć', 'C')
- text = text17.replace('Ń', 'N')
- return text
-
-def ctc(Klasa):
- czas = TM.localtime()
- miesiac = czas[1]
- if miesiac >= 9:
- rokpodst = czas[0]
- else:
- rokpodst = czas[0] - 1
- nrklasy = int(Klasa[0])
- literaklasy = Klasa[1]
- szkola = Klasa.split(' ')[1]
- if szkola == 'BS':
- znacznik = str((4 - nrklasy) + rokpodst) + szkola
- else:
- znacznik = str((5 - nrklasy) + rokpodst) + literaklasy
- return znacznik
\ No newline at end of file
diff --git a/components/dialog.py b/components/dialog.py
index e022e84..36c1e05 100644
--- a/components/dialog.py
+++ b/components/dialog.py
@@ -14,11 +14,41 @@
+
+
+
+# ----------------------------------------------- # Kody dialogowe # ------------------------------------------------- #
+
+E = [] # Błędy
+E.append(["Nie znaleziono pliku konfiguracyjnego (config.cfg).\nPrzywróć plik. (E01x0000)", True]) #0
+E.append(["Błąd pliku konfiguracyjnego (config.cfg).\nNiepoprawna ilość wierszy w pliku\nPrzywróć plik. (E01x0001)", True]) #1
+E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 1\nPrzywróć plik. (E01x0011)", True]) #2
+E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 2\nPrzywróć plik. (E01x0012)", True]) #3
+E.append(["Nie znaleziono pliku składowego (instruction.txt)\nPrzywróć plik. (E03x0010)", False]) #4
+
+
+
+I = [] # Informacje
+I.append(["Pomyślnie zapisano!\nDla niektórych zmian może być wymagane ponowne uruchomienie programu", False]) #0 (I0001)
+
+
+
+A = [] # Zapytania
+
+
+
+
+
+
+
+
# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
# Biblioteki zewnętrzne
import sys as SS
+
+
# Biblioteki zewnętrzne interfejsu graficznego
from tkinter import messagebox as TKmsb
@@ -32,25 +62,25 @@ from tkinter import messagebox as TKmsb
# --------------------------------------------------- # Funkcje # ---------------------------------------------------- #
# Okno dialogowe błędu
-def Err(KodBledu):
- Message = 'Wystąpił błąd!\n' + KodBledu[0]
+def err(ErrorIndex):
+ Message = 'Wystąpił błąd!\n' + E[ErrorIndex][0]
TKmsb.showerror('Błąd', Message)
- if KodBledu[1]:
+ if E[ErrorIndex][1]:
SS.exit(0)
# Okno dialogowe informacyjne
-def Inf(KodInformacji):
- TKmsb.showinfo('Informacja', KodInformacji[0])
- if KodInformacji[1]:
+def inf(InfoIndex):
+ TKmsb.showinfo('Informacja', I[InfoIndex][0])
+ if I[InfoIndex][1]:
SS.exit(0)
# Okno dialogowe zapytania
-def Ask(KodZapytania):
- if TKmsb.askokcancel('Pytanie', KodZapytania):
+def Ask(AskIndex):
+ if TKmsb.askokcancel('Pytanie', A[AskIndex]):
return True
else:
return False
diff --git a/components/format.py b/components/format.py
deleted file mode 100644
index 69472dc..0000000
--- a/components/format.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# Oznaczenia zmiennych:
-# K - Klasa
-# N - Nazwisko
-# I - Imie
-# L - Login do librusa
-
-
-
-
-
-import codecs as cd
-
-def SprawdzKlasa(K):
- if len(K.split(' ')) != 2: # Wywołuje błąd jeżeli napis nie dzieli się w pożądanym formacie
- blad = int('x') #
-
- for x in range(0,10): #
- if K[1:].find(str(x)) != -1: # Wywołuje bląd jeżeli w nazwie klasy (poza numerem klasy) znajduje się liczba
- blad = int('x') #
-
- numery_niedozwolone = [0,9,8,7,6,5,4] # Określa numery klas które nie istnieją
-
- for x in numery_niedozwolone: #
- if K[0] == str(x): # Wywołuje błąd jeżeli numer klasy jest równy numerowi niedozwolonemu
- blad = int('x') #
-
- szkoly = ['BS', 'LO'] # Określa istniejące szkoly
-
- if K.split(' ')[1] not in szkoly: # Wywołuje błąd jeżeli szkola nie należy do szkół istniejących
- blad = int('x') #
-
- oddzialy = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'w', 'y', 'z'] # Określa istniejące oddzialy
-
- if K[1] not in oddzialy: # Wywołuje błąd jeżeli oddział nie należy do oddziałów istniejących
- blad = int('x') #
-
-
-def SprawdzNazwisko(N):
- for a in N:
- for x in range(0,10): #
- if a.find(str(x)) != -1: # Wywoluje blad jeżeli nazwisko zawiera liczbę
- blad = int('x') #
-
-
-def SprawdzImie(I):
- for x in range(0,10): #
- if I.find(str(x)) != -1: # Wywoluje blad jeżeli imie zawiera liczbę
- blad = int('x') #
-
-
-def SprawdzLogin(L, CzyUczen):
- if CzyUczen and L[-1] != 'u': # Wywoluje blad jeżeli login ucznia nie zawiera na końcu 'u'
- blad = int('x') #
-
- if CzyUczen: #
- blad = int(L[:-1]) # Wywoluje blad jeżeli login (-'u' dla ucznia) nie jest liczbą
- else: #
- blad = int(L) #
-
-
-
-
-def przetworz(dane):
- dane = dane.split('\n\n') # dzielenie danych na pojedyńcze osoby
-
- przetworzone = [] # tworzenie kontenera na przetworzone dane
-
- for osoba in dane: #
- try: #
- x = int(osoba[0]) #
- except ValueError: # Sprawdza czy osoba jest nauczycielem czy uczniem
- CzyUczen = False #
- else: #
- CzyUczen = True #
-
- # Dla uczniów
- if CzyUczen:
- K = osoba.split(', ')[0].split(' ')[:2]
- K = K[0] + ' ' + K[1]
- N = osoba.split(', ')[0].split(' ')[2:]
- I = osoba.split(', ')[1].split(' ')[0]
- L = osoba.split(', ')[1].split(' ')[2]
-
- # Sprawdzenie poprawności
- SprawdzKlasa(K)
- SprawdzNazwisko(N)
- SprawdzImie(I)
- SprawdzLogin(L, CzyUczen)
-
- dane = [K, N, I, L, CzyUczen]
- przetworzone.append(dane)
- # Dla nauczycieli
- else:
- N = osoba.split(', ')[0].split(' ')
- I = osoba.split(', ')[1].split(' ')[-4]
- L = osoba.split(', ')[1].split(' ')[-2]
-
- # Sprawdzenie poprawnosci
- SprawdzNazwisko(N)
- SprawdzImie(I)
- SprawdzLogin(L, CzyUczen)
-
- dane = [N, I, L, CzyUczen]
- przetworzone.append(dane)
- return przetworzone
-
-
-
-
-
-
-# Legenda do części dokumentacji poniżej:
-# X - Dane nieznaczące
-# Q - Pusta linia
-
-
-# Format danych dla uczniów:
-# ,
-#
-
-# Przykład:
-# 1a BS Nowak, Adam 1234567u
-#
-
-
-# Format danych dla nauczycieli:
-# ,
-#
-
-# Przykład:
-# Nowak, Adam 1234567
-#
-
-
-
-
-# Inne:
-# - skrypt akceptuje prefix 'ks.', nieuwzględnia go w przetwarzaniu
-# - skrypt akceptuje nazwiska holenderskie (typu 'van X', 'van der X' itp.) i uwzględnia je w przetwarzaniu
-# - skrypt nie akceptuje nazwisk złożonych (np. Nowak-Kowalska)
-# - skrypt wymaga kodowania ANSI
diff --git a/components/load_config.py b/components/load_config.py
index f8cca29..4032213 100644
--- a/components/load_config.py
+++ b/components/load_config.py
@@ -17,35 +17,19 @@
-# ----------------------------------------- # Definicja kodów dialogowych # ------------------------------------------ #
-
-E000x01 = "Brak modułu wywołującego okna dialogowe ('dialog.py').\nPrzywróć plik. (E000x01)"
-E001x01 = ["Brak pliku konfiguracyjnego ('config.cfg').\nPrzywróć plik. (E001x01)", True]
-E002x00 = ["Bład pliku konfiguracyjnego ('config.cfg').\nNiepoprawna ilość wierszy w pliku\nPrzywróć plik. (E002x00)", True]
-E002x01 = ["Bład pliku konfiguracyjnego ('config.cfg').\nNiepoprawne dane w wierszu 1\nPrzywróć plik. (E002x01)", True]
-E002x02 = ["Bład pliku konfiguracyjnego ('config.cfg').\nNiepoprawne dane w wierszu 2\nPrzywróć plik. (E002x02)", True]
-
-I001 = ["Pomyślnie zapisano!\nDla niektórych zmian może być wymagane ponowne uruchomienie programu", False]
-
-
-
-
-
-
-
-
-
# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
# Biblioteki zewnętrzne
import sys as SS
+
+
# Moduły składowe programu
try:
import dialog as MDdlg
except ModuleNotFoundError:
- print('Nieoczekiwany wyjatek - nie mozna wygenerowac okna dialogowego bledu\n\nBŁĄD KRYTYCZNY!\n%s') %E000x01
- wait = input('Naciśnij ENTER aby zakończyć')
+ print('Nie znaleziono modułu programu (dialog.py)\nNie można załadować programu\nKod błędu: E00x0001')
+ wait = input('Naciśnij ENTER aby wyjść')
SS.exit(0)
@@ -64,7 +48,7 @@ def CheckConfig(settings):
if len(settings) != 2:
error = int('x')
except ValueError:
- MDdlg.Err(E002x00)
+ MDdlg.err(1)
# Linia 1 (0/1)
try:
@@ -72,15 +56,15 @@ def CheckConfig(settings):
if 0 > check > 1:
error = int('x')
except ValueError:
- MDdlg.Err(E002x01)
-
+ MDdlg.err(2)
# Linia 2 (utf-8)
+
DostepneKodowanieWyjsciowe = ['utf-8']
try:
if settings[1] not in DostepneKodowanieWyjsciowe:
error = int('x')
except ValueError:
- MDdlg.Err(E002x02)
+ MDdlg.err(3)
@@ -89,7 +73,7 @@ def read():
try:
check = open('.\config.cfg')
except FileNotFoundError:
- MDdlg.Err(E001x01)
+ MDdlg.err(0)
else:
with open('.\config.cfg', 'r') as cfg:
config = cfg.read().split('\n')
@@ -107,7 +91,7 @@ def edit(settings):
try:
check = open('.\config.cfg')
except FileNotFoundError:
- MDdlg.Err(E001x01)
+ MDdlg.err(0)
else:
SettingsToSave = []
SettingsToSave.append('Ciemny motyw(0/1): ' + str(settings[0]) + '\n')
@@ -115,4 +99,4 @@ def edit(settings):
with open('.\config.cfg', 'w') as cfg:
for x in SettingsToSave:
cfg.write(x)
- MDdlg.Inf(I001)
\ No newline at end of file
+ MDdlg.inf(0)
\ No newline at end of file
diff --git a/components/load_format.py b/components/load_format.py
new file mode 100644
index 0000000..6bda8c5
--- /dev/null
+++ b/components/load_format.py
@@ -0,0 +1,40 @@
+"""
+# GeneratorCSV
+# Wersja 4.0 Experimental
+# by Mateusz Skoczek
+# luty 2019 - grudzień 2019
+# dla ZSP Sobolew
+
+#
+# Moduł zarządzający plikiem formatu
+#
+"""
+
+
+
+
+
+
+
+
+# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
+
+# Biblioteki zewnętrzne
+import sys as SS
+
+# Moduły składowe programu
+try:
+ import dialog as MDdlg
+except ModuleNotFoundError:
+ print('Nie znaleziono modułu programu (dialog.py)\nNie można załadować programu\nKod błędu: E00x0001')
+ wait = input('Naciśnij ENTER aby wyjść')
+ SS.exit(0)
+
+
+
+
+
+
+
+
+# --------------------------------------------------- # Funkcje # ---------------------------------------------------- #
\ No newline at end of file
diff --git a/components/main.py b/components/main.py
index e98f86d..daffd0a 100644
--- a/components/main.py
+++ b/components/main.py
@@ -14,6 +14,9 @@
+
+
+
# -------------------------------------------- # Informacje o programie # -------------------------------------------- #
Nazwa = 'GeneratorCSV'
@@ -28,10 +31,6 @@ Wersja = '4.0 Experimental'
# ----------------------------------------- # Definicja kodów dialogowych # ------------------------------------------ #
-E000x01 = "Brak modułu wywołującego okna dialogowe ('dialog.py').\nPrzywróć plik. (E000x01)"
-E000x02 = ["Brak modułu zarządzającego plikiem konfiguracyjnym ('load_config.py').\nPrzywróć plik. (E000x02)", True]
-E001x01 = ["Brak pliku formatu 'format.py'.\nPrzywróć plik. (E001x01)", True]
-E001x02 = ["Brak pliku instrukcji ('instruction.txt').\nPrzywróć plik. (E001x02)", False]
E003x01 = ["Nie podano lokalizacji plików do importu. (E003x01)", False]
E003x02 = ["Nie podano lokalizacji zapisu wygenerowanych plików. (E003x02)", False]
@@ -61,24 +60,31 @@ import sys as SS
try:
import dialog as MDdlg
except ModuleNotFoundError:
- print('Nieoczekiwany wyjatek - nie mozna wygenerowac okna dialogowego bledu\n\nBŁĄD KRYTYCZNY!\n%s') %E000x01
- wait = input('Naciśnij ENTER aby zakończyć')
+ print('Nie znaleziono modułu programu (dialog.py)\nNie można załadować programu\nKod błędu: E00x0001')
+ wait = input('Naciśnij ENTER aby wyjść')
SS.exit(0)
try:
import load_config as MDlcg
except ModuleNotFoundError:
- MDdlg.Err(E000x02)
+ print('Nie znaleziono modułu programu (load_config.py)\nNie można załadować programu\nKod błędu: E00x0002')
+ wait = input('Naciśnij ENTER aby wyjść')
+ SS.exit(0)
try:
- import format as MDfmt
+ import load_format as MDlfm
except ModuleNotFoundError:
- MDdlg.Err(E000x02)
+ print('Nie znaleziono modułu programu (load_format.py)\nNie można załadować programu\nKod błędu: E00x0003')
+ wait = input('Naciśnij ENTER aby wyjść')
+ SS.exit(0)
try:
import processing as MDprc
except ModuleNotFoundError:
- MDdlg.Err(E000x02)
+ print('Nie znaleziono modułu programu (processing.py)\nNie można załadować programu\nKod błędu: E00x0004')
+ wait = input('Naciśnij ENTER aby wyjść')
+ SS.exit(0)
+
# Biblioteki zewnętrzne interfejsu graficznego
@@ -93,7 +99,7 @@ import tkinter as TK
-
+#TODO
# ------------------------------------- # Uruchomienie interfejsu graficznego # -------------------------------------- #
# Zmienne globalne środowiska graficznego
diff --git a/components/processing.py b/components/processing.py
index 7c9b316..12f2077 100644
--- a/components/processing.py
+++ b/components/processing.py
@@ -1,3 +1,4 @@
+#TODO
import dataprocess as MDdtp
import load_config as MDlcg
import dialog as MDdlg
diff --git a/format.fmt b/format.fmt
new file mode 100644
index 0000000..e69de29
diff --git a/generator.py b/generator.py
index af82ea4..b765a01 100644
--- a/generator.py
+++ b/generator.py
@@ -17,45 +17,13 @@
-# ------------ # Import bibliotek zewnętrznych i modułów oraz inicjacja funkcji zapisywania crashlogów # ------------- #
-
-# Funkcja zapisująca crashlogi
-def crash(ErrorCode):
- import sys as SS
- import time as TM
- d = TM.localtime()
- name = 'crashlogs/crash_' + str(d[2]) + str(d[1]) + str(d[0]) + str(d[3]) + str(d[4]) + str(d[5]) + '.txt'
- with open(name, 'w') as crash:
- crash.write('Critical error!\n' + ErrorCode)
- SS.exit(0)
-
-# Błędy
-E000x00 = "Brak głównego pliku składowego programu ('main.py'). Przywróć plik. (E000x00)"
-
-
-
-
-
-
-
-
-# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
-
-import os as OS
-
-
-
-
-
-
-
-
-
# ----------------------------------------- # Uruchomienie głównego modułu # ----------------------------------------- #
try:
fck = open("components/main.py")
except:
- crash(E000x00)
+ print('Nie znaleziono głównego modułu programu (main.py)\nNie można załadować programu\nKod błędu: E00x0000')
+ wait = input('Naciśnij ENTER aby wyjść')
else:
- OS.system("components\main.py")
\ No newline at end of file
+ import os
+ os.system("components\main.py")
\ No newline at end of file