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

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

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

全過去ログを検索

<< 0 >>
■9720  Re[12]: System.Timers.Timerでのイベント処理
□投稿者/ れい -(2007/11/02(Fri) 18:01:19)
    No9714 (nbmyou さん) に返信
    > ■No9706 (れい さん) に返信
    > >>また、XMLファイルが作成途中(例えば大容量のファイルで、監視フォルダへのコピーに時間がかかっている状態)ではないことの判断は、
    > >>拡張子がaaa(仮)の同名ファイルが同じフォルダに存在するかどうかで判断します。
    >>
    >>これはダメな方向であろうと思います。
    >
    > XMLファイルを監視フォルダに作成する処理を行うのは、
    > 他者が作成したプログラムです。こちらの実装を変えることはもうできないのですが、
    > 何かいい方法は考えられますでしょうか。

    無視すればいいだけですよね?
    ファイルのロックがどうなってるのか、よく考えて見ましょう。

    >>OnPauseやOnStopでは終了フラグや停止フラグを設定。
    > 終了フラグ・停止フラグというのは、どういう事態を回避するためのものでしょうか。
    > (サービスが止まっても、ワーカスレッドは動いているということ?)

    サービスが止まるときにはワーカースレッドは止まるべきだというだけです。
    pauseやstopをサポートしないつもりなら別に要りません。
    最低でもstopぐらいサポートしておいたほうがいいと思いますが。

    >>次に時刻の確認。
    >>時刻が設定より過ぎていれば処理。そうでなければまたSleep。
    > 上記のような処理であれば、WIndowsの時刻が修正された場合のことを考えなければならなくなりそうですよね。

    もちろんそうです。
    時刻が変更されたとき1回だけは
    5分が3分になったり10分になったりしても問題ないのではないですか?
    なら、簡単に解決できますよね。

    >>処理を行うファイルは「排他」ロックをかける。「共有」ロックではなく。
    > すみません。Googleで検索してみましたが、
    > C#でファイルのロックを取得する方法が見つけられません。

    普通、ファイルは開いたらロックされます。
    .Netではいろいろ単純化されてますがFileShare構造体である程度制御できます。
    FileStreamのFileShareパラメーターで何も指定しなければ、
    他のプロセスは読むことも書くこともできません。
    必要に応じてうまくロックすることです。
記事No.9602 のレス /過去ログ22より / 関連記事表示
削除チェック/

■84492  Re[2]: ASP.NET上で、display:noneを付与したい
□投稿者/ ruru -(2017/07/07(Fri) 15:11:42)
    WebSurfer様

    いつもありがとうございます。助かっております。

    >>ある条件で、サーバーコントロールになっている input type="image" 要素の Visible プロパティを false に
    >>したが、その外の tr, td 要素がそのまま残っているので、
    >>>> 表示エリアが残ってしまい妙な隙間が出来てしまいました。
    >>・・・ということになってしまうと言ってます?

    仰るとおりです。

    ミニマムなコードは下記のようになります
    (テストは、適当なtxtをhtmlに変えて、画像ではなくてテキストボックスで行っていました)


     ※※※ バックスラッシュaをいれると迷惑等後者といわれてしまったので、一部改変しております


    【このような形でHTMLで出力される】
    <table border=1;>
    <tr border=1;>
    <td class="SearchListTitle">条件</td>
    <td class="sen"><a><input name="ctl00$MainContent$repeater1$ctl04$icon1" id="MainContent_repeater1_icon1_4" type="text" value="あいうえお">< / a></td>
    <td class="sen"><a>< / a></td>
    <td class="sen"><a><input name="ctl00$MainContent$repeater1$ctl04$icon3" id="MainContent_repeater1_icon3_4" type="text" value="さしすせそ">< / a></td>
    <td class="sen"><a>< / a></td>
    <td class="sen"><a>< / a></td>
    </tr>
    </table>



    【こうしたい】
    <table border=1;>
    <tr border=1;>
    <td class="SearchListTitle">条件</td>
    <td class="sen"><a><input name="ctl00$MainContent$repeater1$ctl04$icon1" id="MainContent_repeater1_icon1_4" type="text" value="あいうえお">< / a></td>
    <td class="sen" style="display:none" ><a>< / a></td>
    <td class="sen"><a><input name="ctl00$MainContent$repeater1$ctl04$icon3" id="MainContent_repeater1_icon3_4" type="text" value="さしすせそ">< / a></td>
    <td class="sen" style="display:none" ><a>< / a></td>
    <td class="sen" style="display:none" ><a>< / a></td>
    </tr>
    </table>


    出力されたほうは、「あいうえお」から「さしすせそ」の間に隙間が出来てしまっていて
    これを消したいと考えております。

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

■94079  Re[17]: VBより今開いてるExcelのファイル名の取得
□投稿者/ さき -(2020/03/11(Wed) 15:37:04)
    No94074 (魔界の仮面弁士 さん) に返信

    ありがとうございます。

    >> その時に表示されていたエラーメッセージを教えてください。
    >>
    >> 閉じるときに、現在開いている Excel 文書はどうしますか? 保存しますか?
    >
    >上記 2 点の逆質問への回答待ちですが、それはさておき。

    申し訳ありません。
    何が原因でエラーになったのかは、今は分かってませんが、その後はエラーもなく正常に動いてはいます。
    また、保存とかではなく、ファイル名のみを抽出、その内容を別途読み込みもし活用もしたかったのです。

    またまた言葉足らずで恐縮です。
    開いてるExcelをVBから閉じたいとは、上で抽出もしたそのExcelのことなのです。
    閉じもせず読み込みもしょうとすれば、「System.IO.IOException 別のプロセスで使用されているため・・」とのエラーにもなるからです。
記事No.94040 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94081  Re[18]: VBより今開いてるExcelのファイル名の取得
□投稿者/ 魔界の仮面弁士 -(2020/03/11(Wed) 17:06:58)
    2020/03/11(Wed) 17:08:56 編集(投稿者)

    No94079 (さき さん) に返信
    > ファイル名のみを抽出、

    フルパスからファイル名のみを抽出するには、そのパスを
    System.IO.Path.GetFileNameWithoutExtension メソッドあるいは
    System.IO.Path.GetFileName メソッドに渡してやれば OK です。


    Excel で開いていたファイルが OneDrive 上にあった場合、先のコードにて
    https://d.docs.live.net/〜〜/Example.xlsx』などの文字列が
    列挙される可能性がありますが、この場合においても、
    得られたパスを上記メソッドに引き渡すことで、
    『Example』や『Example.xlsx』といったファイル名を得られます。


    > その内容を別途読み込みもし活用もしたかったのです。

    CSV ファイル等のテキストファイルであれば、
    Excel 本体が無くても読み込めますが、
    Excel のワークブック ファイルの内容を読み取ろうとするのであれば、
    Excel 本体(あるいは同種のライブラリ)を使う必要があるでしょう。


    各セルの値を読みだす方法はいろいろあります。本スレッドの質問内容である
    『VBより今開いてるExcelのファイル名の取得』から外れてしまうことになるので、
    具体的なソースコードの記述は避けますが、たとえば Excel を使ってアクセスするなら、
    Worksheet オブジェクトの Range プロパティや Cells プロパティを通じて読みだせます。

    ClosedXML ライブラリを使うなら、IXLWorksheet の Cells プロパティを使えます。
    EPPlus ライブラリを使う場合は、ExcelWorksheet の Cells プロパティを使えます。
    あるいは ReoGrid のメモリワークブックを通じて読み取ることもできますね。
    https://reogrid.net/jp/document/


    > 開いてるExcelをVBから閉じたいとは、上で抽出もしたそのExcelのことなのです。

    一つの Excel 上で、複数のファイルが開かれていた場合において、
    No94073 の (1)〜(6) のうち、どの動作を望んでいるのでしょうか?


    > 閉じもせず読み込みもしょうとすれば、「System.IO.IOException 別のプロセスで使用されているため・・」とのエラーにもなるからです。

    現在どういう処理を行っているのか分からないので、その点については何とも言えません。

    たとえば Excel で開かれている最中のファイルに対して
      Using stm As New FileStream(excelFilePath, FileMode.Open)
       ' :
       ' :
      End Using
    で読み込もうとした場合は、御指摘のものと同様の
    『System.IO.IOException: '別のプロセスで使用されているため、…'』の例外になると思います。

    しかし、Excel で開いている最中のファイルだったとしても、FileShare.ReadWrite を指定して
      Using stm As New FileStream(excelFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
       ' :
       ' :
      End Using
    などとした場合は、System.IO.IOException の例外にはなりませんでした。
    https://dobon.net/vb/dotnet/file/fileshare.html#section4
記事No.94040 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94797  Re[3]: SQLSsrverからDataGridViewに表示したい
□投稿者/ 大谷刑部 -(2020/05/20(Wed) 11:13:13)
    No94792 (かわにのにわか さん) に返信
    > ■No94788 (大谷刑部 さん) に返信
    >>■No94781 (かわにのにわか さん) に返信
    > 先にも申しました通り、全くの素人なものですから、何もかもが分からずの手探り状態です。

    素人にしても、どの程度?っていうのはご自身で自己分析して書いた方がいいかと。
    VB自体が初めてですということであれば、そう書かないと、
    エスケープシーケンスわかってないだけじゃん。自分で調べろよそれくらい。って反応が増えます。

    > 流れとしては、SQR Serverの認証 → 取り出すデータの変数のセット → SQL文(select *)→ DataGridViewの各列にセット という順序かなぁと思っていまして、まず最初の認証に付いては合っているかどうか、をご確認したかった次第です。
    もしそうなのであれば、まず、SSMS等でDBにはちゃんとつながるって確認してから、
    VBからADO.netでつながるか
    →SSMSでつながるのにADO.netを経由してつながらないなら、まずプロバイダーがつながるようになっているか?(.netの場合、 Imports ステートメントで定義されてるかどうかとほぼイコールですけど)
    →該当するプロバイダーに適した接続文字列になっているか?

    の順番になると思います。
    やみくもにコード書いて、トライアンドエラーじゃ知識がなければ時間もかかります。
    まずどこからどこまで自分がわかっていて、どこがわからないかを明確化してください。
    そうでないと質問に答えようがないです。
記事No.94781 のレス /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -