重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お世話になっています。
今回、動画の画面のサイズを取得したく、方法を探していたところ、
以下のようなページを見つけました。
http://tokyo.cool.ne.jp/kanain/APIHTM/AVI_Size.h …

しかし、Fieldのところで詰まってしまい、先へ進めません・・・
#N88BASIC

Dim path As String
Dim str As String
Dim width As Double
Dim height As Double

Input"動画ファイルへのパス:",path

Open path As #1
Field #1,3
Get #1,65,str
Close #1

とりあえず、ここまで書きましたが、
数値が返ってきません・・・

(mpgで実験しました)
やり方をご存知の方、お手数ですがご教授いただければ幸いです。

AB 4.23.00
Win XP

A 回答 (3件)

気が向いたので此方で同一コード使って実行してみました


動いてますよどんな確認されてますか?(確認方法が悪いだけだと思われます)

>Open "test.txt" As #1
>Field #1,8
>Put #1,8,str
>Close #1
このコードは test.txt の65バイト目から8バイトのデータを書き込みます
それ以外の(1バイト目から64バイト目)のデータは 0 が書き込まれます
そのファイルをメモ帳などで開いてもまともには読めません

バイナリエディタなどを使ってファイルの中身を確認してみてください
バイナリエディタって何?ってことなら私が使ってるものの紹介となりますが
http://www.vector.co.jp/soft/dl/win95/util/se079 …

此方のテストでは分かりやすいようテキストファイルを
バイナリ扱いで操作しましたが参考にバイナリエディタのダンプも
画像で張っておきます
読み込み元が boot.ini  書き込みファイルは test.txt
「ActiveBasic 動画の画面のサイ」の回答画像3
    • good
    • 0
この回答へのお礼

お返事遅くなってしまい、申し訳ありません。

出来ました!
申し訳ないです・・・バイナリエディタで開かないと、無理ですよね・・・

そして、ここ、間違えてました。
『Put #1,8,str』→『Put #1,1,str』

あ、ちなみに、バイナリエディタは、B'zを使っています。

今までのお付き合い、ありがとうございました。
また質問させていただきますが、その時もよろしくお願いします。

お礼日時:2010/04/17 23:36

#1訂正


>もし65で行きたいのなら
>Field #1, Lof(1)   だと思います
これは無しで・・・・バッファ破壊される可能性大

バイト位置などを考えると
Field #1, 8
Get #1,8,str   でいけるんじゃないかなと思います

あくまで全て未確認ですので確認はしてください
    • good
    • 0
この回答へのお礼

ご解答ありがとうございます。

確かにそうだ!
と思い、早速『Field #1, 8』の方でやらせていただいたのですが、
やはり取得できません(正確には中点のようなものが表示されます)。

もちろん、orios様のサイトも拝見し、レッスンの方も時々参考にさせていただいています(それでもFieldは分からなかったのですけど・・・orz)。
ただ、その暗号化の部分のものは、きちんと動きました。

・・・もしかして、ちゃんと取得できているのにもかかわらず、テキストで開くからだめなのでしょうか・・・?

Dim path As String
Dim str As String
Dim width As Double
Dim height As Double

Input"動画ファイルへのパス:",path

Open path As #1
Field #1,8
Get #1,8,str
Close #1

Open "test.txt" As #1
Field #1,8
Put #1,8,str
Close #1

お礼日時:2010/03/29 22:10

実際に使ったことはありません


以下URLを見ると
http://orios.s151.xrea.com/activebasic/basic/les …

Field #1, 10 とした場合
>Get #1,65,str ここは65ではなくなると思います(65/3=21 じゃないですか?)
※ 実際のバイト位置考慮してません

もし65で行きたいのなら
Field #1, Lof(1)   だと思います
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!