ActiveBasic 動画の画面のサイズを取得する方法

このQ&Aのポイント
  • 動画の画面のサイズを取得する方法について調査しています。
  • Fieldの使い方を理解できれば、動画の画面のサイズを取得することができます。
  • 具体的なコードのサンプルを提供しており、試してみることができます。
回答を見る
  • ベストアンサー

ActiveBasic 動画の画面のサイズを取得したい(Fieldの使い方)

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

質問者が選んだベストアンサー

  • ベストアンサー
  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.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/se079072.html 此方のテストでは分かりやすいようテキストファイルを バイナリ扱いで操作しましたが参考にバイナリエディタのダンプも 画像で張っておきます 読み込み元が boot.ini  書き込みファイルは test.txt

if-so-at
質問者

お礼

お返事遅くなってしまい、申し訳ありません。 出来ました! 申し訳ないです・・・バイナリエディタで開かないと、無理ですよね・・・ そして、ここ、間違えてました。 『Put #1,8,str』→『Put #1,1,str』 あ、ちなみに、バイナリエディタは、B'zを使っています。 今までのお付き合い、ありがとうございました。 また質問させていただきますが、その時もよろしくお願いします。

その他の回答 (2)

  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.2

#1訂正 >もし65で行きたいのなら >Field #1, Lof(1)   だと思います これは無しで・・・・バッファ破壊される可能性大 バイト位置などを考えると Field #1, 8 Get #1,8,str   でいけるんじゃないかなと思います あくまで全て未確認ですので確認はしてください

if-so-at
質問者

お礼

ご解答ありがとうございます。 確かにそうだ! と思い、早速『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

  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.1

実際に使ったことはありません 以下URLを見ると http://orios.s151.xrea.com/activebasic/basic/lesson1-5-3.html Field #1, 10 とした場合 >Get #1,65,str ここは65ではなくなると思います(65/3=21 じゃないですか?) ※ 実際のバイト位置考慮してません もし65で行きたいのなら Field #1, Lof(1)   だと思います

関連するQ&A

  • 動画のサイズ指定

    例えばこちらの http://www.13hw.com/channel/interview/Lou_Oshiba_01.html ルー大柴さんの動画ですが、ソースを見ると、サイズが width="365" height="275" となっています。 これって下のタイムライン部分(正式名称わからないです…動画をストップさせたり音量を調整できる部分)を入れてこのサイズなんですよね。 もしこれを、縦も横も半分にしたい場合、単純に1/2でいいんですか? 下の部分はサイズ変更しても高さが変わりませんよね? 下部分を入れないとwidth="365" height="255"、 下部分は高さが20pxでした。 width="365/2" height="275/2"のサイズですか? width="365/2" height="255/2+20"のサイズですか?

    • ベストアンサー
    • HTML
  • データ上のサイズを取得したい

    実際のサイズではなくデータ上のサイズを取得するためにはどう変更したらいいですか。 Option Explicit 'シートの名前を変更する Private Sub workbook_open() Dim fso As Object Dim filePath As String Dim fileSize As Double ' ファイルパスを取得 filePath = ThisWorkbook.FullName ' ファイルシステムオブジェクトを作成 Set fso = CreateObject("Scripting.FileSystemObject") ' ファイルサイズを取得(単位はバイト) fileSize = fso.GetFile(filePath).Size ' ファイルサイズをKBに変換(切り上げ) fileSize = Application.WorksheetFunction.RoundUp(fileSize / 1024, 0) ' ワークシートの名前を変更 Dim NewSheetName As String NewSheetName = fileSize & "KB" Sheets(1).Name = NewSheetName End Sub

  • ファイルサイズ

    ASP.NETです 以下のファンクションでファイルサイズを取得しようといるのですが、実行するとアプリケーションエラーが発生します。 function GetFileSize( Path as String) as double dim FileSize as long = 0 if len(Path) > 0 then FileSize=filelen(Path) End If return math.Round(FileSize/1024,0) end function どうしたらいのですか?

  • VBAのフォーム上にTextBoxたくさんあるとき

    Microsoft Excel 2013 の VBAのフォーム機能を利用してます。 TextBoxにセルを参照して文字が入ってくるようにしています。、 参照するセルによって文字列の長さが違うので 文字の大きさを自動調整してくれるマクロを使っているのですが TextBoxがいっぱいあるため、以下のように非常に長いプログラムになってしまいました。 Private Sub textBox1_Change() Const InitialFontSize As Double = 40 '初期フォントサイズ Dim BufWidth As Double Dim BufHeight As Double With Me.TextBox1 .Font.Size = InitialFontSize BufWidth = .Width BufHeight = .Height .AutoSize = True While .Width > BufWidth .Font.Size = .Font.Size - 2.5 Wend .AutoSize = False .Width = BufWidth .Height = BufHeight End With End Sub TextBox2~67は繰り返し Private Sub textBox67_Change() Const InitialFontSize As Double = 40 '初期フォントサイズ Dim BufWidth As Double Dim BufHeight As Double With Me.TextBox67 .Font.Size = InitialFontSize BufWidth = .Width BufHeight = .Height .AutoSize = True While .Width > BufWidth .Font.Size = .Font.Size - 2.5 Wend .AutoSize = False .Width = BufWidth .Height = BufHeight End With End Sub 過去の質問等を参考にいろいろ試してみたのですが 自分の力不足でうまくできませんでした。 うまくまとめられるような方法等ありましたらお知恵を拝借できないでしょうか よろしくお願い致します

  • Excelセルのサイズに合わせて画像を表示させたい

    Excelのセルの中に、画像ファイル(撮影された写真)のサイズを挿入するときに、セルのサイズに合わせて画像を表示させたいと考え、インターネット上でVBの下記のマクロを探してみました。  セルをダブルクリックすると、画像ファイルの読み出しが行なわれるのですが、セルのサイズにピッタリと合わず、 「列」にわずかに隙間が空いてしまいます・・・。  セルのサイズに合わせる為にはどうすればよいでしょうか?  もう一つ質問させていただきたいのですが、一部の画像は読み出しだ際に、縦にして自動的に表示させたいです。 (これまではExcelの「図の書式設定」で-90度と手入力していました)  何卒宜しくお願い致します。    Excel2003  Visual Basic 6.5 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) Dim myPic Dim myRange As Range '画像を配置するセル範囲 Dim rX As Double, rY As Double myPic = Application.GetOpenFilename("画像ファイル,*.jpg;*.jpeg;*.gif;*.tif") If VarType(myPic) = vbBoolean Then Exit Sub Set myRange = Target 'このセル範囲に収まるように画像を縮小する Application.ScreenUpdating = False With ActiveSheet.Pictures.Insert(myPic).ShapeRange rX = myRange.Width / .Width rY = myRange.Height / .Height If rX > rY Then .Height = .Height * rY Else .Width = .Width * rX End If .Left = .Left + (myRange.Width - .Width) / 2 '写真を横方向の中央に配置 .Top = .Top + (myRange.Height - .Height) / 2 '写真を縦方向に中央に配置 End With Application.ScreenUpdating = True Cancel = True End Sub

  • 二つの期間が何か月か取得する方法はありますか?

    例えば Sub test() Dim str期間 As String Dim 開始 As Date Dim 終了 As Date str期間 = "2014/07/09~2014/07/8" 開始 = Left(str期間, 10) 終了 = Mid(str期間, 12) End Sub この場合は、12か月を取得するには この続きをどうすればいいでしょうか? str期間 = "2014/07/01~2014/07/31" も12か月、 str期間 = "2014/07/09~2014/07/31" も12か月を返すにはどうすればいいですか?

  • VBAの文字列の中に”(全角のダブルコーテーション)を使う

    VBAのStringの中に”(全角のダブルコーテーション)を使おうとしているのですが、VisualBasicEditorにより自動的に ""(半角のダブルコーテーション2つ)に変換されてしまいます。 Dim str as String str = "abc”def"    ↓ str = "abc""def" 文字列中に全角のダブルコーテーションを使う方法を教えてください。よろしくお願いします。

  • 文字数の取得方法(Active Basic 4)

    タイトルのとおりです。 Active Basicを使ってプログラミングをしているのですが、どうしても文字数の取得方法がわかりません。 命令文「Len()」を使えば文字列の「Byte」はわかりますが、文字数が取得できません。 何か良い方法はありますか? (Active Basic 参考プログラム) Dim Str$ As String Str$ = "abc"    '3文字 計3バイト Print Len(Str$)   '「3」が表示されます Str$ = "やほ~"   '3文字 計6バイト Print Len(Str$)   '「6」が表示されます

  • VB 2008: 文字サイズの指定要領が判りません!

    指定秒だけメッセージを表示する関数を作成しています。 しかし、文字サイズの設定要領が判りません。 VB.NET 学習40日余という初学者です。 宜しくお願いします。   Sub PauseMsg2(ByVal Msg As String, ByVal PauseTime As Double, ByVal aColor As Color, ByVal iFontSize AS Integer)     Dim frm As New Form     Dim lbl As New Label()     With lbl       .Text = Msg       .BorderStyle = BorderStyle.None       .Location = New Point(10, 10)       .ForeColor = aColor       .Size = XXXXX       .Width = 478     End With     With frm       .HelpButton = False       .FormBorderStyle = FormBorderStyle.FixedDialog       .ControlBox = False       .MaximizeBox = False       .MinimizeBox = False       .Text = ""       .Width = 500       .Height = 20       .StartPosition = FormStartPosition.CenterScreen       .Controls.Add(lbl)       .Show()       Pause(PauseTime)       .Close()     End With   End Sub   ' ------------   ' ポーズ関数   ' ------------   Sub Pause(ByVal PauseTime As Double)     Dim Finish As Double = DateAndTime.Timer + PauseTime     Do       DoEvents()     Loop Until DateAndTime.Timer > Finish   End Sub

  • アクセス フィールド名の変更

    フィールド名 [1],[2],・・・・を [090701],[090702],・・・ に変更するように Dim i As String Dim ret As String ret = InputBox("入力例  090701") i = ret DoCmd.RunSQL "SELECT [クエリ112].[1] AS [" & i & "], [クエリ112].[2] AS [" & i + 1 & "], ........中略 End Sub としましたが [090701],[90702],[90703],・・・ 2番目から 090702 になりません。 どのようにすればよいのか教えていただけませんか。