/* * Filename: raiko.rexx * Author: janla * Created: Wed Aug 31 2016 * Purpose: Parse information from file * Changes: */ IF ARG(1) <> '' THEN DO PARSE UPPER VALUE ARG(1) WITH f_name'.TXT' o_name f_name = f_name'.TXT' END IF LENGTH( STRIP( o_name ) ) = 0 THEN DO CALL CHAROUT 'STDOUT', 'Spara fil som:' PARSE PULL o_name END IF LENGTH( STRIP( f_name ) ) = 0 THEN RETURN 1 IF LENGTH( STRIP( o_name ) ) = 0 THEN RETURN 2 IF STREAM( f_name, 'C', 'QUERY EXISTS' ) = '' THEN RETURN 3 f_size = STREAM( f_name, 'C', 'QUERY SIZE' ) IF f_size < 100 THEN RETURN 4 input = CHARIN( f_name, 1, f_size ) CALL STREAM f_name, 'C', 'CLOSE' header = COPIES( 'Ä', 121 ) sum_end = COPIES( 'Í', 14 ) crlf = D2C(13)D2C(10) output = '' PARSE VALUE input WITH company(header)open_cred 'Dato 'dd'.'mm'.'yy' 'hh':'mi' Side'page(crlf)input CALL NxtCust CALL CHAROUT o_name, output CALL STREAM o_name, 'C', 'CLOSE' RETURN 0 NxtCust: PARSE VALUE input WITH 'Per dato' . ':' per_dato(crlf)(crlf)'Konto' . ':' cid customer 'Bank' bnr 'Saldo' currency . ':' saldo(crlf)input PARSE VALUE input WITH 'Kontaktperson:' contact 'Kreditmaks' . ':'max_credit(crlf)input PARSE VALUE input WITH 'Telefon' . ':' phonenr(crlf) . (crlf)input Rerun: PARSE VALUE input WITH . (crlf) . (crlf)input DO WHILE DATATYPE( LEFT( input, 2 ), 'W' ) PARSE VALUE input WITH dato 10 forfall 19 bilag 26 faktura 39 tekst 61 bestalld 87 valuta 93 belop 108 rest(crlf)input PARSE VALUE belop WITH pre'.'post belop = pre||post PARSE VALUE rest WITH pre'.'post rest = pre||post output = output||STRIP( cid )';'STRIP( customer )';'STRIP( bnr )';'STRIP( dato )';'STRIP( forfall )';'STRIP( bilag )';'STRIP( faktura )';'STRIP( tekst )';'STRIP( bestalld )';'STRIP( belop )';'STRIP( rest )';'crlf END PARSE VALUE input WITH . (crlf) . ? . sa_belop sa_rest(crlf) . (sum_end)' '(sum_end)(crlf) . (crlf)input IF SUBWORD( input, 1, 1 ) = 'Dato' THEN CALL ReRun IF SUBWORD( input, 1, 2 ) = 'Per dato' THEN CALL NxtCust RETURN 0