HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0403
ナナbcopy命令でファイル壊れてしまう4未解決


ナナ

リンク

2007/4/3(Tue) 18:49:15|NO.6920

以下の様にスプリクトを組み、

『PACKFILE処理後の実行ファイルから、wavファイルを取り出し再生させる』

といったプログラムを作りたいのですが、下を実行すると、
dateフォルダ内にコピーはされるものの、ファイルが壊れてしまうのか、
wavファイルが再生不能となってしまいます。
(元のwavファイルはきちんと再生可能な物です。)

PACKFILEを暗号化してもしなくても、同じ結果となってしまいます。
何故こうなるのか、もしくは下スプリクトの問題点等、
お気づきになった点がございましたらお教えください。
宜しくお願い致します。


myplace=dir_cur ; 現在のカレントディレクトリ(フォルダ)を myplace に代入 playsound="001.wav" ; 再生させたいファイル名 myplace2="test.exe" ; 実行ファイル名 myplace3=myplace+"\\date\\"+playsound bcopy myplace2,myplace3 ; 実行ファイルから、dateフォルダの中にwavを取り出す ; mci "play date\\001.wav" ; 再生 ;



この記事に返信する


a

リンク

2007/4/3(Tue) 19:32:56|NO.6922

>dateフォルダ内にコピーはされるものの、ファイルが壊れてしまうのか、wavファイルが再生不能となってしまいます。
コピーされたものが正しいファイルかどうかが問題。

>myplace2="test.exe" ; 実行ファイル名
>myplace3=myplace+"\\date\\"+playsound
>bcopy myplace2,myplace3 ; 実行ファイルから、dateフォルダの中にwavを取り出す

デバッグしづらい変数名なのが大問題。変数名だけを変えましたよ?よく読んでください。

myplace = dir_cur snd_name = "001.wav" ; packされているファイル名 exe_name = "test.exe" ; 実行ファイル名 sndfile_to = myplace + "\\date\\" + snd_name ; コピーファイルのパス bcopy exe_name, sndfile_to
変数名を適切なものにすれば、何が間違っているのかは明白でしょう。

# 余談
# date は 日付を意味する英単語です。
# データを意味する英単語は data です。
# 複数のデータを意味するとして datas とするのは間違いです。
# 単数のデータ datum の複数形が data です。



ふほ

リンク

2007/4/3(Tue) 19:40:38|NO.6924

確認せず思った事だけ言って見るけど、「test.exe」というファイルを「001.wav」というファイル名にして「date」フォルダ内にコピーしている気がするのだけど、これでいいの?



a

リンク

2007/4/3(Tue) 19:40:51|NO.6925

デバッグの手間を惜しまず、コピーされたファイルが元の音楽ファイルかどうかを調べましょう。(それをしないのが初心者・初級者)
調べるには二つのファイルを比較するためのスクリプトを組んだり(exist,bload,peekだけで十分できる)、バイナリエディタで比較するとか、DOSの "FC" コマンドで比較するとか、いろいろあります。



a

リンク

2007/4/3(Tue) 19:47:52|NO.6926

失礼。元のファイルかどうかを比較した結果が一致しなかったために bcopy の使い方に問題があるのではないかと思ったわけですね。
使い方に問題があるのでは?と思ったら真っ先にヘルプの説明を読むことです。



ONION software Copyright 1997-2023(c) All rights reserved.