PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
325 98/11/06 16:53:23 RE:RE:RE:ファイル操作のAPIなら By てとらぽっと
315 98/11/05 18:25:49 RE:RE:ファイル操作のAPIなら By あすかちゃんの父
313 98/11/05 17:54:30 RE:ファイル操作のAPIなら By てとらぽっと
312 98/11/05 17:50:52 RE:RE:RE:マクロって遅いんじゃ? By てとらぽっと
311 98/11/05 17:16:26 RE:RE:マクロって遅いんじゃ? By まこと
310 98/11/05 17:04:02 RE:File I/Oは遅いです By まこと
309 98/11/05 16:48:00 RE:RE:RE:RE:RE:RE:File I/Oは遅いです By まこと
307 98/11/05 15:15:42 RE:RE:RE:RE:RE:File I/Oは遅いです By OGR
306 98/11/05 15:08:07 RE:RE:RE:RE:RE:File I/Oは遅いです By あすかちゃんの父
305 98/11/05 14:27:11 RE:マクロって遅いんじゃ? By てとらぽっと
303 98/11/05 13:31:45 RE:RE:RE:RE:File I/Oは遅いです By まこと
302 98/11/05 13:24:58 RE:RE:RE:RE:File I/Oは遅いです By kin
299 98/11/05 11:43:52 RE:RE:RE:File I/Oは遅いです By あすかちゃんの父
297 98/11/05 11:02:53 RE:RE:File I/Oは遅いです By こてちゅ
295 98/11/05 10:49:11 RE:File I/Oは遅いです By kin
293 98/11/04 21:23:21 File I/Oは遅いです By あすかちゃんの父

カテゴリ:その他
日付:1998年11月05日 11:43 発信者:あすかちゃんの父
題名:RE:RE:RE:File I/Oは遅いです

みなさん、こんにちは。

入力ファイルのフォーマットと、それの変換規則の説明が無くて分か
りにくかったと思います。すみませんでした。
入力ファイルは、固定長カラムという書き方をしましたが、もともと
DBに登録することを意識したファイルになっていないので、固定長
データ部とスペース区切りが入り交じったテキストファイルです。

ファイル中にTab文字が無い仕様だったので、1行の最大文字数を格納
できる1列だけの外部ソースDWを作って、ImportFile関数でテキスト
1行をまるまる1カラムに入れています。
もしTab文字がある仕様だったら・・・・ おそらく想定される1行の
Tab数に対応するだけの列を作ったと思います。

それでDWに読込んだ1行を、
・先頭から9文字が固定長のラベル。これを1カラムにするが、ラベル
中に含まれるスペースは削除する。
・9文字目以降がスペース区切りで、分解する。スペースは連続2つ以
上の場合もある。
という仕様で、Pos,Mid,Left,Trimといった文字列操作の関数を使い
まくって、フォーマット変換しています。

さらに特定のデータを別のデータに置き換える、という仕様があり、
この特定データの出現頻度が低かったので、ループ中でPos関数を使っ
て調べるのを止めて、Find関数を使いました。

kinさんがイメージされたのとは違うかもしれませんが、こんな感じです。

こてちゅさんwrite:
>前にVB2.0でのFile操作も遅くて・・・・
>その時は、PBのような代替案がありませんでしたので、苦肉の策で行ったのが、
>メモリに読み込む事でした。
>1行文のデータを配列にした変数に一度取込み、そこから構造体に取込んだり、コントロールに表示するようにしまし
た。
>たったこれだけの作業でしたが、だいぶ時間の短縮になった記憶があります。
プログラムでデータ操作をする時には、何らかのプログラムが操作でき
るように一旦メモリにロードしますので、いかに速くプログラムが操作
しやすい形で読込かが勝負ですね。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

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

Server SoftWare

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

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