PDFelementを使用して画像ファイル内の文字をテキスト化する方法

OCR機能を持つソフト「PDFelement」を使用して画像ファイル内の文字列をテキストファイル化する方法です。

「PDFelement」には無料トライアル版もあるので画像ファイルからテキストファイルやExcelファイルへの変換は無料トライアル版でも十分可能となってます。

「PDFelement」のダウンロード

「PDFelement」を使用して画像ファイル(png)の文字をテキストファイル化する手順

今回は以下の画像ファイル(png)をテキスト化してみます。

  1. PDFelementを起動し、「ファイルを開く」を選択します。
  2. ファイルの種類がpdfになっているので「すべてのファイル」へ変更して変換したい画像ファイルを選択します。
  3. プロ版機能の購入案内画面が表示されるので「無料トライアルを続ける」を選択します。
  4. 変換したい形式のファイルを選択します。今回はtxtファイルへ変換したいので「テキストへ」を選択します。
  5. 再びプロ版機能の購入案内画面が表示されるので「無料トライアルを続ける」を選択します。
  6. pdfファイルへの保存確認が表示されるので保存したい場合は「はい」を、不要であれば「いいえ」を選択します。
  7. 名前を付けて保存画面が表示されるので保存後のファイル名を指定して「保存」を選択します。
  8. 正常に変換されると以下に様に「正常に変換されました」と表示されます。「開く」ボタンを選択すると変換後ファイルを開くことが出来ます。
  9. 変換後ファイルを開くと以下の様に画像内も文字がテキスト化されてるのが確認出来ます。やや精度は微妙なので見直しは必須ですが、文字数が多い画像ファイルなどをテキストファイル化したい場合などには結構使えそうです。

Excel:順位を求める方法

Excelで順位を求めるにはRANK関数を使用することで可能となります。

RANK関数は「=RANK(数値, 参照, [順序])」の書式で入力します。

第3引数の順序には0(降順で並び替えて数値の大きい方から数えた順位) or 1(昇順で並び替えて数値の大きい方から数えた順位)を指定してます。省略した場合は降順での順位が表示されます。

RANK関数を使用して順位付けする例

  • 以下の例ではC2セルの書式へ「=RANK(B2,B$2:B$5,1)」を入力しています。

Windowsで使用中のポート番号を確認する方法

Windowsで現在使用中のポート番号を確認する方法をメモしておきます。

使用中のポート番号を確認する方法

  1. コマンドプロンプトを起動してコマンド「netstat -ano」を入力してEnter。
    netstatコマンドのオプションの意味は以下の通り。 
    オプション説明
    aすべてのネットワーク接続を表示する
    nDSN逆引きを行わない
    oプロセスIDを表示する
    p プロトコル指定したプロトコルの接続のみ表示する
    プロトコル:TCP, UDP, TCPv6, UDPv6
    rルーティングテーブルを表示する
    sプロトコルごとの統計情報を表示する
    ?コマンドのヘルプを表示する
  2. 以下の様にローカルアドレスの「:」の右側に表示されているのがポート番号となります。

プロセスID(PID)から実行中のサービス名を特定する方法

上記でプロセスID(PID)を特定出来たら該当するサービス名を特定することも出来ます。

例としてポート番号「1521」のPID「1604」がどのサービスで使用されているかタスクマネージャーで確認してみましょう

  • 以下の様にタスクマネージャーのサービス一覧で該当するPID「1604」のサービス名が「OracleOraDB18Home1TNSListener」であることが確認出来ました。

 

 

Excel:複数の図形(オブジェクト)の配置を揃える方法

以下の様にExcelで複数の図形(オブジェクト)の配置がバラバラになっている時に配置をきれいに揃える方法についてメモしておきます。

複数の図形(オブジェクト)の配置を揃える手順

  1. ホームタブの右端にある「検索と選択」を選択して「オブジェクトの選択」を選択します。
  2. 配置を揃えたい図形(オブジェクト)を選択します。
  3. 図形(オブジェクト)を選択後、書式タブ ⇒ 配置を選択し、揃えたい条件を選択します。今回は「左揃え」を選択します。
  4. 以下の様に選択した図形(オブジェクト)がきれいに左揃えされているのが確認出来ます。

今回は左揃えを例にしてみましたが、配置のメニューで右揃えや上揃え、下揃えなど色々選択出来るので自由に配置を調整することが出来ます。

Oracle:年、月、日、時、分、秒以下を切り捨てて取得する方法

OracleではTRUC関数を使用することで年、月、日、時、分、秒以下を切り捨てて取得することが可能となります。

使用例

サンプルテーブル「BIRTHDAY」

クエリー(SQL)

  • BIRTHDAYテーブルのUPDATE_DATEに対してTRUNC関数を使用した例となります。第2引数へformatを指定することで指定した単位で切り捨てた値を取得することが出来ます。
  • formatの種類 
    format説明
    YYYY年まで取得して月日時分秒を切り捨て
    MM年月まで取得して日時分秒を切り捨て
    DD年月日まで取得して時分秒を切り捨て
    HH年月日時まで取得して分秒を切り捨て
    MI年月日時分まで取得して秒を切り捨て
     

出力結果

 

Oracle:管理者ユーザー「SYS」と「SYSTEM」のデフォルトパスワード

Oracle Databaseをインストールすると自動的に作成される管理者ユーザー「SYS」と「SYSTEM」のデフォルトパスワードについてメモしておきます。

SYSユーザーのデフォルトパスワード:change_on_install

  • sysユーザーでのログイン例です。

SYSTEMユーザーのデフォルトパスワード:manager

  • systemユーザーのログイン例です。

リモートデスクトップでの接続前に事前に接続済ユーザーの有無を確認する方法

複数人開発メンバーがいる状況などで共通で使用しているアカウントでリモートデスクトップ接続する可能性がある場合、リモートデスクトップでの接続は基本後勝ち方式になってしまうため、先に誰かがリモートデスクトップで接続していると後発ユーザーが権限奪ってしまい先に使用している人へ迷惑をかけてしまう可能性があります。

なのでリモートデスクトップで共通で使用しているアカウントでログインする場合は事前にアクティブ状況は最低限確認しておきましょうというお話。

事前に接続先サーバーへのログインユーザーのアクティブ状況を確認する方法

  1. コマンドプロンプトを起動して「qwinsta /server:[接続先のサーバー名]」を入力して実行します。
  2. 以下の様に状態へ「Active」と表示されていれば該当ユーザーでログイン中となっているのが確認出来るので、そのユーザーでリモートデスクトップ接続する前に周囲にいつまで使用予定なのかなどを確認してから使用すると不要な摩擦を生むのを回避出来ます。

SQL:システム日付と誕生日を元に年齢、誕生日までの月数、日数を表示する方法

SQLでシステム日付、誕生日を使用して年齢、システム日付~誕生日までの月数、日数を取得するSQLをメモしておきます。

以下はOracleでの実行例となっています。

サンプルテーブル

「BIRTHDAY」テーブル

【Oracle】システム日付と誕生日から年齢、誕生日までの月数、日数を表示する例

クエリー(SQL)例

実行結果

Excel:郵便番号へハイフンを挿入する方法

Excelで郵便番号へハイフンを挿入するにはREPLACE関数を使用することで可能です。REPLACE関数は本来置換用の関数ですが第3引数へ0を指定することで文字列の追加も可能となります。

REPLACE関数を使用して郵便番号へハイフンを挿入する例

  • 以下の例ではB2セルへ「=REPLACE(A2,4,0,”-“)」を入力してA列の値の4桁目に”-“ハイフンを挿入しています。
  • 第3引数へ0を指定すると第2引数の文字の直前に第4引数へ指定した値が挿入されます。

SQL:UPDATE と JOIN を使用してレコードを更新する方法

UPDATEで他のテーブルと結合(JOIN)した結果に対してのみ更新を実施したい場合、SQL ServerやMySQL、PostgreSQLではUPDATE文内に直接JOIN句を記載可能ですが、Oracleでは副問合せで結合することでJOINした結果に対して更新することが可能となります。

サンプルテーブル

「GOODS」テーブル

「GOODS_TYPE」テーブル

【Oracle】UPDATE文でJOINを使用して更新する例

クエリー(SQL)例

  • 以下の例ではGOODS_TYPEテーブルに存在するGOODS_CODEと一致するレコードのみGOODSテーブルのPRICE項目を更新しています。

実行結果

  • 以下の様にGOODS_CODEが一致しているレコードのみ更新されていることが確認できます。

 

【SQL Server、MySQL、PostgreSQL】UPDATE文でJOINを使用して更新する例

クエリー(SQL)例

  • SQL Serverなどでは直接UPDATE文内にJOINを指定可能なので以下のような記載でもエラーにはならず更新されます。