tcl/tk 64bit版をmsys64でbuildする |
msysの64bitを入れる。 pacman -Sでいろいろ入れる。特にgccとmake。 スタートメニューからmsys2 MinGW 64-bitを起動する。 tclとtkの最新版を持ってきて展開する。 cd win sh configure --enable-64bit make make install これで/mningw64/bin/tclsh86やwish86がインストールされる。 |
#
by fgtmp
| 2020-03-17 18:59
|
sshへのログインエラー |
2つのネットワーク(netA、netBとする)につながっているサーバで、それぞれについてsshd_config等を用意してそれぞれsshdを起動した。localhostではつながるが、他PCからsshすると、netA側のアドレスではログインできるがnetB側のアドレスでは以下のエラーが出てログインできなかった。 ssh_exchange_identification: read: Connection reset by peer ググるとhosts.allowが云々というやり取りなどが見つかったが今回の件とは該当しない。 結局、つながるようになって原因を考えると、sshクライアントはnetA側にいるPCであり、そこからnetB側にパケットを送るとサーバはnetA側からパケットを返していたのではないか…などと考えている。この辺りの設定方法(届いた側の口から返す設定)がiptablesか何かにあったと思うがすぐに思い出せない。 とりあえずつながったので私はOK。
|
#
by fgtmp
| 2017-12-31 09:34
| comp
|
C#でExcelファイル(xlsx)を読み込む |
C#でExcelファイル(xlsx)を読み込む方法の一つとしてClosedXMLというものがあった。 単純なコードは割と楽に書けた。 C#でプロジェクトを作成 → ツール → NuGetパッケージマネージャー → パッケージマネージャーコンソール PM> Install-Package ClosedXML あとはusing ClosedXML.Excel;してググりながらコードを書いた。 変わっているなと感じたのはシートの番号などが1から始まること。 それよりも困ったのは関数countif()の入ったセルのvalueを使おうとすると例外終了すること。万事うまくはいかないもので。。
|
#
by fgtmp
| 2017-03-29 19:28
| comp
|
PerlのSpreadsheet::ParseXLSX利用時にフリガナを除去する |
PerlでExcelをいじる際にSpreadsheet::XLSXやSpreadsheet::ParseXLSXを使ってセルの値を取得すると元の文字列に加えフリガナもくっついてきてしまう。 ググると、フリガナはrPhというタグに囲まれているのでそのタグを除去すれば良いようだ。 Spreadsheet::XLSXを使う場合は以下の要領で直接モジュールを改造する。 vi /usr/lib/perl5/site_perl/5.22/Spreadsheet/XLSX.pm $mstr =~ s/<t\/>/<t><\/t>/gsm; # this handles an empty t tag in the xml <t/> $mstr =~ s%<rPh.*?>(.*?)</rPh>%%gsm; #←この一行を追加する foreach my $si ($mstr =~ /<si.*?>(.*?)<\/si/gsm) { Spreadsheet::ParseXLSXを使う場合は以下の要領で直接モジュールを改造する。 vi /usr/lib/perl5/site_perl/5.22/Spreadsheet/ParseXLSX.pm (関数sub _parse_workbook内のコード) if ($files->{strings}) { $files->{strings} =~ s%<rPh.*?>(.*?)</rPh>%%gsm; #←この一行を追加する my %string_parse_data = $self->_parse_shared_strings( $files->{strings}, $themes->{Color} ); バージョン番号(上記では5.22)は環境によって異なる。
|
#
by fgtmp
| 2017-03-29 11:19
| comp
|
Tktable2.10のインストール(msys2) |
Tktable2.10のインストールメモ。 mv /c/Tcl /c/Tcl-tmp ./configure vim Makefileして以下の様に変更する。 (変更前)SHLIB_LD = gcc -shared (変更後)SHLIB_LD = gcc -shared -static-libgc make make install mv /c/Tcl-tmp /c/Tcl これで/usr/local/lib/Tktable2.10以下に一式インストールされる。
|
#
by fgtmp
| 2017-03-14 03:47
| comp
|