C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 >>
■2749  Re[1]: スレッドの終了を知りたいのですが・・・
□投稿者/ 中博俊 -(2006/03/08(Wed) 22:20:13)
>

    分類:[C#] 

    終了させるのはあなたですよ?当然わかりますよね?
記事No.2748 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■40064  Re[6]: メディアプレイヤーに曲のリストを渡す
□投稿者/ ミュージ -(2009/08/19(Wed) 21:40:41)
    Hongliangさん、ありがとうございます。
    理解が悪くてすみません…。
    
    型と戻り値(返値)はわかっていると思います。
    stringなら文字、intやdoubleなら数字とか、その程度は理解してます。
    
    	mediaPlayer.newMedia(とすると
    	WMPLib.IWMPMedia IWMP4.newMedia(string bstrURL)
    と出るのはわかりました。
    
    この場合のbstrURLってどんな書式なのかがわからずにいます。
    
    URLの場合は
    mediaPlayer.URL = path;
    のpathに、"c:\〜〜.wma"
    とファイルを指定すればよかったのですが、
    たんに曲名ファイルを列挙したもの(playlistファイル)でよいんでしょうか。
    
    曲のプレイリストファイルを作り、
    mediaPlayer.newMedia("playlist.txt");
    mediaPlayer.controls.play();
    としてみましたが、再生されませんでした。
    
    いろいろ試しても値がnullなので、書式が違っているのはわかるのですが、どう違っているかわからないでいます。
    アドバイスいただければと。
    
記事No.40001 のレス /過去ログ69より / 関連記事表示
削除チェック/

■53839  Re[1]: WindowsCE でのコンテキストメニュー
□投稿者/ Hongliang -(2010/09/28(Tue) 11:45:45)
    .NET Compact Framework (CF) は、.NET Framework に比べ機能が制限されています。
    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listview_methods(VS.80).aspx
    ListView のメソッド一覧ですが、名前の左にアイコンが 1 〜 3 つあります。このうち、黄色枠に水色のアイコンが CF でサポートしているメソッドです。ご覧の通り、HitTest にはそのアイコンがありません。
    Menu.MenuItemCollection.Add、Cursor.Position も同様に確認してください。

    CF で ListView の HitTest をするには、多分 LVM_HITTEST を SendMessage する必要があります。
    http://msdn.microsoft.com/en-us/library/aa453471.aspx
    http://msdn.microsoft.com/ja-jp/library/8c5xx97k(VS.80).aspx

    メニューの追加方法は、.designer.cs の #region で隠れてる部分を参照すればどういう風に書くのか分かると思います。階層メニューも、一度デザイナで作成してみて、同様に #region の中を調べてみてください。
    // CF でも .designer.cs 作られるよね?

    カーソル位置については、MouseEventArgs の e から引っ張ってくれば大体解決すると思います。
記事No.53838 のレス /過去ログ90より / 関連記事表示
削除チェック/

■69030  Re[1]: モジュールファイル
□投稿者/ Jitta -(2013/11/28(Thu) 21:17:40)
>
    No69027 (寿里庵 さん) に返信
    > VB6.0から、VB.Net2008に焼き直しをやっています。
    >
    > VB6.0は、モジュールファイルでバッチ起動することってできるのですか?
    >
    > 'バッチ起動
    > Call Shell(App.Path & "\モジュールファイル.bat")
    >
    > VB6.0は、モジュールファイルをファイルオープンできるのですか?
    > FileOpen(intFNO, "モジュールファイル.bas.cfg", OpenMode.Input)
    >
    >
    > 又、上記の内容を、VB.NETに移植するには、そのまま実装しても問題ないですか?
    > 唐突な質問ですみませんがよろしくお願いします。
    >

    状況がわかりません。
    「VB6.0から、VB.Net2008に焼き直しをやっています」といわれると、VB6 のコードがすでにあって、
    それを VB2008 に適合するように作り直すことをイメージします。

    しかし、ここに書かれていることは、「VB6 で、こういうことができるか?」ということです。
    いったい、何をしようとしていて、何を聞きたいのでしょうか。
記事No.69027 のレス /過去ログ117より / 関連記事表示
削除チェック/

■85641  リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(2017/11/12(Sun) 21:29:17)

    分類:[.NET 全般] 

    HTMLファイルを解析して
    そのファイル内のリンクから自動でファイルを保存するプログラムをVBで作りたいのですが


    リンクに拡張子がある場合には
    ファイル形式を知ることができますが、
    ない場合にはどのようにしてファイル形式を調べれば良いですか?

    Internet explorerで
    リンクを右クリックして
    「対象をファイルに保存する」を選択すると
    拡張子がなくとも自動でフォーマットを識別して
    拡張子をつけてくれるのですが、
    これはVBではどのように書けば良いですか?






親記事 /過去ログ146より / 関連記事表示
削除チェック/

■85642  Re[1]: リンク先のファイル形式を調べる方法
□投稿者/ Azulean -(2017/11/12(Sun) 22:04:51)
    No85641 (スマスマ さん) に返信
    > リンクに拡張子がある場合には
    > ファイル形式を知ることができますが、
    > ない場合にはどのようにしてファイル形式を調べれば良いですか?

    Content-Type ヘッダーでファイルを識別するか、Content-Disposition ヘッダーで指示されるファイル名を使うかでしょうね。
    後者を優先しつつ、後者がない場合は前者の Content-Type で得られる MIME タイプから拡張子を決めるぐらいでしょうか。

    とりあえず、後者の話はこの辺かな?
    http://www.atmarkit.co.jp/fdotnet/dotnettips/618downnoname/downnoname.html
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85643  Re[2]: リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(2017/11/12(Sun) 22:31:09)
    No85642 (Azulean さん) に返信
    
    ありがとうございます。
    
    以下のようにして試してみたのですが
    disposがnothingとなっており、ファイル名を取得することができません。
    他のURLも試してみましたがうまくいきませんでした
    何が問題でしょうか?
    
    
        Sub main2()
    
    
            Dim url As String = "http://www.atmarkit.co.jp/fdotnet/dotnettips/618downnoname/downnoname.html"
    
            Dim req As HttpWebRequest _
              = CType(WebRequest.Create(url), HttpWebRequest)
            Dim res As HttpWebResponse _
              = CType(req.GetResponse(), HttpWebResponse)
    
            Dim fileName As String = "download.tmp"
    
            ' ヘッダ情報からファイル名の取得
            Dim dispos As String = res.Headers("Content-Disposition")
    
            If Not String.IsNullOrEmpty(dispos) Then
    
                ' filename=<ファイル名>の抜き出し
                Dim re As New Regex(
                  "filename\s*=\s*           " &
                  "(?:                       " &
                  "  ""(?<filename>[^""]*)"" " &
                  "  |                       " &
                  "  (?<filename>[^;]*)      " &
                  ")                         " _
                  , RegexOptions.IgnoreCase _
                  Or RegexOptions.IgnorePatternWhitespace)
    
                Dim m As Match = re.Match(dispos)
                If m.Success Then
                    fileName = m.Groups("filename").Value
                End If
            End If
    
            ' ファイルのダウンロード
            Using st As Stream = res.GetResponseStream()
                Using fs As New FileStream(fileName, FileMode.Create)
                    Dim buf(1024) As Byte
                    Dim count As Integer = 0
                    Do
                        count = st.Read(buf, 0, buf.Length)
                        fs.Write(buf, 0, count)
                    Loop While count <> 0
                End Using
            End Using
            res.Close()
        End Sub
    
    
    
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85644  Re[3]: リンク先のファイル形式を調べる方法
□投稿者/ Azulean -(2017/11/12(Sun) 22:50:00)
    No85643 (スマスマ さん) に返信
    > 以下のようにして試してみたのですが
    > disposがnothingとなっており、ファイル名を取得することができません。
    > 他のURLも試してみましたがうまくいきませんでした
    > 何が問題でしょうか?

    先にも書きましたが、存在しない場合もあるということです。
    今回の URL だと、サーバー側としてもダウンロードファイル名を指定する必要がありませんからね。

    Content-Disposition はサーバーがこのファイル名で保存して欲しいと希望を出す場合だけ、ついてくると思ってください。
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85645  Re[4]: リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(2017/11/12(Sun) 22:57:43)
    No85644 (Azulean さん) に返信

    ありがとうございます。
    そうでしたか・・

    それでは、前者の
    Content-Type ヘッダーでファイルを識別する方法もお教えいただけないでしょうか?
    よろしくお願いいたします。
     
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85646  Re[5]: リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(2017/11/12(Sun) 23:09:50)
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85647  Re[6]: リンク先のファイル形式を調べる方法
□投稿者/ Azulean -(2017/11/12(Sun) 23:28:22)
    No85646 (スマスマ さん) に返信
    > 検索して調べたところ
    > https://webbibouroku.com/Blog/Article/asp-mimetype
    >
    > このページが見つかったのですが
    > この方法のことでしょうか?
    >
    > 一応、試してみましたが取得できているようなのですが

    冷たい返事をすると「取得できているならよいじゃないですか」になってしまうので、何を期待して、どうなったかをわかるように書いた方がいいですよ。
    MIME タイプから拡張子を判別する、かんたんな方法があるかは存じません。
    地道にやるなら、上記ページに書いてある、type で一致する拡張子を探せばよいだけかと思いますが。
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85648  Re[7]: リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(2017/11/12(Sun) 23:49:48)
    ありがとうございます。

    うまくいきました。

    教えてくださった通り、
    後者の方法でファイルパスを取得できるか調べた後に、前者の方法を使いたいと思います。
    ここで問題が発生したのですが
    Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)

    というところで、URLが無効だったり、リンク切れだったりすると
    エラーが出てプログラムが終了してしまうのですが
    予め、URLが生きているかどうか調べるにはどのようにしたら良いですか?
     
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85649  Re[8]: リンク先のファイル形式を調べる方法
□投稿者/ Azulean -(2017/11/13(Mon) 00:00:38)
    2017/11/13(Mon) 00:01:34 編集(投稿者)

    No85648 (スマスマ さん) に返信
    > 予め、URLが生きているかどうか調べるにはどのようにしたら良いですか?

    そんな方法はありません。

    一般論として、プログラムを組んでいると、「事前にチェックしたい」と思うこともありますが、その事前にチェックした時点と、実際に処理を始めた時点で状態が変わることがあり得るため、事前チェックは効果がないことがあります。
    よって、例外処理(エラー処理)が必要です。

    (事前チェックが不要とまでは言いませんが、事前チェックが万能ではないということを言いたいのです。もっとも、HTTP の場合は実際に取りに行った際のエラーチェックの方が良いとは思いますが…)


    > というところで、URLが無効だったり、リンク切れだったりすると
    > エラーが出てプログラムが終了してしまうのですが

    ということで、例外処理として Try Catch を書いてください。
    Try Catch を知らない場合は、Try Catch と HttpWebResponse を組み合わせて探せば見つかるのではないかと思います。
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85650  Re[1]: リンク先のファイル形式を調べる方法
□投稿者/ WebSurfer -(2017/11/13(Mon) 00:02:36)
    No85641 (スマスマ さん) に返信

    クライアント側でファイルの種類を識別する方法は応答ヘッダに含まれる Content-Type か
    Content-Disposition の filename に指定される拡張子しかないです。

    Web サイトが a 要素をクリックしてダウンロードさせるようになっている場合は、src 属性
    に指定されているリソースのファイル名の拡張子で分かるということもあるかもしれませんが、
    ブラウザでそれをクリックしてダウンロードした場合、ブラウザはそんなものは見てません。

    ブラウザは Content-Type か Content-Disposition の filename に指定される拡張子しか見
    てません。(どちらを見るかはブラウザによって異なります)

    src 属性に指定された url に拡張子がないというケースは質問者さんが経験された通りで、
    そもそも url の情報で判断できるものではないです。

    どういうプログラムを作っているか質問に書いてないので分かりませんが(そういう情報は
    最初の質問にちゃんと書きましょうね)、何にせよ何らかの手段で応答ヘッダを調べて対応
    するほかないと思います。
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85651  Re[1]: リンク先のファイル形式を調べる方法
□投稿者/ WebSurfer -(2017/11/13(Mon) 11:34:49)
    No85641 (スマスマ さん) に返信

    ご参考に IE がどのようにファイル名(拡張子を含む)を判断しているかという記事
    を紹介します。(注:IE のみです。他のブラウザでは異なります)

    ファイルのダウンロードダイアログで表示されるファイル名の命名規則
    https://support.microsoft.com/ja-jp/help/436153

    記事には明記されていませんが、優先順位は番号の通り 1.Content-Disposition: ヘ
    ッダ、2. Content-Type ヘッダの順になります。

    また、2. Content-Type ヘッダについてはレジストリの情報と照合するのですが、具
    体的には以下の記事のようにしているようです。

    ダウンロードの際の拡張子
    http://surferonwww.info/BlogEngine/post/2016/06/12/extension-of-downloaded-file.aspx
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85657  Re[2]: リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(2017/11/13(Mon) 13:16:52)

    ありがとうございます。

    https://dobon.net/vb/dotnet/internet/httpstatuscode.html
    このページにあるようにして
    Tryを試してみたのですが



    Tryと
    res = CType(req.GetResponse(), HttpWebResponse)
    を組み合わせて使うと、
    エラーがあった場合に、ものすごく時間がかかってしまいます。

    一方で、
    Tryと
    wc.DownloadFile(url, path)
    を組み合わせて使っても、
    エラーがあったとしてもそれほど時間がかかりません。

    それで思ったのですが
    いったん

    Tryと
    wc.DownloadFile(url, path)
    で適当なファイル名でファイルをDLした後に、
    DL出来たファイルにのみ
    res = CType(req.GetResponse(), HttpWebResponse)
    を使って、ファイル名の取得を試みて
    後からファイル名を変更すれば良いのではないかと思いました。

    こういう使い方もありなのでしょうか?

記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85666  Re[3]: リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(2017/11/13(Mon) 21:04:24)





    問題ないようなので、
    この方法でいきたいと思います

    ところで、すいませんが別の質問をさせてください。

    リンクを右クリックメニューから保存しようとするとファイル名が表示されるのに
    Content-Disposition ヘッダーではファイル名を取得できないものがよくあります。

    例えば、

    https://www.alc.co.jp/business/

    というページです。

    https://www.alc.co.jp/

    このページのの一番上にある「ビジネス英語」というところに
    このリンクがあるのですが
    右クリックして保存しようとすると
    business.htm
    というファイル名が表示されます。

    このファイル名は一体どのようにして取得すれば良いのでしょうか?


記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85668  Re[4]: リンク先のファイル形式を調べる方法
□投稿者/ Azulean -(2017/11/13(Mon) 22:33:56)
    2017/11/13(Mon) 22:39:05 編集(投稿者)

    No85657 (スマスマ さん) に返信
    > Tryと
    > wc.DownloadFile(url, path)
    > で適当なファイル名でファイルをDLした後に、
    > DL出来たファイルにのみ
    > res = CType(req.GetResponse(), HttpWebResponse)
    > を使って、ファイル名の取得を試みて
    > 後からファイル名を変更すれば良いのではないかと思いました。
    >
    > こういう使い方もありなのでしょうか?

    なしでしょう。
    二重にダウンロードしようとしてますよね…。
    サーバー側に負担をかけるかもしれませんし、サーバー側のアクセスログにも二重ダウンロードが記録されます。
    また、DownloadFile 時点で生存していても、GetResponse 時点でなくなっていればエラーになります。

    No85666 (スマスマ さん) に返信
    > このファイル名は一体どのようにして取得すれば良いのでしょうか?

    単に URL の末尾に Content-Type に基づいた拡張子をつけているだけでは?
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85671  Re[4]: リンク先のファイル形式を調べる方法
□投稿者/ Jitta -(2017/11/14(Tue) 08:53:20)
    No85666 (スマスマ さん) に返信
    >
    > 例えば、
    >
    > https://www.alc.co.jp/business/
    >
    > というページです。
    >
    > https://www.alc.co.jp/
    >
    > このページのの一番上にある「ビジネス英語」というところに
    > このリンクがあるのですが
    > 右クリックして保存しようとすると
    > business.htm
    > というファイル名が表示されます。
    >
    > このファイル名は一体どのようにして取得すれば良いのでしょうか?
    >
    >
    >

    取れていません。
    リクエストは、ディレクトリに対して行われています。
    ウェブサーバーの設定で、ディレクトリに対するリクエストに応えるファイル名があります。
    IISならdefault.aspxとかdefault.htmlとか。
    これが指定されていないので、クライアント側で勝手に作っていると判断されます。
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

■85697  Re[5]: リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(2017/11/15(Wed) 09:40:14)

    ありがとうございます。

    もう少し質問させてください。



    Content-Type ヘッダーでファイルを識別する方法に関してですが

    https://webbibouroku.com/Blog/Article/asp-mimetype

    このページにある方法を使っていたのですが
    よく読んでみると
    「拡張子から MIEM TYPE を取得する方法」
    と書かれてあります。
    拡張子が知りたくてMIMEを調べようとしているのに
    なぜか拡張子からMIMEの調べ方、あるのですが、
    これはどういうことですか?
    URL上には拡張子が書かれていないが、実際のファイルには書かれてあるのですが
    それを使っているのでしょうか?
    しかしそれなら拡張子をそのまま教えてくれれば良いと思うのですが。

    あと、
    http://chaichan.lolipop.jp/vbtips/VBMemo2009-11-25.htm
    別の方法だとファイルを解析してMIMEを調べるようなのですが、
    この方法だと一度、ファイルをDLしてから解析することになるのしょうか?

    DL前に拡張子を知りたい場合には、

    https://webbibouroku.com/Blog/Article/asp-mimetype

    を使うべきなのでしょうか?


記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 >>

パスワード/

- Child Tree -