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 (記載なし)

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