Hej!
Mam taki problem. Mam dwa pliki txt i musze stworzyc program, ktory czyta obydwa i odnajduje wspolne elementy w tych plikach. Jeden plik(plik1) zawiera nazwy osob, ich adresy oraz numer karty. Drugi plik(plik2) zawiera numery kart (nie kazdego uzytkownika, tylko pare numerow kart ogolnie), nazwy artykulow i tam jescze z 2 inne rzeczy. Jeden z plikow (ten z ludzmi i ich adresami) posiada swoja klase dzieki ktorej moge zidentyfikowac kazda czesc tego pliku.
W programie stworzylam juz z pomoca Scannera opcje wczytywania obydwu plikow i tworzenie trzeciego, w ktorym zapisywane beda informacje o tych osobach, ktorych numery kart pojawiaja sie w obydwu plikach.
Proboje dopasowac pliki za pomoca findInLine, ale w ogole mi to nie idzie. Tzn dostaje ciagle* java.lang.illegalStateException: No match result available*. Jak rozumiem problem tkwi w tym, ze nie potrafie odpowiednio uzyc tej metody findInLine.
1 rzad w plik2 wyglada mniej wiecej tak:
numerkarty(3 cyfry)#nazwaartykulu#YYYYMMDD
Robie mniej wiecej tak:
sc1.findInLine("([0-9]{3})#(.+)#(.+)#([0-9]{8})");
Oba pliki testuje z pomoca podwojnego while sats tzn dopoki pierwszy plik ma rzad do czytania to..dopoki drugi plik ma rzad do czytania to...
Potem zamierzam porownac objekt z pliku pierwszego(numer karty) do k.group(1).
Nie wiem jak naprawic findInLine zeby dzialalo, pierwszy raz uzywam tego i widzialam jedynie jak sie uzywa probojac odszukac cyfry.
Dodatkowe informacje:
-
to delimeter tzn jest pomiedzy wszystkimi czesciami w pliku
- numer karty zawiera 3 cyfry
- nazwa artykulu zawiera nie raz spacje oraz inne znaki niz a-z