From 8fb302f682502c4d314b2935bc6d0c1ea8926648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Fri, 31 Mar 2023 09:55:05 +0200 Subject: [PATCH] Faster Fio parsing. --- bank-fio.scm | 12 ++++++++---- members-payments.scm | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bank-fio.scm b/bank-fio.scm index 5e704b9..f3857cb 100644 --- a/bank-fio.scm +++ b/bank-fio.scm @@ -33,7 +33,7 @@ (import scheme (chicken base) - (chicken irregex) + (chicken string) bank-account csv-simple progress) @@ -44,9 +44,13 @@ (let ((id (string->number (car row))) (date (cadr row)) (amount (string->number - (irregex-replace (irregex "," 'u) - (caddr row) - "."))) + (let* ((astr (caddr row)) + (ci (substring-index "," astr))) + (if ci + (string-append (substring astr 0 ci) + "." + (substring astr (add1 ci))) + astr)))) (currency (string->symbol (cadddr row))) (varsym (list-ref row 9)) (message (list-ref row 12))) diff --git a/members-payments.scm b/members-payments.scm index 83cd9b1..5ea9664 100644 --- a/members-payments.scm +++ b/members-payments.scm @@ -55,7 +55,7 @@ (let* ((msg (bank-transaction-message transaction)) (ci (substring-index "," msg)) (vs (if ci - (substring msg ci) + (substring msg 0 ci) msg))) (string->number vs))))) varsym-id))