Boshi pisze:Problem leży, w tym, że twój kod jest pod konkretną danę przygotowany. Konkretną linię itd. A co gdy nie mam pojęcia w której lini leży nazwisko "kowalski"?
Po prostu wpisuje- szukam nazwiska kowalski i procedura wyszukuje to nazwisko w pliku.
Witaj,
W celu analizy jakichkolwiek danych, parser musi wiedzieć czego ma szukać - to nie człowiek, który potrafi bez zadania jakiś konkretnych wytycznych i kryteriów odnaleźć coś czego być może szuka, a dowie się o tym jak to znajdzie.
Jeśli chcesz stworzyć w miarę uniwersalny parser, musisz mu podać kryteria leksykalne, gramatyczne, etc. czyli coś co pozwoli mu na zrozumienie tego co
czyta - tu nie ma większego znaczenia jakie dane mu przekażesz, tak czy tak wszystkie to tylko bity/bajty/słowa...
Im bardziej ma być uniwersalny, tym jego złożoność rośnie (lub im bardziej złożony język).
Jeśli dane jakie dostajesz na wejściu są Ci zupełnie nie znane lub nie posiadają jakiejś konkretnej - w miarę możliwości - usystematyzowanej składni czy struktury, możesz uznać te dane za losowe, a w takim przypadku wyszukiwanie danych sprowadza się do heurystyki/SSN/algorytmów decyzyjnych lub też wyrażenia regularne, aczkolwiek w takiej sytuacji, raczej bym ich odradzał bez wstępnej analizy (czyli - uogólniając - szukasz czegoś, co jest lub przypomina w jakimś stopniu wzorzec, który jest Ci znany).
Jeśli w danych brak jakiegokolwiek wzorca lub struktury (nawet uogólnionej), dane wejściowe to nic innego jak
szum z którym nic nie zrobisz, co najwyżej możesz mieć lód szczęścia i znajdziesz pewną kombinację, która może - ale nie musi - pasować do Twych kryteriów, jednakże, ponieważ są to dane nie posiadające struktury, przez co to co znajdziesz może być tylko pustym trafieniem.
Suma-sumarum, bez jakiejkolwiek struktury czy formatu danych i zdefiniowaniu ich w języku zrozumiałym dla parsera nie dokonasz analizy składniowej.
Pozdrawiam