Macの青色申告をHackする
Hackと言っても、入力をちょっとだけ改善しようという話。
入力する件数は今まで通りなので、あしからず。
まずは、前年度分のデータを書き出してみましょう。
- 「メンテナンス」ボタンをクリック
- 「仕分データ書き出し」ボタンをクリック
- 適当なファイル名を付けて、すぐ見つけられるところに保存
そして、書き出したファイルを見ると・・・?
ただのタブ区切りデータでしたー!
たぶん、この書式で日付とか金額を変えて、
「仕分データ取り込み」ボタンを押せば入力出来るのでは???
という訳で、じっくりフォーマットを見てみることにします。
適当なテキストエディタで開くと、
改行文字はCRで、文字コードはShift_JISのようです。
なので、件数と科目を表示するコードはこんな感じ。
use v5.10; use strict; use warnings; use utf8; binmode STDOUT, ':utf8'; my $in_file = 'test.tab'; my $data_ref = load_tab_file( $in_file ); say "件数 = " . scalar(@{$data_ref}); my %hash = (); foreach my $line (@{$data_ref}) { my @tmp = split "\t", $line; $hash{$tmp[3]}++; } say "--- 科目 ---"; say for (keys %hash); sub load_tab_file { my $file = shift; open( my $fh, '<:encoding(shift-jis)', $file ) or die $!; local $/ = "\r"; my @ret = <$fh>; close $fh; return \@ret; }
たとえば、仕分けデータを”test.tab”というファイル名で保存して、
これを実行するとこんな感じになる。
$ perl aaa.pl
件数 = 122
--- 科目 ---
新聞図書費
通信費
ソフトウェア
・
・
・
という訳で、
日付と金額等の入力からタブ区切りファイルを書き出して、
取り込みに成功したら続きを書こうと思います。
参考にしたページ
Perl 5.8でUTF-8の文字コードを扱う
http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/perl/perl_utf.html
おしまい。
Leave a Comment