DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
UpDateVB.netにおける固定長出力方法(3) | NomalDataObjectの使いまわし(5) | NomalVB.NETからRDゲートウェイを利用したリモートデスクトップ接続(3) | NomalLIstview のDataSource(2) | NomalClassの作り方(2) | NomalOpenFileDialogの初期ファイル名の表示が変(1) | NomalVB.NETのVBA化(2) | Nomal改行のコード(7) | NomalGoogle翻訳の結果の取得(2) | NomalStopwatchクラスのElapsedMillisecondsの挙動(2) | Nomal.net Chartで二重ドーナツグラフの作り方(3) | Nomalexeをショートカットから起動した場合のエラー(2) | Nomalデスクトップ と Desktop(6) | Nomalデザイナのプロパティウィンドウで静的プロパティを選択したい(3) | NomalPHPでシリアライズした、データをデシリアライズしたい(4) | Nomal二次元配列 インデックスが配列の境界外(2) | NomalVB.netで作成したexeのNgenによる弊害(1) | NomalDrawBezierの使い方について(7) | Nomalメジャーバージョンの異なるLog4netライブラリを参照したい(4) | NomalVB6→2005変換時のDeclare宣言のマーシャリング属性(8) | NomalGROUPBOXの複製について(vb.net)(1) | NomalActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて(4) | NomalAccess OLEでExecuteNonQuery(3) | NomalKeyDownでの右コントロールキーイベント(2) | NomalExcel複数シートの印刷順序(3) | NomalWMPへno(3) | NomalDataGridViewの行番号(7) | Nomalapp.config定義によるネットワークトレースログの世代管理(2) | Nomalrelease/debugのどちらで作成されたものかを判断する方法(2) | NomalC#コンソールアプリでタイピング練習ソフト作成(3) | Nomal自分自身を呼び出すのはOKですか(1) | NomalWebBrowser Control foreachで値が消える(2) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | NomalWebBrowser Controlを使って、任意の値を取得(5) | NomalEditボックスに簡体字をセットする方法(2) | NomalList型でエラーが起きてしまい・・・(1) | Nomalフォルダ内の全ての容量を取得したい(4) | NomalWebClientが上手く動かない(2) | Nomal共変性と反変性ってこういうこと?(4) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalLINQの拡張メソッドの定義(1) | Nomalこんな演算子初めて見ました。(5) | Nomalプロセスからウインドウを取得(4) | Nomalフォーム外のカーソルの変更(2) | NomalLINQのメソッド構文の書き方(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | Nomalラムダ式の勉強中(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | NomalNewの使い方間違ってますか?(4) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalC#をVBに変換(2) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalCatch時のex.StackTraceの情報(3) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalPictureBox.Locationのキャンセル(3) | NomalJOIN操作の構文エラー(4) | NomalVisualStudioでマクロ(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalRDP接続でのネットワーク帯域制限(0) | NomalFILE.COPYでIOExceptionエラーが出る(11) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalDrawImage でメモリ不足エラー(3) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalCode128でバーコードが読み取れない(8) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | NomalVC++ → VB.Netに変換時に文法エラー(2) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalVb.netからAccessへの接続について(3) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal令和の日付への対応(3) | Nomalスクロールバーが出た時に高さを変えたい(4) | Nomal自作したアプリの発行元を明記したい(2) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | Nomal起動ディスプレイの指定方法について(6) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDatagridviewのクリア(2) | NomalDataGridView 行の背景色の設定(2) | NomalListBoxにデータが表示されない(6) | NomalPIctureBox同士を論理合成したい(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | Nomalポルトガル語の登録(5) | NomalnumericUpDwonコントロールのvalue(2) | Nomalデータセット定義ファイルからDataTable(3) | NomalDataTableの構造が同じか調べるメソッド(2) | Nomalネットの画像の複数枚を重ね合わせたい(3) |



■記事リスト / ▼下のスレッド
■34472 / 親記事)  WMPへno
□投稿者/ HeavyRocker 一般人(1回)-(2020/05/22(Fri) 05:11:49)
  • アイコン環境/言語:[Win10Home 64 ] 
    分類:[.NET] 

    下記のコードでExplorerにDragDropできています
    (LVItem.SubItems(4).Text がファイルのフルパス文字列です)

    '右ボタンでのドラッグのときはファイルのコピー
    Dim MydataObject As New DataObject
    Dim strFileList As New
    System.Collections.Specialized.StringCollection
    'ListViewの選択されている各Itemについて
    For Each LVItem As ListViewItem In Me.ListView1.SelectedItems
    strFileList.Add(LVItem.SubItems(4).Text)
    Next
    MydataObject.SetFileDropList(strFileList)
    ListView1.DoDragDrop(MydataObject, DragDropEffects.Copy)

    それなら WMP(WindowsMediaPlayer) にもできるはず! と思い
    WMPの再生リストにDragしてみると・・受け付けてくれません。
    (車両通行止めのマーク)

    Explorerが受け取ってくれているということで、一応VB上の規則は守って
    Drag開始していると思います。
    あとは受け取ってほしいWMP側の仕様が思惑と異なるのでは?と考えてしまいます。

    ただ、ExplorerからWMPへのDragDropはもちろんできているので、同じことを
    しているつもりなのですが・・



違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34473 / ResNo.1)  途中で送信してしまいました
□投稿者/ HeavyRocker 一般人(2回)-(2020/05/22(Fri) 05:18:04)
  • アイコンNo34472に返信(HeavyRockerさんの記事)

    Titleは

     WMPへのDragDrop

    としたかったのですが途中で送信してしまいました。 すみません
違反を報告
引用返信
■34474 / ResNo.2)  Re[1]: WMPへのDragDrop
□投稿者/ 魔界の仮面弁士 大御所(1283回)-(2020/05/22(Fri) 09:04:08)
  • アイコンNo34472に返信(HeavyRockerさんの記事)
    > 下記のコードでExplorerにDragDropできています

    タイトルの WMP を WPF と見間違えました…。
    Wndows Forms アプリケーションの話でしたね。


    > 受け取ってほしいWMP側の仕様が思惑と異なるのでは?と考えてしまいます。

    たとえば、C:\Windows\Media\Alarm01.wav を Explorer から
    ドラッグした場合、ドロップデータの形式として、
    9 個から 18個程度程度のフォーマットが含まれていました。
    こちらで確認できたのは以下のものです。

     CFSTR_SHELLIDLIST
     CF_HDROP
     CFSTR_FILENAMEA
     CFSTR_FILECONTENTS
     CFSTR_FILENAMEW
     CFSTR_FILEDESCRIPTORW
     "UsingDefaultDragImage"
     "DragImageBits"
     "DragContext"
     "DragSourceHelperFlags"
     CFSTR_INDRAGLOOP
     "IsShowingLayered"
     "DragWindow"
     "IsComputingImage"
     CFSTR_DROPDESCRIPTION
     "IsShowingText"
     "ComputedDragImage"
     CF_HDROP_THUMBNAIL
     

    No34472 のコードの場合は、
     CF_HDROP
     CFSTR_FILENAMEW
     CFSTR_FILENAMEA
    しかありません。
    恐らく WMP が使っているのは、この 3 つ以外の何か…なのでしょう。

    もしもそれが CFSTR_SHELLIDLIST だとしたら、
    たとえばこのような手続になります。
    https://ja.stackoverflow.com/questions/63727/
違反を報告
引用返信
■34475 / ResNo.3)  Re[2]: WMPへのDragDrop
□投稿者/ HeavyRocker 一般人(3回)-(2020/05/23(Sat) 05:06:10)
  • アイコン魔界の仮面弁士さん ありがとうございます

    > ドロップデータの形式として、
    > 9 個から 18個程度程度のフォーマットが含まれていました。

    > もしもそれが CFSTR_SHELLIDLIST だとしたら、
    > たとえばこのような手続になります

    つまり、VB.NET の範囲内の話ではないということですね。
    相手側の仕様を熟知している必要がある、というのは
    もっともなことです。

    今回はあきらめます。
    ありがとうございました。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34464 / 親記事)  DataGridViewの行番号
□投稿者/ 社畜からの開放 一般人(7回)-(2020/05/13(Wed) 00:30:34)
  • アイコン環境/言語:[VB.NET、Win10 64bit] 
    分類:[.NET] 

    mdbファイルのテーブルの内容をJETを用いてDataGridViewに反映したり、その逆を行うアプリケーションを作成しております。

    ただ、DataGridView(1,1).valueを読み取ったときフォームを開くたびに行番号に対応する行が変わってしまう仕様に困惑しております。

    例えば
    id namae busho
    100 田中太郎 営業部
    101 鈴木次郎 人事部
    というmdbファイルがあるとしてmdb⇒DataGridViewの反映は毎回うまくいきます。

    その状態で
    Debug.Print (DataGridView(1,0).Value)を行うと"田中太郎"が表示されることを想定しておりますが、うまくいく場合もあれば営業部が表示される場合もあります。(フォームを開きなおす(コンパイルする?)たびに行番号が変わっている感じです。

    調べてみると内部で処理される行番号と表示される順番は固定されていないため、そのことそのものは不具合ではないようです。(多分)

    しかし、そうなると
    select id,namae,busho from user where id = datagridview(0,0).value
    という処理を行おうとしてもうまくid列を参照できません。

    一般的にどのように行番号と対応させるのでしょうか。
    ヘッダーテキストと照合を毎回行わないといけないのでしょうか。

違反を報告
引用返信

▽[全レス7件(ResNo.3-7 表示)]
■34467 / ResNo.3)  Re[3]: DataGridViewの行番号
□投稿者/ 魔界の仮面弁士 大御所(1281回)-(2020/05/13(Wed) 16:54:49)
  • アイコンNo34466に返信(社畜からの開放さんの記事)
    > 今回の問題はすべて列番号の話です。(タイトルさえ間違っています。)

    DataGridView の列は、どうやって定義していますか?

    (1) デザイン時に型付 DataSet をバインドしている

    (2) デザイン時に非バインド列を追加してから、列編集で DataPropertyName を設定している

    (3) DataGridView1.AutoGenerateColumns = True の状態で、
     実行時に DataSource を割り当てている

    (4) 列は自動生成させずに、DataSource を割り当てた後で、
     コードから列の追加と DataPropertyName の設定を行っている



    > 安定してid列を取得したいのになぜかnamae列を取得してしまったりbusho列を取得してしまったりして結果的にinsertやupdateの処理に支障が出ている状態です。

    その DataGridView を TabControl (というか TabPage) 上に配置していませんか?
    また、違った値が取得されてしまう場合と正しく取得されてしまう時とで

    For c = 0 To DataGridView1.Columns.Count - 1
     Debug.WriteLine(String.Format("{0}, {1}", c, DataGridView1(c, 0).Value))
    Next

    を実行した場合、どういう差異が現れますか?
違反を報告
引用返信
■34468 / ResNo.4)  Re[4]: DataGridViewの行番号
□投稿者/ 社畜からの開放 一般人(9回)-(2020/05/14(Thu) 23:12:22)
  • アイコンDataGridView の列は、どうやって定義していますか?
    (2) デザイン時に非バインド列を追加してから、列編集で DataPropertyName を設定している
    だと思います。
    あらかじめデザインビューから列を追加⇒列名やらプロパティネームやらを手動で(処理実行前に)追加しております。
    型付データセット・・・があまりよくわかりませんが、多分(2)です。
    少なくとも(3)、(4)ではないと思います。

    >その DataGridView を TabControl (というか TabPage) 上に配置していませんか?
    フォームに直接置いております。
    タブコントロールは使っておりません。
    ※タブコントロールって使ったことはありませんが、プリンターの設定とかであるようなタブを切り替えて複数のフォームが1つに集約されている感じのものですよね?

    > また、違った値が取得されてしまう場合と正しく取得されてしまう時とで
    For i = 0 to DataGridView_User.RowCount-1
    For j = 0 to DataGridView_User.ColumnCount-1
    Debug.Print(i & "," & j & "," & DataGridView_User(j,i))
    Next
    Next
    を走らせたとき
    0,0,0000
    0,1,田中太郎
    ...
    と表示されるのに次に試すと
    0,0,田中太郎
    0,1,0000
    のような感じになっておりました。
    ※ボタンで処理する限りは何回やっても変わりませんが、一度フォームを閉じた後にもう一度試すと並び順が変わっている感じです。
    ※実際の実行結果はイミディエイトウィンドウに表示されていて残っていないため今回の例は記憶から作っています。
    正しい値が取得できる・・・というより何列目がidかわからないから運が良ければ正しい値を取得できることもある感じです。
違反を報告
引用返信
■34469 / ResNo.5)  Re[5]: DataGridViewの行番号
□投稿者/ 魔界の仮面弁士 大御所(1282回)-(2020/05/15(Fri) 11:05:51)
  • アイコンNo34468に返信(社畜からの開放さんの記事)
    > 少なくとも(3)、(4)ではないと思います。

    AutoGenerateColumns プロパティは、既定で True のはず。

    (3) でも (4) でもない…という事はつまり、
    DataSource プロパティは使っていない(Nothing のまま)ということですね?


    > タブを切り替えて複数のフォームが1つに集約されている感じのものですよね?
    多分それかな。こんな感じのものです。今回は使っていないとのことで了解です。
    http://codepanic.itigo.jp/cs/tabcontrol.html


    >> また、違った値が取得されてしまう場合と正しく取得されてしまう時とで
    > For i = 0 to DataGridView_User.RowCount-1
    >  For j = 0 to DataGridView_User.ColumnCount-1
    >   Debug.Print(i & "," & j & "," & DataGridView_User(j,i))
    >  Next
    > Next
    DataGridView_User(j,i) が返すのは DataGridViewCell 型ですよね。
    この型には & 演算子が実装されていないので、Option Strict Off だとしてもエラーになるハズ…?


    > 0,0,0000
    > 0,1,田中太郎
    > ...
    > と表示されるのに次に試すと
    > 0,0,田中太郎
    > 0,1,0000
    > のような感じになっておりました。

    前者が「正しく取得される時」で、後者が「違った値が取得されてしまう場合」でしょうか?
    行は変わっていますが(それは別に重要ではない)、列は変わっていませんね(こっちが重要)。

    いずれにしても、 No34464 にあるように、
    >>> Debug.Print (DataGridView(1,0).Value)を行うと"田中太郎"が表示される
    には至らないはずです。

    元質問の DataGridView を DataGridView_User と読み替えたとしても、"田中太郎" が表示されるためには
     DataGridView_User(2, 0).Value
     DataGridView_User(2, 1).Value
    のいずれかであったはずであり、インデクサの指定が (1, 0) だった場合には、
    この場合には「0」が返されるはずです。


    実際に実験しているコードと、掲示板に書かれている質問内容がちぐはぐに思えるので、
    もう一度、ひとつひとつ正確に確認しなおしてみてください。


    > ※実際の実行結果はイミディエイトウィンドウに表示されていて残っていないため今回の例は記憶から作っています。
    それでは、実験用に新規プロジェクトを作成し、現象を再現できる最低限のコードを含めた状態で、
    ソリューションフォルダーをまるごと zip ファイルにして、アップロードしていただけませんか?
    (ソースだけで十分なので、bin や obj フォルダーは含めないでください)
違反を報告
引用返信
■34470 / ResNo.6)  Re[6]: DataGridViewの行番号
□投稿者/ 社畜からの開放 一般人(10回)-(2020/05/18(Mon) 21:54:04)
  • アイコンNo34469に返信(魔界の仮面弁士さんの記事)
    > ■No34468に返信(社畜からの開放さんの記事)
    >>少なくとも(3)、(4)ではないと思います。
    >
    > AutoGenerateColumns プロパティは、既定で True のはず。
    >
    > (3) でも (4) でもない…という事はつまり、
    > DataSource プロパティは使っていない(Nothing のまま)ということですね?
    >
    > DataGridView_User(j,i) が返すのは DataGridViewCell 型ですよね。
    > この型には & 演算子が実装されていないので、Option Strict Off だとしてもエラーになるハズ…?
    DataGridView_User(j,i).valueです。
    申し訳ございません。


    > ソリューションフォルダーをまるごと zip ファイルにして、アップロードしていただけませんか?
    > (ソースだけで十分なので、bin や obj フォルダーは含めないでください)
    質問を行っているのが自宅で、実際に処理を行っているのが職場のため記憶からの再現しか行えない状態で申し訳ございません。
    質問を度々書き間違えているあたり、(j,i)と(i,j)を描き間違えている個所がどこかにあることが原因の気がしてきました。今日は見つけられなかったのですが今一度見直してみます。混乱させて申し訳ございません。
違反を報告
引用返信
■34471 / ResNo.7)  Re[7]: DataGridViewの行番号
□投稿者/ Azulean 大御所(516回)-(2020/05/18(Mon) 22:20:35)
  • アイコン回答ではありませんが…。

    No34470に返信(社畜からの開放さんの記事)
    > 質問を度々書き間違えているあたり、(j,i)と(i,j)を描き間違えている個所がどこかにあることが原因の気がしてきました。

    i と j はタダでさえ似ている文字であることと、i と j 自体に意味がないので、誤りに気づきづらいです。
    (場所によって、i と j の意味が逆になっていることさえあり得るので)

    このため、x/y や row/column といった間違いづらく、かつ意味を表す変数名を使っていった方がミスを軽減できると思います。
    (行や列の方が意味として明確だが、時々、行と列を間違えてしまうこともなくはないので、x/y の方が良いのかな…?)
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-7]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34460 / 親記事)  app.config定義によるネットワークトレースログの世代管理
□投稿者/ あばば無人君 一般人(7回)-(2020/04/24(Fri) 15:30:48)
  • アイコン環境/言語:[Win7Pro、SQLServer2012、C#(.Net4.0)] 
    分類:[.NET] 

    C#のWinFormでFtpWebRequestクラスを使ったFTPアプリケーションを作成しています。
    以下リンクの記事を読み、.Net Frameworkの機能?で、System.NetやSystem.Net.Httpなどのクラスの関数をコールした際に
    ネットワークトレースログが出力できることを知り、app.configを以下の通り編集してみました。

    リンク
    https://docs.microsoft.com/ja-jp/dotnet/framework/network-programming/network-tracing

    編集したapp.configの内容
    <?xml version="1.0"?>
    <configuration>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
    <system.diagnostics>
    <sources>
    <source name="System.Net" tracemode="includehex" maxdatasize="1024">
    <listeners>
    <add name="System.Net"/>
    </listeners>
    </source>
    </sources>
    <switches>
    <add name="System.Net" value="Verbose"/>
    </switches>
    <sharedListeners>
    <add name="System.Net"
    type="System.Diagnostics.TextWriterTraceListener"
    initializeData="D:\\MyNetworkLog.trace"
    traceOutputOptions="ProcessId, DateTime"/>
    </sharedListeners>
    <trace autoflush="true"/>
    </system.diagnostics>
    </configuration>

    上記内容で想定通りDドライブの直下に「MyNetworkLog.trace」というネットワークトレースログが出力される様になったのですが、
    MyNetworkLog.traceのサイズがどんなに大きくなっても世代管理(リネームなど)されず追記されてしまうという問題点が出てきました。
    ※約20MBまで追記されることは確認済み

    私としてはファイルサイズが3MB程度になったら現在の「MyNetworkLog.trace」は「MyNetworkLog_1.trace」などにリネームし、
    新しく空の「MyNetworkLog.trace」が作られる、といった挙動を望んでいます。

    上記挙動となる様なapp.configの定義をご存知の方、いらっしゃいましたらお力添え頂きたいです。
    どうか宜しくお願い致します。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34461 / ResNo.1)  Re[1]: app.config定義によるネットワークトレースログの世代管理
□投稿者/ 魔界の仮面弁士 大御所(1279回)-(2020/04/24(Fri) 19:28:49)
  • アイコンNo34460に返信(あばば無人君さんの記事)
    > MyNetworkLog.traceのサイズがどんなに大きくなっても世代管理(リネームなど)されず追記されてしまうという問題点が出てきました。

    世代管理が必要というのであれば、
    TextWriterTraceListener の代わりに
    EventLogTraceListener を登録しておくのは駄目ですか?
    https://docs.microsoft.com/ja-jp/dotnet/api/system.diagnostics.eventlogtracelistener?view=netframework-4.8

    あるいは、Microsoft.VisualBasic.Logging.FileLogTraceListener とか。
    日付別や週別のファイルとして記録できます。
    https://dobon.net/vb/dotnet/programing/myapplicationlog.html

    いずれでも要件を満たせないのなら、世代管理されるような
    TraceListener を自作してしまうとか…。
    https://qiita.com/tomochan154/items/a666d00339b497a62f17
違反を報告
引用返信
■34463 / ResNo.2)  Re[2]: app.config定義によるネットワークトレースログの世代管理
□投稿者/ あばば無人君 一般人(8回)-(2020/04/27(Mon) 11:18:42)
  • アイコン返信が遅れてしまい大変失礼致しました。

    ご回答、ありがとうございます。
    上げて頂いた案の中で3つ目の自作が
    一番融通が利きそうですね。

    自作ログ出力案をチームで検討します。
    本当にありがとうございました。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34458 / 親記事)  release/debugのどちらで作成されたものかを判断する方法
□投稿者/ ころ奈 一般人(1回)-(2020/04/19(Sun) 10:28:03)
  • アイコン環境/言語:[VB2008,2012,2017] 
    分類:[.NET] 

    DebugモードでビルドするとDebugフォルダにexeファイルが作成されます。
    ReleaseモードでビルドするとReleaseフォルダにexeファイルが作成されます。

    誰かが作成したexeファイルを別のフォルダに格納したとします。

    そのフォルダに格納されているexeファイルが
    Debugモードで作成されたのか、Releaseモードで作成されたものなのかを
    exeファイルだけから判断することは可能でしょうか?
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34459 / ResNo.1)  Re[1]: release/debugのどちらで作成されたものかを判断する方法
□投稿者/ Hongliang 大御所(578回)-(2020/04/19(Sun) 12:55:48)
  • アイコン完全に汎用的なものは不可能でしょう。
    DebugとReleaseはコンパイルオプション他のセットでしかなく、記述次第で同一のコンパイル設定にできるからです(Debugでbin/Releaseに出力なんてこともできます)。

    ただ、Visual StudioのC#/VB既定ではDebugは出力先がbin/[Platform/]Debug、そしてpdb出力となっていて、この設定を変更していないのであれば、exeをテキストエディタなどで開いて、「.pdb」を検索することで、Debugに出力されたかReleaseに出力されたかを確認することは可能でしょう。
違反を報告
引用返信
■34462 / ResNo.2)  Re[2]: release/debugのどちらで作成されたものかを判断する方法
□投稿者/ ころ奈 一般人(2回)-(2020/04/26(Sun) 19:48:15)
  • アイコン> exeをテキストエディタなどで開いて、「.pdb」を検索することで、Debugに出力されたかReleaseに出力されたかを確認することは可能でしょう。

    この方法で確認してみます。
    ありがとうございました。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▲上のスレッド
■34454 / 親記事)  C#コンソールアプリでタイピング練習ソフト作成
□投稿者/ yulico mexicali 一般人(1回)-(2020/04/06(Mon) 14:58:50)
  • アイコン環境/言語:[windows7 sp1 32bit .NET Framework 4.5] 
    分類:[.NET] 

    C#のコンソールアプリでタイピング練習ソフトを作成しています。

    概要としては、
    ---------------------------------------
    english
        ↓

    ---------------------------------------
    この様に、横座標ランダムで表示された文字列が、再下段に到着するまでにタイピングを完成させる、というようなものを作成中です。

    問題点は、文字列は一定間隔で1行ずつ落ちていきますが、そのループ中にキー入力をどうすれば良いのかが解りません。

    一応、自分なりに調べて試行錯誤しているソールを載せます。

    環境:Windows7 sp1、Visual Studio 2019 Community


    int s = Environment.TickCount;

    Random rnd = new Random(s++);

    int r = rnd.Next(60);
    int c = rnd.Next(5);

    string[] word = new string[] { "english", "franch", "spanish" };

    for (int l = 2; l < 22; l++) {
    if (Console.KeyAvailable) {
    for (int i = 0; i < word[c].Length; i++) {
    if (word[c].Substring(i, 1) != "*") {
    if (Console.ReadKey(true).Key.ToString() == word[c].Substring(i, 1).ToUpper()) {
    word[c] = word[c].Substring(0, i) + "*" + word[c].Substring(i + 1, word[c].Length - (i + 1));
    }
    }
    }
    }

    if (l > 2) {
    Console.SetCursorPosition(0, l - 1);
    Console.Write(new string(' ', 80));
    }

    Console.SetCursorPosition(r, l);
    Console.ForegroundColor = ConsoleColor.Green;
    Console.Write(word[c]);
    Console.ForegroundColor = ConsoleColor.Gray;

    System.Threading.Thread.Sleep(500);
    }


    文字を入力し始めると、一旦とまり、最後まで正しく文字列を入力すると、全ての文字が*になり、そのまま落ちていきます。

    やりたい事は、止まらずに、文字列の左から、正解したらリアルタイムに*に変わっていく処理です。

    よい方法はないでしょうか・・・
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34455 / ResNo.1)  Re[1]: C#コンソールアプリでタイピング練習ソフト作成
□投稿者/ Hongliang 大御所(577回)-(2020/04/06(Mon) 19:31:46)
  • アイコンConsole.KeyAvailableを確認した後、word.Lengthのfor文内でConsole.ReadKeyしてますよね。
    なのでここでキーがword.Length回入力されるまでReadKeyでブロックされます。

    1. 次回1段進む目標時刻を算出しておく
    2. KeyAvailableがtrueならReadKeyし、必要に応じ画面を更新する
     2.1. すべての文字が入力されればゲームクリア
    3. 現在時刻が目標時刻に達していなかったら2に戻る
    4. 1段進めて、段数がオーバーしていなければ1に戻る
    5. ゲームオーバー

    こんな感じで考えてみてはどうでしょうか?
違反を報告
引用返信
■34456 / ResNo.2)  Re[2]: C#コンソールアプリでタイピング練習ソフト作成
□投稿者/ yulico mexicali 一般人(2回)-(2020/04/07(Tue) 07:40:45)
  • アイコンご回答ありがとうございます。

    この方法でテストしてみます。

    後ほど結果の報告しますので、まだこのスレは閉じません。

    ありがとうございました。
違反を報告
引用返信
■34457 / ResNo.3)  Re[2]: C#コンソールアプリでタイピング練習ソフト作成
□投稿者/ yulico mexicali 一般人(3回)-(2020/04/07(Tue) 08:22:50)
  • アイコン結果報告です。

    > なのでここでキーがword.Length回入力されるまでReadKeyでブロックされます。
    この文章をヒントに、とりあえずbreakしてみようと追加してみました。

    一応、解決しました。

    if (Console.ReadKey(true).Key.ToString() == word[c].Substring(i, 1).ToUpper()) {
    word[c] = word[c].Substring(0, i) + "*" + word[c].Substring(i + 1, word[c].Length - (i + 1));

    break; ←追加行
    }

    この度は、ご回答くださり、本当に助かりました。

    ありがとうございました。


解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]






Mode/  Pass/


- Child Tree -

2020/12/02(Wed) 12:00:48 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする