見出し画像

私本管理PlusのISBNを10または13に統一する方法

※ここではISBN-13に統一することを前提として書いています。

私本管理Plusに本を登録していくと、古い本(ISBN-10)や最近の本(ISBN-13)が混ざった状態になり、ISBN-10で登録した本をISBN-13で検索しようとしてもヒットしません。

そこでISBNを10か13のどちらかに統一したくなるのですが、バーコードリーダーを使用している場合は、そのバーコードリーダーが出すコードに合わせた方が、バーコードリーダーで検索するときヒットするようになるので、そのようにした方がいいと思います。

で、実際にISBN-10またはISBN-13のどちらかに統一する方法ですが、私本管理Plusに登録された本(データ)は以下の場所にあります。

私本管理Plusのデータの保存場所が「D:\tools\私本管理Plus\data\本」なら、そこの「BaseData.dat」がデータが保存されているファイルです。

この「BaseData.dat」はサクラエディタ(https://sakura-editor.github.io/)などで開くと分かるとおり、CSV形式で保存されています。

1列目がISBNコードなので、ここをISBN-10またはISBN-13に統一すればよいだけの話です。

ISBN-10 <--> ISBN-13の変換Exceシートは「ISBN-10→ISBN-13またはISBN-13→ISBN-10に変換するExcekシートを作りました」で公開しましたので、そちらをつかっていただければと思います。

で、問題は変換したISBNコードに置換する方法なのですが、ファイル形式がCSVなのでExcelで開いて1列目(ExcelならA列)を一気に置換して保存すればOK、と行きそうなのですが、それを行った後、私本管理Plusで開くと何故かうまく行きません。漢字コードとか改行コードの関係かとちょっと試してみたのですが、やはりダメです。

そうなるとCSVエディタと呼ばれるCSVファイルを編集するソフトを使ってみようとなるのですが、なんていうCSVエディタを使ったか失念しましたが、それでもダメでした。

あとはAWKで1列目だけを置換するスクリプトを書いて対処することも考えました。

AWK(オーク)は、プログラミング言語の一つ。 テキストファイル、特に空白類(スペースの他、タブなど)やカンマなどで区切られたデータファイルの処理を念頭に置いた仕様となっているが、一般的なプログラミングに用いることも可能である。UNIX上で開発された。

AWK - Wikipedia

そして最悪1つ1つテキストエディタで置換していくことも考えましたが、EmEditor(https://jp.emeditor.com/)がCSVファイルを編集できるということで、EmEditorで開いて1列目を一気に置き換え。そして保存したものを私本管理Plusで開いたところ、問題なく開けましたし、ISBNも変更後のものになっていました。


【注意】
EmEditorはEmEditor Professional(有料版)を使用します。EmEditor Free(無料版)もありますが、こちらだとCSV編集ができません。EmEditor Professionalはインストールしてしばらくの間は試用期間として全ての機能を無料で利用できます。試用期間を過ぎたらライセンスを購入するか、EmEditor Freeに切り替えるか、使うのをやめるかのどれかを選ぶことになります。
今回のEmEditorを使ったISBNの統一をするためにEmEditor Professionalを試用期間だけ使うというのもアリだと思いますが、そこは各人の都合や懐具合と相談してその後どうするか決めてください。私は永久ライセンスを購入しました。

もう少し詳しく書くと、

1.念のため、「BaseData.dat」のバックアップ(コピーして他のファイル名にするなり、他のフォルダにコピーするなりいろいろと)をとっておく。

2.「BaseData.dat」を「BaseData.csv」という名前でコピーする。

3.Excelで「BaseData.csv」を開く。

4.「BaseData.csv」のA列のISBNコードにハイフン("-")が入っている場合は、A列全体を選択し、Ctrl-Hで"-"を""(何も入力しない)に置換してハイフンを取り除く。

5.「ISBN-10→ISBN-13またはISBN-13→ISBN-10に変換するExcekシートを作りました」のISBN変換ファイルを開く。

6.Excelで開いた「BaseData.csv」のA列(ISBNコード)を「ISBN-10→ISBN-13またはISBN-13→ISBN-10に変換するExcekシートを作りました」のファイルのA列に値貼り付けしてISBNの変換をする。

7.EmEditorを起動し、「ファイル」→「開く」で「BaseData.dat」を指定して開く。上図のように列ごとにデータが分かれて表示されていればOK。ダメだったらEmEditorで「BaseData.csv」の方を開いてみる。

8.「ISBN-10→ISBN-13またはISBN-13→ISBN-10に変換するExcekシートを作りました」で変換したISBNの列(C列)をデータの最後までコピーして、EmEditorで開いた「BaseData.dat」の1列目に貼り付ける(行ズレが起きないよう気をつける)。

9.EmEditorで開いた「BaseData.dat」を保存して終了する(「BaseData.csv」を開いている場合は「BaseData.dat」に上書き保存)。

10.私本管理Plusを起動し、「検索」→「詳細」タブをクリックし、検索項目に何も入力しないで「検索」ボタンをクリックする。

11.表示されたISBNが変換したものになっているか確認する。

12.分類コード(本のISBNコードの近くに「C0979」といった具合に「C」で始まる5桁のコード)も入力して管理している人は、「カテゴリー」タブをクリックし、「分類(初期値)」を選択し、分類がちゃんと表示されているか確認する(失敗していると、このような分類が表示されない)。

13.問題が無いことが確認できれば、Excelを終了する。

以上で終了です。

これでISBNコードが統一されたわけですが、例えばISBN-13に統一したあとにISBN-10でバーコードの付いてない古い本を入力したりすることでまたISBN-10とISBN-13が混在して、それがやはり気分が悪いとなった場合は上記の手順を行って、再度統一してください。最近の本しか購入しないのなら問題ないでしょうが、古い本だとISBN-10なので、そこはもう追いかけっこでしかないと思います。

ISBN-10に統一したい場合は、バーコードリーダーの設定をISBN-10で出力するようにしておくといいと思います(設定方法はマニュアルに書かれているバーコードを読み取らせるだけで済むと思います)。

今まで使っていたバーコードリーダー(13年前に購入)がISBN-10で出力するように設定されてて、私本管理Plusに登録の途中で最近買ったバーコードリーダーを使い始めたところISBN-13で出力するのに気づいて「あ、ISBN-10で登録された本を新しいバーコードリーダー(ISBN-13で出力)で検索できない」ことに気づいてこんなことをやりました。


この記事が気に入ったらサポートをしてみませんか?