PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
9996 | 00/01/24 13:00:52 | RE(4):PB6.5: デバッガで1stepずつ実行するとOKなのに普通に実行するとNG By muto |
9995 | 00/01/24 12:59:55 | RE(3):PB6.5: デバッガで1stepずつ実行するとOKなのに普通に実行するとNG By muto |
9990 | 00/01/24 11:06:48 | RE(2):PB6.5: デバッガで1stepずつ実行するとOKなのに普通に実行するとNG By Taka |
9982 | 00/01/22 18:17:28 | RE(1):PB6.5: デバッガで1stepずつ実行するとOKなのに普通に実行するとNG By M.M |
9958 | 00/01/21 10:47:26 | PB6.5: デバッガで1stepずつ実行するとOKなのに普通に実行するとNG By muto |
カテゴリ:スクリプトの記述
日付:2000年01月24日 12:59 発信者:muto
題名:RE(3):PB6.5: デバッガで1stepずつ実行するとOKなのに普通に実行するとNG
M.Mさん、こんにちは。
>mutoさん、こんばんは。
>
>>API関数(winexec)を使ってDOS窓を出さずに、ファイルを
>>renameする処理をするのですが、デバッガで1stepずつ実行すると
>>OKなのに普通に実行すると、renameされません。
>
>具体的にどういう処理を記述しているのでしょうか。
>
>試した時の外部関数の定義とスクリプトを教えてもらえますか。
>
処理の内容は、以下の通りです。
稼働中のプロセスのログをテキストファイル(LOG.txt)に吐くのですが、
ファイルのサイズが1MBを超えたら、RENAMEして(LOG_OLD.txt)保存します。
24時間稼動しているので、最新のログ1MB分がLOG.txtに、その前の1MB分のログが
LOG_OLD.txtに吐かれるようにしたいのです。
そのRENAME処理を、
*** 外部関数定義 ***
function long WinExec( string lpCmdLine, long uCmdShow ) library \"kernel32.dll\"
*** スクリプト ***
long rtn
rtn = WinExec( \"c:\\rename.bat\", 0 ) /* 0=SW_HIDE */
↑この部分は
PBユーザーズガイド(旧電子会議室)
日付:1998年03月26日 20:20 発言者:Taka
題名:RE(3):Run関数の代わりにWinExecで対処
を参考にさせていただきました。
\"test.bat\"の中身は
rename c:\\LOG.txt LOG_OLD.txt
です。
という風に処理しているのですが、
実行すると、RENAMEされないので、デバッガで1stepずつ実行したところ、
RENAMEされたのです。
・・と、いうわけなんですが、
009990 └00/01/24 11:06 RE(2):PB6.5: デバッガで1stepずつ実行するとOKなのに普通に実行するとNG By Taka
さんの助言に従ってMoveFileにしたところ、うまくいきました。
お騒がせいたしまして、すみませんでした。
ありがとうございました。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser InternetExplorer4.X
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.