PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
7193 99/07/19 15:21:01 RE(2):PB6.5: バイナリを含むテキストの文字列検索 By あすかちゃんの父
7186 99/07/17 18:28:41 RE(1):PB6.5: バイナリを含むテキストの文字列検索 By Taka
7185 99/07/17 11:55:02 PB6.5: バイナリを含むテキストの文字列検索 By あすかちゃんの父

カテゴリ:スクリプトの記述
日付:1999年07月17日 18:28 発信者:Taka
題名:RE(1):PB6.5: バイナリを含むテキストの文字列検索

あすかちゃんの父さん、こんばんは。

>対象データばblob変数に格納されており、これをstring型に変換
>してpos関数でパターンマッチをかけようとしたのですが、blob
>からstringにうまく変換できません(変換後のstringが空文字に
>なったりする)。

blob変数をstring変換した場合、どこかの位置に0x00がでてくるとその手前までしか
stringに入ってくれないと思います。
(0x00以外なら大丈夫のような気がします)

>バイナリデータに文字コードに無いデータが含まれていれば、当
>然の結果なのですが、こういった場合のテキストのパターンマッ
>チを調べるうまい方法はないでしょうか?

PowerBuilderの標準関数では無理だと思います。
Pos関数のパラメータはいずれにしてもstring型を要求するので、強引に0x00を含む
stringを編集したとしても、Pos関数に渡す段階で切り落とされると思います。
\"BlobPos\"関数が欲しいところですね。

>blobから1byteづづ切り出して、コードを調べるロジックを組めば
>できるのですが、MB単位のデータでこれをやるのは、パフォーマン
>ス的につらいものがあり、悩んでいます。

CでDLLつくるしかないのではないでしょうか。
あるいは、blob変数を単純にstring変換するのではなく、一度0x00を別のコード(0xFFとか)
に置き換えてからstring変換→Pos関数へ という処理にするのはどうでしょうか。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.