(12585)
12585:
ディスク空き容量表示 volumeinfo.exe改
投稿者:
konno
2025/10/26(日) 20:55
コメント数 2
野ざらし言#6057 からのツリーで話題になっているディスク空き容量表示で
VectorのWin32コンソールソフト volumeinfo.exe というのがありました。
作者は VA007219 さんで、Cのソース付きでした。
非常に詳細で冗長な情報を表示してくれますが、欲しいのは空き容量なので
Cのソースを編集して BCC32 でコンパイルしたら簡易表示のものが出来ました。
ファイル名もLFNをSFNに変更しました。
C:\BCC\BIN>VOLINFO.EXE
Volume: C:\
Device: "\Device\HarddiskVolume3"
Total: (243195812.0KB) (237496MB) (231.93GB)
Free: (75191360.0KB) (73429.1MB) (71.7081GB)
いらない情報を非表示にしただけですが、どうでしょうか。
VZマクロで既に出来ていて、あとは表示の変更だけなのに躓いていて
気分転換にやってしまいました。(^^;
使い方は
volinfo.exe
で Cドライブの容量を表示するようです。
volinfo.exe D: なら Dドライブの容量表示
テスト版として WSP自己解凍の差分にしました。
カレントにオリジナルの volumeinfo.exe と volinfo3.com をおいて volinfo3.com実行します。
#txt:volinfo.zip を右クリックで落とせます。
テスト版なのでバグがあるかもしれません。自己責任でお願いします。
- No.12585 -
このTreeへ
[リストへもどる]
soft
(12585)
12586:
Re: ディスク空き容量表示 volumeinfo.exe改
投稿者:
konno
2025/10/28(火) 01:46
12585 番 konno さんへのコメント
> > VZマクロで既に出来ていて、あとは表示の変更だけなのに躓いていて
野ざらし言#6144 でめざらさんにヒントをいただきました。
> C だったら,printf の書式制御が使えますよね。
> マクロとそれほど変わらないですけど。
おお、そうか! と思って調べたんですが、BCC には見つからない。(>_<)
関数で実現しているページがあったのでそれを参考にやってみました。
C言語 − C言語 入門 > C言語 ケーススタディ > 金額を3桁ごとにカンマで区切って表示
https://www.orchid.co.jp/computer/cschool/money2.html
この中の例題が3っつありますが
(3)汎用に使用できる関数に改造
これを使って試行錯誤しました。
で、警告は沢山出ますが、なんとか動いて表示は出来ました。
C:>VOLINFO.EXE
Volume: C:\
Device: "\Device\HarddiskVolume3"
Total : 243,195,812KB 237,495MB 231GB
Free : 74,043,516KB 72,308MB 70GB
これならまあまあでしょうか。
ちなみに DFの表示は
C:>df
Device kbytes used avail capacity mounted on
C: 243,195,812 169,152,008 74,043,804 69.55% C:\
DOSVAXJ3テスト版では数字がぴったり同じになりました。\(^^)/ ヤッタ-
- No.12586 -
このTreeへ
コメント元:12585 へ
[リストへもどる]
pre
(12585)
12587:
ディスク空き容量表示 volinfo.exe改4
投稿者:
konno
2025/10/28(火) 19:39
12585 番 konno さんへのコメント コメント数 1
野ざらし言#6146 で %表示の要望があったのでやってみました。
何度も試行錯誤してやっと何とかできました。
C:>VOLINFO.EXE
Volume: C:\ Device: "\Device\HarddiskVolume3"
Total : 243,195,812KB 237,495MB 231GB 69.9%
Free : 73,218,808KB 71,502MB 69GB 30.1%
オプションに D 又は D: を付けると Dドライブを表示します。
C:>VOLINFO.EXE D
Volume: D:\ Device: "\Device\HarddiskVolume4"
Total : 239,411,196KB 233,799MB 228GB 58.7%
Free : 98,940,516KB 96,621MB 94GB 41.3%
使い方は
volinfo.exe
で Cドライブの容量を表示するようです。
volinfo.exe D: なら Dドライブの容量表示
テスト版として WSP自己解凍の差分にしました。
カレントにオリジナルの volumeinfo.exe と volinfo4.com をおいて volinfo4.com実行します。
#txt:volinfo4.zip をクリックで落とせます。
テスト版なのでバグがあるかもしれません。自己責任でお願いします。
追記
すみません、ページへのリンクは張るべきでしたね。
トップ>ダウンロード>Windows11/10/8/7/Vista/XP/2000/NT>ユーティリティディスク用>状況表示
https://www.vector.co.jp/vpack/filearea/winnt/util/disk/status/by_name.html
このページの下から2番目
volumeinfo 2 FREE displays the Volume Infomations. (04.08.10公開 65K)
ハードウエアのページなどもあってわかりにくかったですね。申し訳ない。m(__)m
- No.12587 -
このTreeへ
コメント元:12585 へ
[リストへもどる]
pre
(12585)
12588:
Re: ディスク空き容量表示 volinfo.exe改4
投稿者:
konno
2025/10/29(水) 03:22
12587 番 konno さんへのコメント コメント数 1
> テスト版として WSP自己解凍の差分にしました。
> カレントにオリジナルの volumeinfo.exe と volinfo4.com をおいて volinfo4.com実行します。
オリジナルがLFNなので差分を当てるのが難しいようようです。
ということで、実行ファイルをそのまま ZIP して差し替えました。
#txt:volinfo4.zip をクリックで落とせます。
テスト版なのでバグがあるかもしれません。自己責任でお願いします。
追記
上の ZIP がウイルススキャンではねられてしまうようなので LHA でパックしてみました。
実行ファイルはウイルススキャンで問題出てないです。
#txt:VOLINFO.LZH をクリックで落とせます。
- No.12588 -
このTreeへ
コメント元:12587 へ
[リストへもどる]
soft
(12585)
12590:
ディスク空き容量表示 volinfo.exe改5
投稿者:
konno
2025/10/29(水) 19:55
12588 番 konno さんへのコメント コメント数 1
- No.12590 -
このTreeへ
コメント元:12588 へ
[リストへもどる]
pre
(12585)
12592:
Re: ディスク空き容量表示 volinfo.exe改5
投稿者:
としき
2025/10/31(金) 23:46
参照先:http://toshiki.la.coocan.jp/
12590 番 konno さんへのコメント コメント数 1
- No.12592 -
このTreeへ
コメント元:12590 へ
[リストへもどる]
soft
(12585)
12594:
Re^2: ディスク空き容量表示 volinfo.exe改5
投稿者:
konno
2025/11/01(土) 21:48
12592 番 としき さんへのコメント コメント数 1
> bccって、書式指定文字列にカンマ区切り指定は使えないんですか?
> cf.
> https://www.tamasoft.co.jp/lc/hlp/F056.html
> https://ryuichi1208.hateblo.jp/entry/2021/01/01/000000_1
このサイトでは
> 桁区切り %u、%d、%f などの 10 進表示の場合、3桁ごとにカンマ(,)で区切ることができる。 これは % と型指定子の間に ' をつける。
> printf("%d -> %'d\n", 12345678, 12345678); printf("%f -> %'f\n", 9999.9999, 9999.9999); このプログラムは以下のように出力される。
このように "'" を付けることで出来ると言っていて、多くのサイトでそのように
書いていますが、私の手元のBCCではこれが効きません。
> 12345678 -> 12,345,678 9999.999900 -> 9,999.999900 ただし 3 桁ごとの区切りが可能かどうか、また区切り文字が何になるかはロケールの LC_NUMERIC に依存する。 例えばロケールに C が指定されていると、桁区切りは出力されない。
これを見てちょっと調べてみましたが、手元のBCCでは出来なさそうでした。
そもそも「BCC 3桁区切り」で検索して自前で関数を作るページが複数あるので
BCCでは自前で関数を作るしかないのかと思った次第です。
でもおかげで自前関数で出来ることがわかったのでいい勉強になりました。
- No.12594 -
このTreeへ
コメント元:12592 へ
[リストへもどる]
soft
(12585)
12595:
Re^3: ディスク空き容量表示 volinfo.exe改5
投稿者:
としき
2025/11/03(月) 23:56
参照先:http://toshiki.la.coocan.jp/
12594 番 konno さんへのコメント コメント数 1
> 書いていますが、私の手元のBCCではこれが効きません。
あら、それは残念。
そういえば、遠い昔、Turbo-Cでも3桁カンマルーチンをつくるという話があった
ようなうろ覚えの記憶もあったりします。新たに付け加えても上位互換は担保できる
だろうから互換性の問題でもないだろうし、なぜないんだろう。
いや、実はですね、手元のDelphi4だと、3桁カンマルーチンはデフォルトで具備。
1998年12月のバージョンなんですけどね。
もしかしてお持ちのBCCって、それよりも古いバージョンなんですか?
ということで、Delphiでのサンプルコードをうちの板塀サーバにアップしました。
27-138-85-108.rev.home.ne.jp:9801/dskfree.zip
あ、うちの板塀はHTTPSには対応していませんので、念のため。
- No.12595 -
このTreeへ
コメント元:12594 へ
[リストへもどる]
soft
(12585)
12596:
Re^4: ディスク空き容量表示 Delphi
投稿者:
konno
2025/11/05(水) 15:56
12595 番 としき さんへのコメント コメント数 1
> いや、実はですね、手元のDelphi4だと、3桁カンマルーチンはデフォルトで具備。
> 1998年12月のバージョンなんですけどね。
そうなんですか。うーむ、なんなんでしょうね。
私が使い方をわかってないだけかもしれません。
> もしかしてお持ちのBCCって、それよりも古いバージョンなんですか?
Embarcadero C++ 10.2 Tokyo Command-line Compiler という表示がありました。
> 2018年5月10日 11:00
> エンバカデロ・テクノロジーズは、2016年7月21日に提供開始したWindows向けC++コンパイラ「Embarcadero C++ Compiler」の新バージョン10.2.3を5月10日にリリースし、ダウンロード提供開始しました。
> 新バージョンは、最新のC++Builder 10.2.3 Tokyoに搭載されているWindows向けコンパイラで、Clangコマンドライン・インターフェイスに対応した新しいコンパイラ「bcc32x」を搭載しています。
どうやらこれのように思うのですが、基本のライブラリが少ないような気がします。
無料版だから? でもここで一つわかったことがあります。
私が使ったのは bcc32c.exe なのですが、
> 今回の新バージョンでは、従来のコンパイラと互換性を持つ「bcc32c」に加えて、Clangコマンドライン・インターフェイスに対応したコンパイラ「bcc32x」を提供しています。
> Clangは、C/C++コンパイラ向けの共通フロントエンドで、Objective-C、FreeBSD、Android NDKなどでも採用されています。
> 共通のコンパイラ・フロントエンドを利用できるようになったことで、CMakeのような人気のあるビルドツールなどを用いた開発でEmbarcadero C++ Compilerを利用できるようになります。
とありました。bcc32x.exe を使えばもっと色々な書式が使えるかもしれないですね。
結局は使い方がわからないとだめってことですかね。
> ということで、Delphiでのサンプルコードをうちの板塀サーバにアップしました。
いただきました。やっぱり書式制御で出来てしまうのは良いですね。
ところでこのソース、どこでカンマ区切りを指定しているのでしょうか。
Writeln(
Format(
'%14.2n %10.2n %14.2n %10.2n %6.2f %4s',
[
TotalNumberOfBytes / (1024*1024), TotalNumberOfBytes / (1024*1024*1024),
FreeBytesAvailable / (1024*1024), FreeBytesAvailable / (1024*1024*1024),
((TotalNumberOfBytes - FreeBytesAvailable)/TotalNumberOfBytes * 100),
Drive
]
)
);
ソースのどこにもそれらしいものが見当たらないのですが。
- No.12596 -
このTreeへ
コメント元:12595 へ
[リストへもどる]
pre
(12585)
12598:
Re^5: ディスク空き容量表示 Delphi
投稿者:
としき
2025/11/05(水) 23:21
参照先:http://toshiki.la.coocan.jp/
12596 番 konno さんへのコメント
> Embarcadero C++ 10.2 Tokyo Command-line Compiler という表示がありました。
「Embarcadero」の表記があるということは、かなり新しそうな気がしますね。
私が「1998年12月のバージョン」と書いたのは、コンパイラのタイムスタンプが
そうなっているのでした。
> ところでこのソース、どこでカンマ区切りを指定しているのでしょうか。
#12595に書いたとおり「3桁カンマルーチンはデフォルト」なんですよ。
つまり、あれだけのコードでカンマをつけてくれる。
逆に、カンマ無しにするにはどうするんだろう。ごそごそ。
あ、なるほど、ThousandSeparator っていう、暗黙のシステム変数があるんだ。
これをヌルにしてやればカンマ無しにできるらしい。
さらにこの暗黙の変数の初期値は、LOCALE_STHOUSAND 変数から取得するとのこと。
そしてこの LOCALE_STHOUSAND 変数が、いわゆるロケールというもので動的に変化する
らしい。
らしいが多くて申し訳ない。
だって、何もわかってないのですもの。
- No.12598 -
このTreeへ
コメント元:12596 へ
[リストへもどる]
soft