Trochę mi wstyd to upubliczniać, ale co tam ;) Patrz załącznik - może się przyda - jest tam fragment parsujący linijki w takim formacie.
Pisane kilka lat temu, na pewno działa do dziś w kilku firmach dla wyciągów z BZ WBK wysyłanych na maila..
W dniu 2011-12-08 11:16, Łukasz Rostalski pisze:
W dniu 2011-12-01 15:03, Łukasz Bujek pisze:
W dniu 1 grudnia 2011 14:45 użytkownik Łukasz Rostalski lukasz@rostalski.pl napisał:
Cześć, czy możecie poratować mnie jakimś przykładem jak w perlu napisać skrypt który przetwarza każdą linijkę wg wzoru. Piszę sobie skrypt to importu płatności masowych i o ile z pocztą i pobraniem załącznika sobie poradziłem to teraz zatrzymałem się na analizowaniu pliku. Ewentualnie jakich funkcji użyć.
PS Jak skończę pisać i będzie działało to udostępnię dla potomnych (nieodpłatnie).
Taki przykładzik:
open(SOMEFILE,filename); while (<SOMEFILE>) { $line = $_; if ($line =~ m/(^[0-9]{5,25}|)/) {
@fields = split(/\|/,$line); $local = $fields[0]; $public = $fields[1]; }
print $local; print $public; }
Napotkałem mały problem. Moje wpisy wyglądają tak: 882773572|29112011|15.15|Jakaś nazwa odbiorcy|40109044280004000117544076|98797500048970000000000002|tytuł przelewu faktura xyz/wdf/2011 ok
Wzorzec: $line =~ m/(^[0-9]{9}|[0-9]{8})/)
my $description = $fields[6]; problem w tym że print $description daje tylko ty, czasami tytuł. Ogólnie ucina string.
Czy przyczyną może być wzorzec, który ogólnie wychwytuje wszystkie wpisy.