PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
23666 | 10/03/24 16:11:22 | RE(4):PB7.0: Unicodeで出力したLDIFファイルのASCII変換 By GREENS |
23656 | 10/02/16 20:40:56 | RE(3):PB7.0: Unicodeで出力したLDIFファイルのASCII変換 By Pos |
23655 | 10/02/05 09:04:03 | RE(2):PB7.0: Unicodeで出力したLDIFファイルのASCII変換 By GREENS |
23652 | 10/02/04 14:09:45 | RE(1):PB7.0: Unicodeで出力したLDIFファイルのASCII変換 By Pos |
23650 | 10/01/29 10:44:24 | PB7.0: Unicodeで出力したLDIFファイルのASCII変換 By GREENS |
カテゴリ:スクリプトの記述
日付:2010年01月29日 10:44 発信者:GREENS
題名:PB7.0: Unicodeで出力したLDIFファイルのASCII変換
ADサーバよりldifdeコマンドでuserファイルをエクスポートしたもの(日本語があるのでunicode指定)をP
Bにてoracleへ取り込みたいのですが、当方のPBのversionではそのまま読み取る事ができません。
仕方が無いので、一旦ファイルをASCII形式に変換して保存してから処理しようと以下のようなロジックを作っ
たのですが、
\"ls_readtext = FromUnicode(lbb_b)\"
の部分でデータの最後の方が欠損してしまいます(string文字数制限の為かと)。
いろいろと考えてみたのですが、何かいい方法がありましたらご教授いただければ幸いです。
**********************************************************
Blob lbb_readtext, lbb_b, lbb_total
int li_FileNum, li_FileNum2
string ls_readtext, ls_wk_readtext
String ls_入力ファイル, ls_出力ファイル
Long ll_処理件数, ll_rtn, ll_Flen, ll_loops, ll_i, ll_bytes_read
ls_入力ファイル = as_infile
ls_出力ファイル = as_infile + \'.cnv\'
//ファイルオープン(入力ファイル)
ll_Flen = FileLength(ls_入力ファイル)
li_FileNum = FileOpen(ls_入力ファイル, StreamMode!, Read!, LockRead!)
IF li_FileNum = -1 THEN
RETURN -2
END IF
//ファイル読込回数確認
FileSeek(li_FileNum, 2)
IF ll_Flen > 32765 THEN
IF Mod(ll_Flen, 32765) = 0 THEN
ll_loops = ll_Flen/32765
ELSE
ll_loops = (ll_Flen/32765) + 1
END IF
ELSE
ll_loops = 1
END IF
//ファイルオープン(出力ファイル)
li_FileNum2 = FileOpen(ls_出力ファイル, StreamMode!, Write!)
//ファイル読込
FOR ll_i = 1 to ll_loops
ll_bytes_read = FileRead(li_FileNum, lbb_b)
ls_readtext = FromUnicode(lbb_b)
FileWrite(li_FileNum2, ls_readtext)
NEXT
FileClose(li_FileNum)
FileClose(li_FileNum2)
RETURN 0
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows XP
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.