• 締切済み
  • すぐに回答を!

VBの音声ファイルの格納について

参考にしている資料に MMControl1.FileName = fstrvoice + "spk0.wav" というのがあるのですが、これを.Net環境で打ち込むとfstrvoiceが宣言されていない、というエラーになってしまいます。 教授からの説明によると、fstrvoiceは宣言の必要が無く、そこにファイルの情報が格納されていて、そのファイルにspk0.wavと名前をつけているそうなのです。 これと同じことを.Net環境で行うためにはどのようにしたら良いでしょうか。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数108
  • ありがとう数5

みんなの回答

  • 回答No.4

念のためこいつをぺたぺた。 http://dobon.net/vb/dotnet/vb6/apppath.html

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • ArrayにDouble型の数字を格納

    環境はVisual Studio 2005 Standard Editionです. ArrayにDouble型の数字を格納しようしたら,以下のエラーが表示されました. 型 'System.Double' のオブジェクトを型 'System.Array' にキャストできません。 どのようにArrayを宣言すればよいのでしょうか.よろしくお願いします.

  • ファイルからデータを読み込んで配列に格納するには

    読んでいただいてありがとうございます。 Perlをはじめたばかりなのと プログラミング自体もまだまだですので 困っております。 テキストデータ 例えば apple りんご banana バナナ orange オレンジ などというファイルから読み込んで、 my $data ={ my @english, my @japanese, }; などの、配列の構造体に格納するにはどのようにしたら よいのでしょうか。 最初、本を少し読んだだけの知識で、 use strict; use warnings; my $filename = 'data.txt'; my $data = { my @english, my @japanese }; open(IN,$filename) or die "$filename: $!"; while(my $line=<IN>){ for(my $i=0;$i<N;$i++){ ($data->{@english}[$i],$data->{@japanese}[$i])=split(/ /,$line); print "$data->{@english}[$i]\n"; } } close(IN); } などと書いて、 apple banana orange と表示されるのを期待したのですが、 ダメでした。 参考までに私の誤ったプログラムものせましたが、 全然違っているかもしれませんので、まったく新たに アドバイスしていただいてもかまいません。 これを応用したものを使いたいので ぜひともどなたかお教え いただければと思います。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • WMPのアルバム・曲情報の格納場所を教えてください。

    WMPを使って、アルバムアートやアルバム情報を入力してwavファイルを聞いていましたが、Windowsの再インストールの必要が出てきました。 再インストール後にアルバム情報を再入力するのは面倒なので、私が入力したアルバム情報及びアルバムアートが保存されているファイルがあれば、そのファイルを再インストール後に復元しようかと思っております。 上記のようなアルバム情報が格納されているファイルの保存場所をご存じでいしたら、教えていただけますか。

  • 回答No.3

.netは未経験ですので、間違ってたらごめんなさい。 FileNameというからには、fstrvoiceには"c:\winnt\"のようなファイルパスを表す文字列が入るような気がします。 これなら『そこにファイルの情報が格納されていて、』の部分に合致しますよね。 そう考えた場合、No.1、No.2の方も仰られている通り、fstrvoiceをString型の変数として宣言し、ファイルパスを代入してやればよいと思います。 exeファイルと同じ場所にspk0.wavという音声ファイルがあると仮定すると、App.Pathを利用して以下のようになります。 Dim fstrvoice As String fstrvoice = App.Path & "\"

共感・感謝の気持ちを伝えよう!

質問者からのお礼

有難うございました。 fstrvoiceにはファイルのパスではなく、音声情報が入っているらしいんです・・・とりあえず別の方法を考えて見ます。

  • 回答No.2

問題解決のための話ではありませんが >変数は必ず宣言する癖をつけましょう。 について補足します http://homepage1.nifty.com/CavalierLab/lab/vb/implicit.html ------------------- タイプミスによる例を挙げると Public InternetID as Integer Private Sub Command1_Click() InternetID = InternetID End Sub Private Sub Command2_Click() InternatID = InternetID + 1 End Sub コマンドボタンが二つあり、 どちらをクリックしても、InternetIDの値が増えるように 組んだ・・・はずです。 実際「コンパイルが通ってしまう」ので うまくいくかと思いきや Command2の中、Intern"a"tIDになってます。 ローカル変数InternatIDが自動的に確保され、 代入されているので、InternetIDの値が変化しません 変数の宣言を強制しておけば、これらのタイプミス があったばあいにコンパイラが 「変数Internatが定義されていないよ?」と怒ってくれます VB.NETでは宣言が必須だったと思います -------

共感・感謝の気持ちを伝えよう!

質問者からのお礼

有難うございました。 宣言はするようにしているのですが、今回は宣言の必要がないと言われていたのであえてしませんでした・・・ fstrvoiceは無視して行こうと思います。

  • 回答No.1
  • tak2003
  • ベストアンサー率32% (174/540)

変数は必ず宣言する癖をつけましょう。 なので、fstrvoiceも宣言すればいいだけです。 使わないならば外せば良いと思います。 結局MMControl1.FileName="spk0.wav"となります。 ファイル名を指定する場合、PGの全体からファイル名を検索して変更する必要が無いように、ファイル名を格納する変数を用いるのが常識です。 この場合はMMControl1.FileNameがファイル格納変数となります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

有難うございました。 参考にさせていただきます。

関連するQ&A

  • ACCESSで計算結果を格納する方法

    こんにちわ。いつもお世話になっております。 うまく説明できないのですが、フォームに入力した金額などを、Sum計算式で合計や粗利などをだせるようにテキストボックスにつくりました。 この数値をテーブルに格納したいのですが、そういう方法はあるのでしょうか。 「演算結果をテーブルに格納」というタイトルで質問されていらっしゃる方の回答を参考にしてみたのですが、うまくいきません。 いろいろ触っているうちに 「イベントプロパティに指定した式クリック時でエラーが発生しました。名前が適切ではありません:レコードの保存_Click」というエラ 「"LinkMasterGields/リンク親フィールド"プロパティの設定でエラー'名前が適切ではありません:レコードの保存_Click'が発生しました。」というエラーが出始めました。出る前に記述したところをなおしたつもりですがそれでもでてきます。 上司は「エラーが出てくるようになったら進んでいる証拠だから」とのんきなのですが、猶予をいただいてずいぶんたつのでそろそろ形にしていかなくてはと恥をしのんでいろいろ質問させていただこうと決意しました。どうぞよろしくお願いいたします。

  • excel INDIRECT 他ファイル参照

    INDIRECTの関数を使って,他のエクセルファイル(以下Bファイル)を参照すると, Bファイルを開いているときは正しく数値を表示しますが, Bファイルを閉じるとエラー表示になります。 回避する方法は無いでしょうか? (元ファイルと,Bファイルの両方から参照先に関する情報を得ているので,INDIRECT関数は,必須かと思っています) 参考までに3種類試したソースを示します。 できれば3は避けたいと考えています。 ご意見よろしくお願いします。 1:=INDIRECT("'[★★★Bファイル.xlsx]"&$A27&"'!o$7") エラー表示になります。 2:=INDIRECT("'"&MID(CELL("filename",$A$1),1,FIND("[",CELL("filename",$A$1))-1)&"[★★★Bファイル.xlsx]"&$A26&"'!o$7") エラー表示になります。(パスまで含めて参照) 3:='C:\Users\test\[★★★Bファイル.xlsx]213旅費'!O$7 正常(常に数値を表示します)

  • 大量のファイルの読み込みについて

    -512.txt~512.txtのファイルを順に読み込むプログラムを 作っています。 以下のコードのように作って動かしてみたのですが, -512から-3.txtまで入力してくれるのですが -2.txtの所でエラーが起きてしまいます. ファイルは確実に存在するのですが… fopenには大量のファイルを読み込むのは向いてないのでしょうか? 他に良い方法があれば教えて頂けると幸いです. 宜しくお願いします #include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp; int i=0; char s[256]; char filename[256]; //ファイル名編集 for(i=-512;i<512;i++){ fp=NULL; sprintf(filename,"distance\\routing_a\\%d.txt",i); printf("%sを読み込みます\n",filename); /* ここで、ファイルポインタを取得する */ if ((fp = fopen(filename, "r")) == NULL) { printf("%s file open error!!\n",filename); exit(EXIT_FAILURE); /* (3)エラーの場合は通常、異常終了する */ } } fclose(fp); /* (5)ファイルのクローズ */ return 0; } 環境 OS:windows XP 開発環境 visual studio 2008

  • 音声ファイルの日付について (勝手に変更される?)

    Windows 7 を使っています. 携帯で録音した 3ga の拡張子のついたファイルをパソコンに移動させ, 名前を付け替えたところ,ファイル作成の日付が勝手に変更されてしまったようです. 後で検索したりするときにいつ録音したものかというのは重要な情報なので, 困っています. 3pa 3pg mp3 wav などの音声ファイルというのは Win7 で聴いたり開いたりしたら そのときの日付に変更されるのでしょうか. そうだとしたらそうならないようにする方法はありますか. また,"music"や "download" のフォルダでは日付が表示されないのですが, これを表示することは出来ますか. 併せてお願いします.

  • エクセルをMysqlに格納

    いつもお世話になっております。 Linux,mysql,PHP,apacheの環境で試しているのですが、 エクセルデータをアップロードし、MysqlのBLOB型に格納したいと思っております。また、格納したMysqlのエクセルデータをダウンロードできる流れを考えております。 テンポラリファイルをそのままINSERTするとデータは格納されるのですが、抽出したときに文字化けしてしまいます。 エンコード方法など何か指定するのかと思うのですが 調べたのですが見つかりませんでした。 内部エンコードはEUCになっています。 説明不足な点があるかと思いますが、ご教授お願いします。 /*insert時*/ $localfile = file_get_contents($_FILES['userfile']['tmp_name']); $sql = "INSERT INTO TABLE (fileup) VALUES '".$localfile ."'"; /*ダウンロード時*/ header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: inline; filename=\"".date('Ymd')."list.xls\""); echo $binary;//selectで抽出した時のデータ

    • 締切済み
    • PHP
  • fread時の0xc0000005エラーについて

    現在、win32APIのGetOpenFileName()を利用して、音声ファイル(wav形式)を選択し、その選択した音声ファイルの情報を取り出すことを考えています。 プログラム自体が長いのですべて載せることが出来ないのですが、関連する部分だけピックアップすると、 main.c内で static OPENFILENAME ofn = { 0 }; static TCHAR strFile[MAX_PATH]; //ダイアログボックスが生成されたら case WM_INITDIALOG: ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hWnd; ofn.lpstrFilter = TEXT("WAVファイル(*.wav)\0*.wav\0"); ofn.lpstrFile = strFile; ofn.nMaxFile = MAX_PATH; ofn.Flags = OFN_FILEMUSTEXIST; // ファイル選択ボタンが押されたら case IDC_FILE_SELECT: //ファイルを開くダイアログを表示しwavファイルを選択 GetOpenFileName(&ofn); //選択されたファイル名(フルパス)を引数として関数に渡す if(road_wav(strFile) == FALSE) //エラー処理 ------------------ 上記の関数road_wav()は別ファイル(road_wav_file.c)で記述し、 BOOL road_wav(const char *filename){ FILE* wfp; char reafword[4]; if(fopen_s(&wfp, filename, "rb") != 0){ //エラー処理 return FALSE; } else{ //fopen_s成功 } //ここでエラー(0xc0000005) fread(reafword, 4, 1, &wfp); return TRUE; } ------------------ というように、freadの部分で0xc0000005エラーが出てしまいます。 wfpのポインタがエラーの原因かと考え、関数の引数(=選択した音声ファイル名)が間違っている、もしくは、fopen_sで正しく音声ファイルが開けていないかと思い調べてみたのですが、 strFileには選択したファイル名がフルパスで正しく格納されており、f_opensもelse側に行っている(成功している)ようなので、wfpが原因では無いようです。 しかし、他に思い当たる原因が特に無く、どの部分を直せばよいかが分からず困っております。 もし何か分かりましたら教えていただけると助かります。 説明が非常に分かりにくくなってしまい申し訳ありませんが、よろしくお願いいたします。 作業環境 Windows7 64bit Visual Studio 2013 professional

  • 【FFmpeg】FLVにWAVを格納できない

    ffmpegを用いてFLVコンテナーにPCM(WAV)を格納する際 44.1kHz/16bit(s16le)はMUXできますが例えば192kHz/24bit(s24le)ではエラーが出ます %~dp0ffmpeg -i %1 -i %2 -vcodec copy -acodec copy %~dpn1_out.flv とバッチを作って放り込んだだけですが これはffmpegの制限なのかFLVの仕様なのか私の方法がまずいのか分かりません ご教授よろしくお願いします

  • Win32API ファイルの書き込み、保存

    Win32APIを使って、ファイルの保存ダイアログを表示→ファイルを指定→保存ボタンを押す→指定されたファイルに書き込む→指定したファイルを保存 というプログラムを作りたいと考えています。しかし、ファイルに書き込んだ後どう保存すればいいかわからないので教えてください。s[256]をfilename_fullに書き込んで保存したいです。この場合プログラムは抜粋したものなので、s[256]に文字が格納してあると考えてください。 char s[256]; FILE *fp; static OPENFILENAME ofn; static TCHAR filename_full[MAX_PATH]; // ファイル名(フルパス)を受け取る領域 static TCHAR filename[MAX_PATH]; // ファイル名を受け取る領域 // 構造体に情報をセット ZeroMemory( &ofn, sizeof(ofn) ); // 最初にゼロクリアしておく ofn.lStructSize = sizeof(ofn); // 構造体のサイズ ofn.hwndOwner = hWnd; // コモンダイアログの親ウィンドウハンドル ofn.lpstrFilter = _T("text(*.txt)\0*.txt\0All files(*.*)\0*.*\0\0"); // ファイルの種類 ofn.lpstrFile = filename_full; // 選択されたファイル名(フルパス)を受け取る変数のアドレス ofn.lpstrFileTitle = filename; // 選択されたファイル名を受け取る変数のアドレス ofn.nMaxFile = sizeof(filename_full); // lpstrFileに指定した変数のサイズ ofn.nMaxFileTitle = sizeof(filename); // lpstrFileTitleに指定した変数のサイズ ofn.Flags = OFN_OVERWRITEPROMPT; // フラグ指定 ofn.lpstrTitle = _T("名前を付けて保存");// コモンダイアログのキャプション ofn.lpstrDefExt = _T("txt"); // デフォルトのファイルの種類 // 名前を付けて保存コモンダイアログを作成 if( !GetSaveFileName( &ofn ) ) { MessageBox( hWnd, _T("エラー"), _T("エラー"), MB_OK ); SendMessage( hWnd, WM_CLOSE, 0, 0 ); }else{ if((fp=fopen(filename_full,"w")) == NULL) { MessageBox( hWnd, _T("エラー"), _T("エラー"), MB_OK ); SendMessage( hWnd, WM_CLOSE, 0, 0 ); exit(0); /* (3)エラーの場合は通常、異常終了する */ } /*ここからがわかりません*/     /*s[256]をファイルに書き込んで、保存するプログラムを教えてください。

  • DVDオーディオの音声をWAVファイル化してCDRで聴けるようにしたい

    DVDオーディオの音声をWAVファイル化してCDRで聴けるようにしたい。 7~8年くらい前に買ったDVDのビデオプレイヤーが『DVDオーディオ』にも対応していたので、試しにと思い1枚のみDVDオーディオソフトを買いました。 で、数年でそのプレイヤーが壊れまして、さすがにDVDオーディオ対応のプレイヤーを新たに買う気にはならず、1枚だけあるDVDオーディオはずっと聴けず終いになってます。 そこで、DVDオーディオのステレオ音声だけをWAVファイルなどに変換して抜き出し、そこからCDR化したいと考えています。 音質の劣化はともかくも、それを可能にするソフトなんてあるんでしょうか? 数ヶ月おきに検索を繰り返して調べてみても、DVDの音声部分の抜き出しばかりで、DVDオーディオに関する情報がほとんど見つかりません。 音楽DVDとDVDオーディオとを混同しているような文言はけっこう見かけるんですけど。 おわかりの方がおりましたら、ぜひご教授願います。

  • Foobarでリッピングファイルが正常に読めない

    *音楽CDをEACでリッピングし、WAVファイルとしてHDに保存しています。そのファイルをFoobar2000で読み込んで再生しているのですが、AlbumListにはArtist,Titleなどの情報が表示されません。AlbumListのファイルのプロパティを見るとMetadadaが入っていません。  仕方なく、手動でPropertyのFilenameなどから該当情報をコピーしてMetadataを入れ直して使っています。  どの様にすれば、自動的にこれらの音楽情報を反映できるようになりますでしょうか。(EACのリッピング画面ではそれらの情報は表示されているので、EACかFoobarの設定を適切にすればできるような気がするのですが分かりません。) よろしく、ご教示願います。