NasupiiのPerl書抜帳

目次

特許PDFファイルの名前書き換えプログラム
Windows専用ファイル一覧表作成プログラム
特許文献用の符号表作成支援プログラム
perlソースコードをウエブ公開用の html に変換するプログラム
名札を返す。出勤/帰宅を表す名札をWebで実現するプログラム
MS-Excelからデータ取込時にセル内の改行を処理するデータ整形プログラム
MS-Excelのシリアル値から日付・時刻を得るプログラム

pat_rename.pl 特許等PDFファイルの名前書き換え

J-PlatPatからダウンロードした特許・実用新案・意匠・商標のPDFファイルは、 ファイル名が英数字だけで出来ていてわかりにくいので、名前を書き換えるプログラムを作りました。
たとえばこんな風です。
 ダウンロードしたファイル名 JPB 002500001-000000.pdf
 書き換え後のファイル名   特登2500001.pdf

動作確認環境
 Strawberry Perl 5.36.1.1 がインストールされた Windows 10 にて動作確認した。
 初版作成時に動作確認した Perl ver.5.12 以降なら、たぶん動作するでしょう。
 初版作成時に動作確認した Windows Vista以降なら、たぶん動作するでしょう。

使用方法
 このプログラムをpdfファイルがあるフォルダにコピーし、ダブルクリックすると、フォルダー内のすべてのファイル名を検査し、該当するファイルのファイル名を書き換えます。
 特許、実用新案の公報が対象です

改訂メモ
 2010/07/17 初版作成
   :
 2023/12/26 久しぶりに試したところ、ファイル名の書式が変わっていたので、プログラムを修正した。
  主な変更点
  1.ファイル名の末尾に "-000000"が付くように変わったことへの対応。
   000000は公報のページを表す。
  2.意匠と商標をファイル名で識別できなくなったため、意匠と商標は対象外にし、特許と実用新案のみ対象とした。

ソースコード←ソースコードの表示はこちら

ダウンロード←ダウンロードはこちら(zip圧縮)

-->

file_list_w.pl Windows専用ファイル一覧表作成プログラム

指定したフォルダー内のファイル一覧表を作成するプログラムです。
結果をタブ区切りテキストファイルで書き出すので、MS-Excel などの表計算ソフトに読み込むことが出来ます。

動作確認環境
 Strawberry Perl 5.36.1.1 がインストールされた Windows 10 にて動作確認した。
 初版作成時に動作確認した Perl ver.5.10 以降なら、たぶん動作するでしょう。
 初版作成時に動作確認した Windows XP 以降なら、たぶん動作するでしょう。
 linux では動作しません(Windows のdirコマンドを呼び出しているので)。

使用方法
 このプログラムを調べたいファイルがあるフォルダにコピーし、ダブルクリックする。
 フォルダー内及びその下位フォルダー内のすべてのファイル一覧表をタブ区切りテキストファイルで書き出します。 書き出すファイル名は、"file_list.txt"です。書き出す場所はカレントフォルダーです。
 プログラムをメモ帳などで開いて $path = '.'; となっているところを書き換えると、カレントフォルダー以外 のファイル一覧表を作成することも出来ます。

補足説明  perlからWindowsのdirコマンドを呼び出すときに付けているオプションは、それぞれ次のような意味です
  dir /s /on /tw /-c
  /s :指定されたディレクトリとそのサブディレクトリすべてのファイルを表示する
  /on:ファイル名順にソートする
  /tw:最終更新日時を表示する
  /-c:ファイルサイズに3桁毎の"," (コンマ)を入れない

改訂メモ
 2010/12/12 初版作成。(ver.1.0)
 2023/12/29 S-JIS で記述すること等の注記を追記した。use strict; と use warnings; を追加し、my ですべての変数を宣言した。(ver.1.1)

ソースコード←ソースコードの表示はこちら

ダウンロード←ダウンロードはこちら(zip圧縮)

extract_marks.pl 特許文献用の符号表作成支援プログラム

特許公報から、符号を抽出し、csvファイルとして書き出すプログラムです。
J-PlatPatなどから入手した特許公報を読んでいくと、「回転軸15を、軸受3に挿入し、・・・」
のような記述が出てきます。ここで3や15を符号と呼び、同じ符号が図や文章に繰り返し出てきます。
符号の一覧表を生成できると便利だと思い、perlで簡単なプログラムを作ってみました。

入力として
  「回転軸15を、軸受3に挿入し、」
を読み込ませると
  軸受  [  3] に挿入し、
  回転軸 [ 15] を、
のような結果が得られます
結果はcsvファイルで書き出されるので、MS-Excelなどの表計算ソフトに読み込むことが出来ます。

動作確認環境
 Strawberry Perl 5.36.1.1 がインストールされた Windows 10 にて動作確認した。
 Perl ver.5.10 以降なら、Encode が標準ライブラリーに加えられているので、たぶん動作するでしょう。
 Windows の他のバージョンでもたぶん動作するでしょう。

使用方法
 J-PlatPat等から入手した公報のテキストデータを、 "infile.txt" としてファイルする。
 このプログラムを "infile.txt" があるフォルダにコピーし、ダブルクリックする。
 符号及び符号の前後の文字列が抽出され、"符号表.csv" として カレントフォルダに書き出される。
 MS-Excel等の表計算ソフトで "符号表.csv" を読み込むと、符号の一覧表が得られる。
 自身で特許出願原稿を作成する場合にも、同じように使用できます。

注意事項
 このソフトは構文解析を行っているわけではないので、符号ではないものまで抽出されたり、
 同じ符号が複数回抽出されたりしているので、符号の前後の文字列を見ながら手作業での修正が必要です。
 しかし、公報の全文からすべて手作業で符号を抽出するよりは、大幅な時間短縮が出来ます。
 符号の判別法は、数字、アルファベット大文字小文字、’”,・だけからなる文字列を符合としています
 上記以外の文字列が符号として使用されている場合は、抽出できない場合があります。

改訂メモ
 2011/01/08 初版作成 (Shift-JIS専用)
    :
 2024/01/08 UTF-8に対応した。入力ファイルは Shift-JIS と UTF-8 を自動判定し、 出力ファイルは、Shift-JIS の csv ファイルとした。 (Ver.2.0)


ソースコード←ソースコードの表示はこちら

ダウンロード←ダウンロードはこちら(zip圧縮)

pl2html.pl perlソースコードをウエブ公開用の html に変換する。

perlソースコードをウエブ公開用の html に変換するプログラムです。
perlソースコードを HTML で表示する際に問題となる事項を次のように解決しています
・ソースコードの前後に HTMLタグを追加する
・ソースコード自体は <pre> と </pre>タグで囲む
・& < > を 文字参照(character references)に置き換える。

動作確認環境
Strawberry Perl 5.36.1.1 がインストールされた Windows 10 にて動作確認した。
初版作成時に動作確認した Perl ver.5.10 以降なら、Encode が標準ライブラリーに加えられているので、 たぶん動作するでしょう。
Windows の他のバージョンでもたぶん動作するでしょう。

使用方法
1.変換したい perl ソースコードを、 ファイル名 "infile.pl" でファイルする。
2.このプログラム(pl2html.pl)を同じフォルダーにコピーし、ダブルクリックして実行する。
3.変換後の HTML が "outfile.html"として同じフォルダーに書き出される。
注1.書き出されたファイルは HTML として最低限のものしか入っていないので、表題をつけたり書式を指定するなどの編集作業を行う必要があります。
注2.変換前の perl ソースコード が、Shift-JIS(cp932) または UTF-8であれば変換可能で、変換後の HTML は UTF-8 で出力されます。

改訂メモ
 2011/02/20 初版作成 Shift-JISのソースコード専用。出力するHTMLも Shift-JIS。(ver.1.0)
 2024/01/05 UTF-8 と cp932 (Shift-JIS) のソースコードを自動判別し、UTF-8 で HTML を出力するように変更。(Ver.2.0)


ソースコード←ソースコードの表示はこちら

ダウンロード←ダウンロードはこちら(zip圧縮)


名札を返す。出勤/帰宅を表す名札をWebで実現するプログラム

名札
出勤と帰宅を表す壁掛けの名札をperl-CGIによってWeb上に実現しました
 名札をクリックすると文字の色が変わり、出勤/帰宅が入れ替わります。
 テレビドラマ「相棒」の主人公が、出勤した時と帰宅するときに返す名札
 をWebで実現してみました。これなら、ほかの部署で仕事をした後直帰するときも、
 自分の部屋に戻らずに名札を返すことができますね。

使用確認環境(サーバー)
 ActivePerl 5.28.1 と Apache2.4 がインストールされた Windows 10 にて動作確認しました
 Perl の他のバージョンでもたぶん動作するでしょう
 Windows の他のバージョンでもたぶん動作するでしょう
 linux を利用したレンタルサーバーでも作動しています

使用確認環境(ブラウザー)
 2020/9/9 時点で
 Firefox 80.0.1 で正常に表示されています。
 Internet Explorer 11.0.205 で正常に表示されています。
 Microsoft Edge 85.0.564.44 で正常に表示されています。

使用方法
 表示された名札をマウスで左クリックするたびに、出勤(黒)と帰宅(赤)に変わります
 名前の入替や人数変更は、データファイル書き換えで行います。プログラム中の注記を見てください。
 設置方法は、プログラム中の注記と、サーバーの説明書を見てください。

名札のページを表示

ソースコード←ソースコードの表示はこちら

ダウンロード←ダウンロードはこちら(zip圧縮)


MS-Excelからデータ取込時にセル内の改行を処理するデータ整形プログラム

MS-Excelからデータ取り込む時には、Excel側でタブ区切りのテキストファイルに書き出して、
perlプログラムで読み込む方法が行われています。このとき、セル内で改行してあると
うまく取り込めないことがあります。本来1行だったものが複数行に分かれてしまうためです。
そこで、セル内に [改行], ["](ダブルクォーテーション, [,](カンマ)があるときでも
正しくデータを取り込むためのデータ―整形プログラムを作りました。
セル内の [改行] は別の文字に置き換え、余分に挿入された["] を削除することが出来ます。

使用確認環境
 ActivePerl 5.10.1 と MS-Excel 2010 がインストールされた Windows Vistaにて動作確認しています
 Perl の他のバージョンでもたぶん動作するでしょう
 Windows の他のバージョンでもたぶん動作するでしょう
使用方法
 1.サブルーチンとして作成しているので、使用するにはメインプログラムが必要です。
 2.メインプログラムでタブ区切りテキストファイルを1つの文字列に読み込む。
 3.読み込んだ文字列を引き数として、このサブルーチンを呼ぶ。
 4.引数の文字列が置き換えられれメインルーチンに戻る。
サンプルプログラムの使用方法
 1.ソースリストには簡単なメーンルーチンがついているので、このまま実行することもできます。
 2.MS-Excel から、タブ区切りテキスト形式でファイルを書き出してください。この時ファイル名は
   book1.txt としてください。
 3.サンプルプログラムを同じフォルダーに入れ、ダブルクリックして実行してください。
 4.整形後のタブ区切りテキストファイルが、book1x.txt で書き出されます。
   改行は _| に置き換えられます。

ソースコード←ソースコードの表示はこちら

ダウンロード←ダウンロードはこちら(LHA圧縮)


MS-Excelのシリアル値から日付・時刻を得るプログラム

MS-Excelは日付・時刻をシリアル値で保持しています。
これを 日付や時刻に換算するサブルーチンを作成しました。

使用確認環境
 ActivePerl 5.10.1 と MS-Excel 2010 がインストールされた Windows Vistaにて動作確認しています。
 Perl の他のバージョンでもたぶん動作するでしょう。
 Windows の他のバージョンでもたぶん動作するでしょう。
使用方法
 1.サブルーチンとして作成しているので、使用するにはメインプログラムが必要です。
 2.シリアル値を日付に変換するときは sub serial2date を使ってください。
 3.シリアル値を日付時刻に変換するときは sub serial2datetime を使ってください。
 4.シリアル値を時刻に変換するときは sub serial2time を使ってください。
サンプルプログラムの使用方法
 1.ソースリストには簡単なメーンルーチンがついているので、このまま実行することもできます。
 2.MS-Excel のシリアル値を引数にしてサブルーチンを呼び出すと日付・時刻の文字列を返します。
 3.シリアル値から日付を得たいときは、sub serial2dat を使用する。
   シリアル値から日付と時刻を得たいときは、sub serial2datetime を使用する。
   シリアル値から時刻を得たいときは、sub serial2time を使用する。

ソースコード←ソースコードの表示はこちら


- Copyright (C) Nasupii -