ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月28日(日) 01:16

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 11 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2008年2月05日(火) 20:37 
先日、ディレクトリを作ることをおかげさまで教えていただきました。
でも、そのときの関数は「createdirectry」であり、フォルダ作成のみが
可能でした。

copy

type

などのDOSコマンドをコンパイルされたABオブジェクトから実施することは
可能なのでしょうか?

達人の皆様ご指導お願いいたします。

例)
testと入力するとtestフォルダをつくり、workにあるすべてのファイルを
コピーする。
createdirectory c:\test
copy c:\work\*.* c:\test

ようなことをしてみたいのです。このときのc:\testは、変数となるため
ABでしたいのです。


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2008年2月05日(火) 21:55 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
お住まい: 埼玉県東松山市
調べてみると、cmd.exeやcommand.comのコマンド「/C」を使うと出来そうです。
cmd.exeはWin9x系には入っていないと思うので、OSのバージョン確認を最初にしておくべきかもしれません。

構文: cmd.exe /C コマンド

例1
コード:
Dim buf As *Byte,command As *Byte
' ...
wsprintf(buf,"/C %s",command)
Exec "cmd.exe",buf
例2
コード:
#console
Dim A$ As String,buffer As *Byte
Print "Input Command"
Input A$
A$="/C "+A$
buffer=StrPtr(A$)
Exec "cmd.exe",buffer
Sleep(-1)

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
 記事の件名: DOSコマンド
投稿記事Posted: 2008年2月05日(火) 22:13 
オフライン

登録日時: 2005年9月02日(金) 22:15
記事: 96
お世話になります。

 バッチファイルを作ってから一括処理するのも面白そうですね
コード:
#N88BASIC

Open "TEST.BAT" For Output As #1

Print #1,"MKDIR C:\TEST"
Print #1,"COPY C:\WORK\*.* TEST\"

Close #1

Exec "TEST.BAT"

End


通報する
ページトップ
投稿記事Posted: 2008年2月06日(水) 14:54 
せっかくなので、Dosを捨ててWinアプリで作りませんか?

ABのメニューからヘルプ(H)HELP->トピックス(T)でActiveBasicライブラリ(HELPファイル)を開きます。
目次->リファレンス->Win32AIP->システムサービス->ファイル
でファイル操作に関するAPIが見えます。

ファイルをコピーするには、CopyFileを使用します。

ワイルドカードは使えなかったと思います。
その場合はFindFirstFileでファイル一覧を取得し、CopyFileで順次コピーする事になると思います。
面倒なようですけど、ABでWinアプリを作るには避けて通れない道です。
.Netなら便利なAPIがたくさん有るんですけどね。


通報する
ページトップ
   
投稿記事Posted: 2008年2月06日(水) 22:13 
オフライン

登録日時: 2005年9月02日(金) 22:15
記事: 96
お世話になります。

 > せっかくなので、Dosを捨ててWinアプリで作りませんか?

そうですねとも、そうでないとも言えます。

 ベーシックを捨ててC言語で作りませんか?と同様に
 自由を失ったらつまらないと言えます。

アクティブベーシックにできることは無限の可能性があると感じます。
 


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2008年2月06日(水) 22:32 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
お住まい: 埼玉県東松山市
> せっかくなので、Dosを捨ててWinアプリで作りませんか?

DosにもWinアプリにも、それぞれ利点と欠点があると思います。
挙げるなら、例えばDosを使う場合は新しくコードを書く量が少なくてすむとか、汎用性が低いとか
Winアプリの場合は汎用性がいいとか、ソースコード量が増える→(いろいろな意味で)資源を無駄にしてしまうとか

都合のいいほうを選ぶのがいいのでは?

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
投稿記事Posted: 2008年2月10日(日) 00:58 
意外と簡単なようで、分かりませんでした。
ありがとうございます。


> お世話になります。
>  バッチファイルを作ってから一括処理するのも面白そうですね
>
コード:
#N88BASIC
> 
> Open "TEST.BAT" For Output As #1
> 
> Print #1,"MKDIR C:\TEST"
> Print #1,"COPY C:\WORK\*.* TEST\"
> 
> Close #1
> 
> Exec "TEST.BAT"
> 
> End
> 


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2008年2月10日(日) 01:56 
winアプリを使ってdosコマンド機能を実現しましょうというのは言い方はともかく、素直な意見だと思います

「言葉の表現」からするとゲストでなくてもよいのでは

dosコマンドの機能を包括し、関数たちをわかりやすいdos記述で、winアプリで作成すればいいのかな?


 フォルダの作成   Mkdir(”パス¥フォルダ名”)
 ファイルのコピー  Copy(”パス¥フォルダ¥ファイル名”,”パス¥フォルダ¥”)
 ファイル内容の表示 Type(”フォルダ¥ファイル名”)

理想論でした。


通報する
ページトップ
   
投稿記事Posted: 2008年3月10日(月) 17:09 
みなさんのおかげで目的達成できました。

ただ、1)DOSコマンドのコピーをしている際や
2)DELをする際に

1)同じファイル名があると聞かれる
2)全消ししようとするといいですかと聞かれる

ことが発生しました。仕方ないですね。


ありがとうございました。スッキリです。


通報する
ページトップ
   
投稿記事Posted: 2008年3月11日(火) 23:35 
オフライン

登録日時: 2005年9月02日(金) 22:15
記事: 96
お世話になります。

 DOSコマンドの基本的なスイッチを使用すれば回避できると思われます。
 コマンドラインの後ろに下記スイッチを指定してください。

> 1)同じファイル名があると聞かれる

  /Y

> 2)全消ししようとするといいですかと聞かれる

  /Q


通報する
ページトップ
投稿記事Posted: 2008年5月22日(木) 08:14 
OSAMUさんへのコメントです。

このスイッチをつけることで、システムからの質問が消えますか?

やってみます。

ありがとうございます。


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 11 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Ahrefs [Bot] & ゲスト[14人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean