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

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

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

全過去ログを検索

<< 0 >>
■6805  Re[8]: 別スレッドでShowDialogしたフォームのクローズ
□投稿者/ れい -(2007/08/24(Fri) 01:19:35)
    2007/08/24(Fri) 04:08:59 編集(投稿者)

    No6802 (れい さん) に返信・抜粋
    > このControl.Invoke系のデザインは、非常に問題があると思っています。
    > つまり、Control.Invokeを安全に使う一般的方法はありません。

    なので私はControl.Invokeは使いません。
    バグの温床になるので、ライブラリから削除すべきメソッドだと思っています。
    (BeginInvokeのつもりで間違って書いちゃうので。)

    あちこちのサイトにControl.Invokeのサンプルがあります。
    試したわけじゃないですが、ソースを見る限り何も対策してないので、
    フォームを閉じると今回のような問題が発生すると思われます。
    Control.Invokeをきちんと使える方法はどこにも見つけられませんでした。

    でも本当は、使えたらうれしいな、と思ってるので、

    > つまり、Control.Invokeを安全に使う一般的方法はありません。

    これに対する意見、特に反論が欲しいです。
    スレ立てでもしてみようかしら。
    教えて!偉い人。
記事No.6760 のレス /過去ログ17より / 関連記事表示
削除チェック/

■54761  Re[2]: PSPで動画
□投稿者/ 96 -(2010/11/01(Mon) 16:47:38)
    他にありませんか?
記事No.54733 のレス /過去ログ92より / 関連記事表示
削除チェック/

■73270  Re[1]: SQLServerのエディションについて
□投稿者/ shu -(2014/09/05(Fri) 11:59:31)
    No73268 (Ante さん) に返信

    マネージメントスタジオであればEnterpriseでもExpressでも
    アクセス可能です。
記事No.73268 のレス /過去ログ123より / 関連記事表示
削除チェック/

■80044  例外か assert か
□投稿者/ 774RR -(2016/06/06(Mon) 13:49:57)

    分類:[C/C++] 

    プログラムの論理的誤りに対して皆さんは例外を使うか assert を使うか、どっちでしょうか。
    論理的誤りとはこの場合「ソースコードの記述上の誤り」のこととします。
    No80043 の「個数」に対して負値が渡される場合とか
    ※要するに対外リリース前には必ず修正されなければならない誤り

    UI を通して渡されうる値についてはこの議題では扱わないことにします。
    そういう値は事前にチェックして当然なので。
    double value1, value2;
    sscanf(user_input, "%lf", &value1);
    if (value1<=0) { ... }
    value2=log(value1); // 負値が渡されると EDOM だが、必ず事前チェックする

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

■88597  Re[4]: フォルダ名とその更新日時を一緒に収得
□投稿者/ なつ -(2018/09/10(Mon) 00:16:00)
    No88586 (Jitta さん) に返信
    
    ありがとうございます。
    
    お言葉を返すようですが、調べてもいますし試してもいるのですがそれでも分からなくてお尋ねもしているのです。
    
    https://msdn.microsoft.com/ja-jp/library/system.io.directoryinfo.aspx
    教えて頂いた↑のについては、正直どのように使えば良いのかは分かってはいませんが、
    下記のようなことであれば動作確認もしています。
    ただこれですとフォルダ名と更新日時の取得は別々にしなければなりませんが。
    
     'フォルダ名を取得
     Dim Directori As String() = System.IO.Directory.GetDirectories("C:\Users\○○○\○○○", "*", System.IO.SearchOption.AllDirectories)
    
     'フォルダ名 0番目の更新日時を取得
     Dim Directori_Update As DateTime = System.IO.File.GetLastWriteTime(Directori(0))
記事No.88574 のレス /過去ログ152より / 関連記事表示
削除チェック/

■88598  Re[5]: フォルダ名とその更新日時を一緒に収得
□投稿者/ 魔界の仮面弁士 -(2018/09/10(Mon) 03:48:06)
    No88597 (なつ さん) に返信
    > 調べてもいますし試してもいるのですが
    どこまで分かっているのか、調べた範囲までを
    今回のように提示していただけると助かります。


    同時とは言いますが、かつての TxF (トランザクションNTFS) のような仕組みでもない限り、
    列挙操作中に、更新や削除が行われる可能性は否定できないと思います。
    ドライブごと排他ロックするわけにもいかないでしょうから、
    どこまでの同時性を求めているのかが、最初の質問からは読み取れませんでした。



    > Dim Directori As String() = System.IO.Directory.GetDirectories("C:\Users\○○○\○○○", "*", System.IO.SearchOption.AllDirectories)
    > Dim Directori_Update As DateTime = System.IO.File.GetLastWriteTime(Directori(0))
    System.IO.Directory.GetDirectories は戻り値が配列であるがゆえに、
    すべてを列挙し終えるまで、結果が返却されません。

    その意味においては、System.IO.Directory.EnumerateDirectories の方が都合が良いでしょう。
     Dim x As IEnumerable(Of String) = Directory.EnumerateDirectories(strFolder, "*", SearchOption.AllDirectories)

    こちらは順次列挙ですので、直ちに検索結果の返却が始まりますので、
    For Each あるいは LINQ での処理との相性も良いかと思います。


    さらに言えば、System.IO.Directory クラスだと、列挙されるのはあくまでパス名だけですので、
    これを System.IO.DirectoryInfo クラスに置き換えることで、さらに効率が良くなります。
     Dim y = New System.IO.DirectoryInfo(strFolder).EnumerateDirectories("*", SearchOption.AllDirectories)


    とはいえいずれの方法であっても、先に述べた通り、列挙操作中の外部からの更新や削除は防げません。
    また AllDirectories 指定の場合、下位のディレクトリでアクセス権の無いパスがあると
    UnauthorizedAccessException 例外等により、処理が中断されてしまうことになります。

    アクセス権の無いパスをスキップして処理する必要がある場合は、
     Public Iterator Function EnumAllDir(dirPath As DirectoryInfo) As IEnumerable(Of DirectoryInfo)
    といったメソッドを自作して、その中で TopDirectoryOnly 指定で Try〜Catch しながら
    再帰的に列挙した方が良いかも知れません。
記事No.88574 のレス /過去ログ152より / 関連記事表示
削除チェック/

■88600  Re[6]: フォルダ名とその更新日時を一緒に収得
□投稿者/ 魔界の仮面弁士 -(2018/09/10(Mon) 10:19:47)
    No88598 (魔界の仮面弁士) に追記
    > System.IO.Directory クラスだと、列挙されるのはあくまでパス名だけですので、
    > これを System.IO.DirectoryInfo クラスに置き換えることで、さらに効率が良くなります。


    おぉっと…? No88585 の時点で、DirectoryInfo を使うことは検討済みだったのですね。
    >> DirectoryInfoを使うのも分かるのですが

    でも何故か、 No88597 の時点では DirectoryInfo を用いていないようですが、
    DirectoryInfo でも AllDirectories 指定はできるようになっているはずですよ。


    ただし、ターゲット フレームワークを .NET Framework 2.0/3.0/3.5 にしている場合は、
    IEnumerable(Of ) を返す Enumerate〜系メソッドが使えず、
    配列を返す Get〜系メソッドに頼ることになります。
     

    .NET 1.0 以上
      Directory.GetDirectories(String) 静的メソッド
      Directory.GetDirectories(String, SearchOption) 静的メソッド
      DirectoryInfo.GetDirectories() インスタンス メソッド
      DirectoryInfo.GetDirectories(String) インスタンス メソッド


    .NET 2.0 以上
      Directory.GetDirectories(String, String, SearchOption) 静的メソッド
      DirectoryInfo.GetDirectories(String, SearchOption) インスタンス メソッド


    .NET 4.0 以上
      Directory.EnumerateDirectories(String) 静的メソッド
      Directory.EnumerateDirectories(String, String) 静的メソッド
      Directory.EnumerateDirectories(String, String, SearchOption) 静的メソッド
      DirectoryInfo.EnumerateDirectories(String) インスタンス メソッド
      DirectoryInfo.EnumerateDirectories(String, SearchOption) インスタンス メソッド
記事No.88574 のレス /過去ログ152より / 関連記事表示
削除チェック/

■89891  Re[1]: VB.NETで複数文字列を置換する方法
□投稿者/ デンタル -(2019/01/15(Tue) 01:12:22)
    No89879 (tororu さん) に返信
    
    95文字と100万文字で比較してみましたけど
    String.Replaceが速かったです
    
    100万文字でForループと同じくらいです
    
    String.Replaceが速い理由は
    インスタンス変数の配列に直でアクセスできるのが
    大きいのかなと思いました
    
    StringBuilderが遅いのは意外でした
    
    https://paiza.io/projects/gyFJOFQYQaH2ssvwmxRu4A
    
    文字数: 95
    	StringReplace
    		00:00:00.0154670
    	StringBuilderReplace
    		00:00:00.0488597
    	LoopDictionary
    		00:00:00.0265434
    	LoopLoop
    		00:00:00.0228445
    	Regex
    		00:00:00.0594639
    文字数: 1000000
    	StringReplace
    		00:00:00.0622056
    	StringBuilderReplace
    		00:00:00.1395222
    	LoopDictionary
    		00:00:00.0708859
    	LoopLoop
    		00:00:00.0634652
    	Regex
    		00:00:00.1376695
記事No.89879 のレス /過去ログ155より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -