SP9OP pisze:
Swoją drogą, ktoś kto projektował ten format to chybna nie do końca ogarniał rzeczywistość, ale starał się jak mógł.
Swoją drogą, ktoś kto projektował ten format to chybna nie do końca ogarniał rzeczywistość, ale starał się jak mógł.
Tak to już niestety jest z amatorską twórczością - również w temacie software. Nie ma żadnej organizacji, która by ustalała i pilnowała jakichkolwiek standardów oprogramowania amatorskiego!
Reguły i specyfikacje formatów zapisów danych w logach są raczej wynikiem pomysłowości i porozumień pomiędzy twórcami wiodącego oprogramowania, którzy nie są w żadnych formalnych powiązaniach, lecz działają jako hobbyści a w wielu przypadkach jako woluntariusze.
Początkowe pomysły na formaty logów pochodziły właśnie od indywidualnych programistów-hobbystów by umożliwić elektroniczną wymianę logów pomiędzy organizatorami zawodów a uczestnikami, którzy zaczęli używać komputerów do logowania. Ponieważ uczestnicy zawodów mieli 1001 pomysłów na formaty wysyłanych logów do organizatora: począwszy od różnych plików tekstowych, plików doc, Excel, jak również binarnych plikach bazodanowych - nie wspominając o postaci graficznej zeskanowanych logów papierowych.
Organizatorzy zawodów nie byli w stanie ogarnąć tego wszystkiego. Stąd powstał nacisk na ujednolicenie (na ile to możliwe) formatów wymiany logów w postaci elektronicznej. Pomysłodawcy 2-ch najbardziej zaawansowanych formatów tekstowych tj. Cabrillo i ADIF zgodzili się uwolnić prawa autorskie do użytku publicznego. Życie wymusiło jednak wiele modyfikacji początkowych ustaleń a ciągłe zmiany regulaminów zawodów i potrzeby indywidualnych twórców aplikacji do logowania i przetwarzania logów wymusiło uelastycznienie formatów i ich nieustanną ewolucję oraz tworzenie nowych zapisów np. z wykorzystaniem rozszerzalnego języka znaczników XML.
Tak więc tworząc uniwersalny parser do logów trzeba uwzględnić nie tylko to co zostało zaakceptowane przez większość twórców soft-u amatorskiego i nieograniczoną pomysłowość przy logowaniu "bzdetów" przez użytkowników ale również uwzględniać różnorodność pól generowanych przez poszczególne aplikacje podczas zapisu logu oraz rozpoznawane ich podczas ładowania z pliku do oprogramowania. Bywa niekiedy, że wysyłający log dokonuje zmian treści poza programem logujący np. edytorem tekstowym (edytor przyjmuje każdy tekst) co może prowadzić do kolejnych błędnych zapisów.
Tak było i będzie. Nic tu nie jest 'constans' - trzeba sobie radzić z nietypowymi, nieprzewidywalnymi sytuacjami.
Logi publiczne w postaci tekstowej dostępne na Internecie to nie są RZECZYWISTE logi wysłane przez uczestników a jedynie ich zestandaryzowana wersja wygenerowana z bazy danych będącej w użyciu organizatora zawodów. Błędy krytyczne, których nie może przetworzyć program robota przyjmującego upload logu od uczestnika są z reguły odrzucane przed załadowaniem do bazy danych stąd w opublikowanych logach ich raczej nie znajdziesz.
Musisz więc zacząć przetwarzać te "podczyszczone" logi a następnie testować utworzony algorytm na "uszkodzonych" celowo logach testowych symulując różne nieprzewidziane sytuacje by właściwie obsłużyć te błędne sytuacje grożące generowaniem wyjątków i w konsekwencji niestabilności lub zawieszenia Twojej aplikacji
Powodzenia. Życzę rozkoszy łamania głowy
vy73 Ryszard SP9GR