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

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

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

全過去ログを検索

<< 0 >>
■47969  Re[24]: JPEG画像からバーコードを読んで数字を取り出したい
□投稿者/ ヤーレン -(2010/03/18(Thu) 14:35:36)
    壁に当たっているので、別方向からと思って、バーコードを書くC#のプログラムを見てます。
    どうやらバーコードには、先頭と最後にガードバーというのがあるらしいです。
    ガードバー、13桁、ガードバーという構造。それなら15桁なのはわかります。
    そこでじっさいの書籍のバーコードをつらつらと眺めていると、どの本も最初と最後は|| ||となっているようです。
    すると、この最初の細い縦線1本か2本がガードバーなのかもしれないです。

    ●●●●●●○○●●●●●●○ ガードバー

    ●●●●●●●●●●●●●●○○●●●●●●●●●○○○○○○○○○○
    ●●●●●○○○○○○○●●●●●○○○○○○
    ●●●●●●●●●●●●●○○●●●●●○○○○○○○○○○○
    ●●●●●●●●●○○●●●●●○○○○○○○○○○○○○○
    ●●●●●○○●●●●●●○○○○○○
    ●●●●●○○○○○○○●●●●●●●●●○○
    ●●●●●○○○●●●●●○○
    ●●●●●○○○○○○○○○○○●●●●●○○○○○○○
    ●●●●●○○●●●●●○○○○○○○○○○○○○○
    ●●●●●○○○○○○○●●●●●●●●●●●●●○○
    ●●●●●●●●●●○○●●●●●●●●●○○○○○○
    ●●●●●○○○○○○○●●●●●○○○○○○○○○○
    ●●●●●●●●●●○○●●●●●●●●●○○○○○○

    ●●●●●○○○●●●●●○○○○○○○○○○○○○○ ガードバー
    とすると、13桁。これが数字に1対1で対応しているんでしょうか。
    じっさいの数字は、9784062765282です。

    ●●●●●●○○●●●●●●○ ガードバー

    ●●●●●●●●●●●●●●○○●●●●●●●●●○○○○○○○○○○ 9
    ●●●●●○○○○○○○●●●●●○○○○○○ 7
    ●●●●●●●●●●●●●○○●●●●●○○○○○○○○○○○ 8
    ●●●●●●●●●○○●●●●●○○○○○○○○○○○○○○ 4
    ●●●●●○○●●●●●●○○○○○○ 0
    ●●●●●○○○○○○○●●●●●●●●●○○ 6
    ●●●●●○○○●●●●●○○ 2
    ●●●●●○○○○○○○○○○○●●●●●○○○○○○○ 7
    ●●●●●○○●●●●●○○○○○○○○○○○○○○ 6
    ●●●●●○○○○○○○●●●●●●●●●●●●●○○ 5
    ●●●●●●●●●●○○●●●●●●●●●○○○○○○ 2
    ●●●●●○○○○○○○●●●●●○○○○○○○○○○ 8
    ●●●●●●●●●●○○●●●●●●●●●○○○○○○ 2

    ●●●●●○○○●●●●●○○○○○○○○○○○○○○ ガードバー

    数字部分だけをソートしてみると、

    ●●●●●○○○●●●●●○○ 2
    ●●●●●●●●●●○○●●●●●●●●●○○○○○○ 2
    ●●●●●●●●●●○○●●●●●●●●●○○○○○○ 2
    ●●●●●●●●●○○●●●●●○○○○○○○○○○○○○○ 4
    ●●●●●○○○○○○○●●●●●●●●●●●●●○○ 5
    ●●●●●○○●●●●●○○○○○○○○○○○○○○ 6
    ●●●●●○○○○○○○●●●●●●●●●○○ 6
    ●●●●●○○○○○○○○○○○●●●●●○○○○○○○ 7
    ●●●●●○○○○○○○●●●●●○○○○○○ 7
    ●●●●●●●●●●●●●○○●●●●●○○○○○○○○○○○ 8
    ●●●●●○○○○○○○●●●●●○○○○○○○○○○ 8
    ●●●●●●●●●●●●●●○○●●●●●●●●●○○○○○○○○○○ 9
    ●●●●●○○●●●●●●○○○○○○ 0

    となり、単純に置き換えはできないことがわかります。
記事No.47881 のレス /過去ログ81より / 関連記事表示
削除チェック/

■48050  Re[1]: クラスの配列の値をまとめて初期化したい
□投稿者/ 魔界の仮面弁士 -(2010/03/23(Tue) 08:11:12)
    No48048 (OROCHI さん) に返信
    >「まとめて」代入する方法というものはあるのでしょうか?
    メンバがすべて揃っている必要がある場合には、
    クラスに『コンストラクタ』を用意するようにします。

    そうすれば、
    > sm[a] = new Specfication_MAP();
     sm[a] = new Specfication_MAP("a","b","c","d","e",0);
    のように指定することができます。

    あるいは、オブジェクト初期化子という物もありますが、
    今回の場合には、コンストラクタを用意したほうが良いかと思います。
    http://msdn.microsoft.com/ja-jp/library/bb384062.aspx
記事No.48048 のレス /過去ログ81より / 関連記事表示
削除チェック/

■69852  XMLの取得について
□投稿者/ kazu -(2014/02/02(Sun) 23:44:41)

    分類:[ASP.NET (VB)] 

    2014/02/02(Sun) 23:49:58 編集(投稿者)
    2014/02/02(Sun) 23:49:56 編集(投稿者)
    2014/02/02(Sun) 23:49:12 編集(投稿者)
    2014/02/02(Sun) 23:46:37 編集(投稿者)
    2014/02/02(Sun) 23:45:22 編集(投稿者)
    2014/02/02(Sun) 23:45:20 編集(投稿者)

    1週間ほど前からASP.NET(VB)を勉強し始めました。WEBのAPIを利用したいと思っています。初心者ながら難しい事から始め、そして質問する形でご迷惑をお掛けしまします。是非、宜しくお願いします。

    以下のコードでXMLのデータを取得しようとしました。ISBNのデータから取得しているので1件だけの取得です。

        Dim xmldoc As New XmlDocument()
    Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(xmldoc.NameTable)
    nsmgr.AddNamespace("dc", "http://purl.org/dc/elements/1.1/")
    Dim nsmgr2 As XmlNamespaceManager = New XmlNamespaceManager(xmldoc.NameTable)
    nsmgr2.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance")
    Dim nsmgr3 As XmlNamespaceManager = New XmlNamespaceManager(xmldoc.NameTable)
    nsmgr3.AddNamespace("dcndl", "http://ndl.go.jp/dcndl/terms/")
    xmldoc.Load("http://iss.ndl.go.jp/api/opensearch?isbn=9784062812016")
    Dim d(1) As String
    Dim list As XmlNodeList
    Dim node As XmlNode

    list = xmldoc.SelectNodes("/rss/channel/item/dc:subject/@dcndl:NDLC", nsmgr)
    For Each node In list
    d(1) = node.InnerText
    TextBox11.Text = d(1)
    Next

    >list = xmldoc.SelectNodes("/rss/channel/item/dc:subject/@dcndl:NDLC", nsmgr)
    ここに書いていますように、/dc:subject/@dcndl:NDLCを定義する為に、nsmgrを用意しました。ですが、nsmgr2、nsmgr3を同時に使う方法が分からずエラーが出ます。

    以下、取得を希望しているXMLです。
    <dcterms:issued xsi:type="dcterms:W3CDTF">2008</dcterms:issued>
    <dc:identifier xsi:type="dcndl:ISBN">9784062812016</dc:identifier>
    <dc:identifier xsi:type="dcndl:JPNO">21436136</dc:identifier>
    <dc:subject>Marie Antoinette, 1755-1793</dc:subject>
    <dc:subject>Fersen, Hans Axel von, greve, 1755-1810</dc:subject>
    <dc:subject xsi:type="dcndl:NDLC">GK465</dc:subject>
    <dc:subject xsi:type="dcndl:NDC9">289.3</dc:subject>
    <dcterms:description>肖像あり</dcterms:description>
    <dcterms:description>年表あり</dcterms:description>
    <dcterms:description>文献あり</dcterms:description>

    NDLCとNDC9を取得したいのですが、色々試したのですが上手く行きませんでした。ネットで色々調べて見て該当するサンプルを見て試したのですが、どうしてもダメでした。藁をも掴む思いです。是非、ご教授下さい。また、何かヒントでも良いので是非、宜しく願いします。私のような初心者が専門の掲示板を利用して申し訳ないと思いますが、是非、宜しくお願いします。

    >list = xmldoc.SelectNodes("/rss/channel/item/dc:subject[1]", nsmgr)
    でも値は取得できたのですが、XMLの構造は、NDLCとNDC9があったりなかったりします・・・
親記事 /過去ログ119より / 関連記事表示
削除チェック/

■69860  Re[1]: ASP.NETでのWEBのAPIにおけるXMLの取得について
□投稿者/ kazu -(2014/02/03(Mon) 08:13:05)
    2014/02/03(Mon) 08:39:20 編集(投稿者)

    エラーという表示をいれて構造がずれないようにしたのですが、エラーが表示されません。これを使って帳票形式のフォームを作ろうとしましたが、ダメでした。どうして、エラーという文字が出ないのでしょうか?宜しくお願いします。
    Imports System.Web
    Imports System.Xml
    Imports System.Xml.Xsl
    Imports System.Data
    Imports System.Data.SqlClient

    Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim xmldoc As New XmlDocument()
    Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(xmldoc.NameTable)
    nsmgr.AddNamespace("dc", "http://purl.org/dc/elements/1.1/")
    nsmgr.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance")
    nsmgr.AddNamespace("dcndl", "http://ndl.go.jp/dcndl/terms/")


    xmldoc.Load("http://iss.ndl.go.jp/api/opensearch?isbn=9784062812016")
    Dim d(11) As String
    Dim list As XmlNodeList
    Dim node As XmlNode

    list = xmldoc.SelectNodes("/rss/channel/item/dc:identifie[@xsi:type='dcndl:ISBN']", nsmgr)
    For Each node In list

    Select Case list.Count
    Case Is = 1
    d(11) = node.InnerText
    TextBox11.Text = d(11)
    Case Is = 0

    TextBox11.Text = "エラー"
    End Select

    Next
    End Sub

    End Class

    Caseの所に何か適切なものを入れて条件分岐で判断してデータを取得して、 GridView1に表示させようと考えました。
記事No.69859 のレス /過去ログ119より / 関連記事表示
削除チェック/

■84062  Re[3]: 作業用フォルダについてご相談
□投稿者/ とっちゃん -(2017/05/12(Fri) 12:33:44)
    No84054 (ザイーガ さん) に返信
    > 1.文字セットを「Unicode文字セットを使用する」に変更する
    > 2.必要に応じて文字列変数の部分を修正する
    >  (場合によっては文字列の数の数倍から数百倍は修正箇所が出る恐れあり)
    >
    必要に応じてですが、対象はUNICODE化する文字列すべてです。
    ただし、書き換えの必要があるかどうかはソースコードの内容によるので
    作業量的なものがどの程度になるかはわかりません。

    あとは、リテラル以外の文字列は文字コード変換処理で対応する必要もあります。
    この部分はさらにはまるかな。。。



    さて、ちょっとだけ深刻なお話。

    パス名に全角文字(これの定義もまぁあれだがw)があると、うまくいかないのが本当に文字コードに起因する問題だとしたら
    そのプログラムは、ANSIであること以前に、Shift-JIS以外の文字コード体系がこの世に存在しないと思って作られているもしくは
    文字なんて127個よりもはるかに少ないだろ?と思っている人が作った可能性もあります。

    もしそうだとすると、スイッチ変えて、文字列を _T でくくって程度では変換できません。
    多くの場合、設計しなおしという対応が要求されます(それくらい文字コード問題というのは深刻)。

    SBCSかどうかは、"表"があるとパスがおかしいとかで判断できるかもしれません。

    あとは、意識してなくて、AnyCPU 問題ではまっている場合もありますね。
    2008のようなのでEXEはデフォルトAnyCPUです。
    C++は32bitモジュールです。
    Windows 7 以降のOSは大半の環境が64ビットです。

    この場合、DLLがロードできないという類のエラーになっているはず。
    呼び出しのところで、クラッシュしてるかもしれませんけど。

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

■84070  Re[4]: 作業用フォルダについてご相談
□投稿者/ ザイーガ -(2017/05/12(Fri) 17:01:43)
    2017/05/12(Fri) 17:12:49 編集(投稿者)

    皆様、色々とありがとうございます。
    移動のため、返事が遅れて申し訳ございません。

    No84062 (とっちゃん さん) に返信
    >
    > SBCSかどうかは、"表"があるとパスがおかしいとかで判断できるかもしれません。

    はい。パスに「表」の文字があるとうまく動作しません。
    元々は、問題のあったパスの「ソ」の文字が問題でしたので、
    少なくとも5cの問題はあるのだろうと考えています。

    > 2008のようなのでEXEはデフォルトAnyCPUです。
    > C++は32bitモジュールです。

    VB側はx86でビルドしていますので、パス文字以外の問題は
    今のところ発生していません。

    他の皆さんのご意見も参考に、ちょっと検討します。
    このスレッドは閉じずにおきますので、また追加のアドバイスがございましたら
    どうぞよろしくお願いします。
記事No.84050 のレス /過去ログ143より / 関連記事表示
削除チェック/

■98561  Re[5]: 「複数のChartでのマウス位置による数量表示」の追加です
□投稿者/ 魔界の仮面弁士 -(2021/12/02(Thu) 09:50:57)
    2021/12/02(Thu) 10:54:17 編集(投稿者)

    No98560 (ゆい さん) に返信
    > これではChart2、Chart3にマウスがある時にもLabel1に数量が表示もされてしまいます。

    Chart2 の上にマウスが載っているときに、Char1 用の Label1 が更新されるのを避けたいのですね。

    MouseMove 時にまとめて Invalidate していること自体は、ライン描画のための正しい実装だと思います。
    その上で、Label への反映が問題になってしまうのは、 No98520 で御自身がお書きになった変数 ZaKa の算出処理部の実装によるものでしょう。


    現状の実装だと、Y 軸が 0 以上の値のみを扱うチャートであったとして、
    マウス座標が 0 未満の位置(プロットエリア外)を指していたときには、
    ラベルを書き換えていますよね?
    同様に、最大値を超える位置であっても書き換わっています。
    そしてそれは、別の Chart 上にマウス座標があった時でも変わりません。

    先の算出式では、Minimum と Maximum の相対量から、マイナス値を算出して
    変数 ZaKa に代入し、それをそのまま Label に表示されていましたよね。
    見直すべきはソコです。

    つまり、今回の目的を果たすなら、If ステートメントを使って
     「マウス座標が範囲外だったら Label を更新しない(あるいは空欄とする)」
    という実装にすることで、簡単に実装できるでしょう。
    そうすれば、Chart2 の上にマウスが載っているときに、Char1 用の Label1 が更新される事象を解消できるはずです。

    Label が更新される座標範囲を、それぞれの Chart 全体とすることもできますし、
    あるいは各 Chart のプロットエリア内だけを対象とすることもできるでしょうね。


    >>そもそも「コンストラクタ」って分かりますかね?
    > 自慢ではないですが当然の如く初めて。
    > でも便利そうですね、機会あれば使ってみることにします。

    Form1 のコード中に、直接「Public Sub New()」と書いて Enter した場合でも同じものが作られます。
    コンストラクタは、『オブジェクトが生成される時に一度だけ呼び出される処理』であり、
    Load イベントのような再入が起こりません。Load と使い分けてみてください。


    ちなみに、Form のコンストラクタ中に自動で用意される
     ' この呼び出しはデザイナーで必要です。
     InitializeComponent()
    と記述されている行は、フォームデザイナーで設定した内容を適用する処理です。

    InitializeComponent の部分を右クリックして [定義へ移動] を選択すると、
    Form1.designer.vb の該当行が表示されます。それを見ると、デザイナーによって
    自動生成された Chart や Label 等の情報が並んでいることを確認できるかと思います。

    InitializeComponent が呼び出されるまでは、コントロールはまだ配置されていません。
    そのため、今回の YLables への登録を行う場合には、必ずその前に
    InitializeComponent が呼び出されている必要があることに注意しましょう。これが先の回答で
    「コンストラクタ内の InitializeComponent() 呼び出しの『後』に移動させる」と書いた所以です。



    >>最近は "〇" (漢数字のゼロ) を使う人が増えているのは何故でしょうね。
    > 漢数字のゼロは知らないですが、日本語ではないからでしょうか??

    伏字部分を「まるまる」などと読んでいる人であれば、丸記号の方が自然だと思うのですが、
    そもそも「まるまる」という読み方がマイナーだったりするのかな…と思いましてね。

    たとえば「Private Sub 〇〇〇()」を「プライベート サブ ゼロゼロゼロ」と
    読んでいる人なら、○ (丸記号)ではなく、〇 (ゼロ)の文字を使う方が自然なわけで。

    ※関東圏の昔の TV 番組に、「午後は○○(ごごはまるまる)」ってのがあったので
     自分の認識が マルマル 読みに引っ張られていているのかもしれないと思ってみたり。
記事No.98552 のレス /過去ログ171より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -