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

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

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

No.7026 の関連記事表示

<< 0 >>
■7026  Re[3]: データグリッド並べ替え
□投稿者/ (報告) -(2006/10/01(Sun) 11:30:52)

    分類:[VC++(C++/CLI)] 

    No7022に返信(サマーさんの記事)
    > すいません。

    問題も解決していないのに勝手にスレッドを締めない。身勝手すぎ。
    やり直し。
記事No.7013 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7026  VBについて
□投稿者/ まる -(2007/08/29(Wed) 09:45:40)

    分類:[VB.NET/VB2005] 

    英字の文字列があって(200文字くらい)、それを指定された文字数ずつ区切って見る。1文字ずらして区切る。文字列の中に2回以上でてくる組を表示するプログラムについてなんですが、初心者で全くわかりません。お願いします。
親記事 /過去ログ18より / 関連記事表示
削除チェック/

■7034  Re[1]: VBについて
□投稿者/ はつね -(2007/08/29(Wed) 11:22:07)
>
    2007/08/29(Wed) 11:22:51 編集(投稿者)

    No7026 (まる さん) に返信
    > 英字の文字列があって(200文字くらい)、それを指定された文字数ずつ区切って見る。1文字ずらして区切る。
    > 文字列の中に2回以上でてくる組を表示するプログラムについてなんですが、初心者で全くわかりません。お願いします。

    上記の事をコンピュータにやらせるためのロジックが分からないのでしょうか。
    それとも、VBでの具体的な記述方法が分からないのでしょうか。

    問題を解決するためには、問題を解決する手順(ロジック)を決めて、そしてそれに基づいて特定のコンピュータ言語でプログラミングをします。もちろん、手順を
    決めるときに使う言語の特性や機能をしっていると有利な事は有利ですが、知らないからといって手順が決められない訳ではありません。

    例えば、手順とは次のような感じで考えていきます。
    (1) 文字列の入った変数を用意する
    (2) (1)で用意した文字列に対して指定された文字数ずつ区切る   ←区切ったものをどうすればよいかを考えて見ましょう。
    (3) 1文字ずらして区切る                    ←何に対して?
    (4) 文字列の中に2回以上でてくる組を取り出す ←何に対して?
    (5) (4)で取り出した文字列を表示する              ←どこに?
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7055  Re[2]: VBについて
□投稿者/ まる -(2007/08/29(Wed) 14:21:13)
    No7034 (はつね さん) に返信
    > 2007/08/29(Wed) 11:22:51 編集(投稿者)
    >
    >回答ありがとうございます。VBでの具体的な記述方法が分かりません。お願いします。
    >
    > ■No7026 (まる さん) に返信
    >>英字の文字列があって(200文字くらい)、それを指定された文字数ずつ区切って見る。1文字ずらして区切る。
    >>文字列の中に2回以上でてくる組を表示するプログラムについてなんですが、初心者で全くわかりません。お願いします。
    >
    > 上記の事をコンピュータにやらせるためのロジックが分からないのでしょうか。
    > それとも、VBでの具体的な記述方法が分からないのでしょうか。
    >
    > 問題を解決するためには、問題を解決する手順(ロジック)を決めて、そしてそれに基づいて特定のコンピュータ言語でプログラミングをします。もちろん、手順を
    > 決めるときに使う言語の特性や機能をしっていると有利な事は有利ですが、知らないからといって手順が決められない訳ではありません。
    >
    > 例えば、手順とは次のような感じで考えていきます。
    > (1) 文字列の入った変数を用意する
    > (2) (1)で用意した文字列に対して指定された文字数ずつ区切る   ←区切ったものをどうすればよいかを考えて見ましょう。
    > (3) 1文字ずらして区切る                    ←何に対して?
    > (4) 文字列の中に2回以上でてくる組を取り出す ←何に対して?
    > (5) (4)で取り出した文字列を表示する              ←どこに?
    >
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7061  Re[3]: VBについて
□投稿者/ PATIO -(2007/08/29(Wed) 16:26:04)
    ども、PATIOです。

    No7055 (まる さん) に返信
    >回答ありがとうございます。VBでの具体的な記述方法が分かりません。お願いします。

    そういう話ならどういうロジックで処理するのかを提示して
    それをどう記述したら良いかと言う聞き方をすべきかと思います。
    同じ結果を出すにしてもやり方は色々ありますから。

    あと、VBの文法が分からないと言う話なら文法の勉強は書籍等でしないと
    多分、説明しても理解できないのではと言う気がします。
    その辺は大丈夫でしょうか?
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7064  Re[4]: VBについて
□投稿者/ まる -(2007/08/29(Wed) 16:44:36)
    No7061 (PATIO さん) に返信
    >
    >返信ありがとうございます。
    >
    >今すぐではないのですが、今週金曜までに必要なので参考にしたいと思い、質問させていただきました。
    >教わったものを使い、自分でそれに工夫を加えながら理解していきたいと思っています。
    >今大学生で習い始めたばかりなので得意な方に教えていてもらえたらと思ってます。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7065  Re[5]: VBについて
□投稿者/ PATIO -(2007/08/29(Wed) 16:51:08)
    No7064 (まる さん) に返信
    >返信ありがとうございます。
    >
    >今すぐではないのですが、今週金曜までに必要なので参考にしたいと思い、質問させていただきました。
    >教わったものを使い、自分でそれに工夫を加えながら理解していきたいと思っています。
    >今大学生で習い始めたばかりなので得意な方に教えていてもらえたらと思ってます。

    えと、自分の書込みに引用符(>)をつけないでください。
    引用部分のように見えて読みにくいです。
    習い始めたばかりであれば尚の事、少なくともたたき台程度は自分で出さないと勉強にならないと
    思いますけれど。課題として出されたのであれば、課題を解くためのレクチャは受けたのでは?
    とりあえず、サンプルを見て考え方を学ぶと言う方法も否定はしませんが、
    とりあえず、分からないなりに考えてみると言う姿勢も必要かと思いますよ。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7066  Re[6]: VBについて
□投稿者/ まる -(2007/08/29(Wed) 17:00:35)
    No7065 (PATIO さん) に返信

    ご指摘ありがとうございます。
    これは個人的にどういうふうに作るのかを知りたくて質問しました。
    課題ではないので、今の夏休みの間に具体的なプログラムをみて勉強したいと思ってます。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7067  Re[7]: VBについて
□投稿者/ はつね -(2007/08/29(Wed) 17:15:46)
>
    No7066 (まる さん) に返信
    > これは個人的にどういうふうに作るのかを知りたくて質問しました。
    > 課題ではないので、今の夏休みの間に具体的なプログラムをみて勉強したいと思ってます。

    課題ではないという事は、手順はまるさんの頭の中にあるということですね。
    まるさんの最初の投稿から手順の例を記載しましたが、その時点であやふやなところが何点かあります。その部分はどうなっていますか?
    あやふやな手順では具体的なコードは誰も提示できないですし、あやふやなままで探し回っても目的のコードをみつけるのは困難だと思います。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7070  Re[8]: VBについて
□投稿者/ まる -(2007/08/29(Wed) 17:27:59)
    No7067 (はつね さん) に返信
    >
    200文字程度の文字列をtextbox1を使い自分で入力し、3文字などtextbox2に自分で決めた文字数を入力。文字数ごとに列を区切る(組を作る)プログラム
    「mdhvdkvmsxsgfsvvbhkmfhyybafxrdgnpmuhvydiszaqgnytdsfh・・・」
    @---
    A---
    B---
    @,A,Bなどのように区切って1度区切った組が2度以上出た組み合わせを表示する。
    >(1) 文字列の入った変数を用意する
    textbox1に手入力

    >(2) (1)で用意した文字列に対して指定された文字数ずつ区切る   ←区切ったものをどうすればよいかを考えて見ましょう。
    配列に格納

    >(3) 1文字ずつずらして区切る                  ←何に対して?
    文字列に対して@、A、Bのように区切る
     
    >(4) 文字列の中に2回以上でてくる組を取り出す ←何に対して?
    文字列に対して2回以上出てきた組み合わせを表示

    >(5) (4)で取り出した文字列を表示する              ←どこに?
    表示の際に使うものは何がいいのか?(ツールボックスの中の何を使って表示すればいいのか?参考に)

    です。

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

■7080  Re[9]: VBについて
□投稿者/ はつね -(2007/08/29(Wed) 23:50:05)
>
    No7070 (まる さん) に返信
    > 「mdhvdkvmsxsgfsvvbhkmfhyybafxrdgnpmuhvydiszaqgnytdsfh・・・」
    > @---
    >  A---
    >   B---
    > @,A,Bなどのように区切って1度区切った組が2度以上出た組み合わせを表示する。
    
    つまり、「先頭から1文字づつ位置をずらしながら指定された文字数ずつ区切る」ですね。
    以下、まったく検証していないコード
    
            Dim inputString As String = Me.TextBox1.Text
            Dim splitLength As Integer = CType(Me.TextBox2.Text, Integer)
            Dim splitString(inputString.Length) As String
    
            For splitPosition As Integer = 0 To inputString.Length - splitLength
                splitString(splitPosition) = inputString.Substring(splitPosition, splitLength)
            Next
    
    
    > >(4) 文字列の中に2回以上でてくる組を取り出す ←何に対して?
    > 文字列に対して2回以上出てきた組み合わせを表示
    
    手順は正確に!
    例「(2)で作成した配列について、配列要素1つ1つに対して、他の要素と同じ文字列かをチェックして同じ文字列があったら・・どうする?」
    
    
    > >(5) (4)で取り出した文字列を表示する              ←どこに?
    > 表示の際に使うものは何がいいのか?(ツールボックスの中の何を使って表示すればいいのか?参考に)
    
    どのように表示したいかにより何を使うかが決まります。
    つまり、これも正解はまるさんの頭の中にあるということですね。
    
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7082  Re[10]: VBについて
□投稿者/ のん -(2007/08/30(Thu) 01:31:47)
    >夏休みの間に具体的なプログラムをみて勉強したいと思ってます。

    なら話は早いとおもいます。
    どうしたいのか一区切りづつ一個一個詳しく書いてみてください。
    私もよく掲示板に投稿して一個一個どうしたいのか分解するよう突っ込まれましたw

    ループ・if文や・変数などは理解しておりますでしょうか〜??
    焦らずゆっくり頭の中で考えてみてください。

    >表示の際に使うものは何がいいのか?(ツールボックスの中の何を使って表示すればいいのか?参考に)
    textboxやrichtextboxやlabelのことですか??

    はつねさんがおっしゃるとおり、どうしたいのかにもよります。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7098  Re[11]: VBについて
□投稿者/ まる -(2007/08/30(Thu) 11:43:26)
    No7082 (のん さん) に返信
    > ループ・if文や・変数などは理解しておりますでしょうか〜??
    はい。そこは大丈夫です。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7099  Re[10]: VBについて
□投稿者/ まる -(2007/08/30(Thu) 11:44:08)
    2007/08/30(Thu) 11:49:16 編集(投稿者)

    No7080 (はつね さん) に返信

    例えば
    実行ボタン内容
    textbox1にabcdefgabcを入力、入力したものを記憶(表示はしない)
    記憶したものを先頭から1文字づつ位置をずらしながら3文字ずつ区切り記憶(表示はしない)
    @abc
    Abcd
    Bcde
    Cdef
    Defg
    Efga
    Fgab
    Gabc
    となる。
    3文字ずつ区切ったもの(文字組)を比較する
    @と文字が同じ順番に並んでいる文字組があるときの個数を数える
    @abcのaから順にA以降の文字組と照合し、aが先頭にあった場合、2番目にある文字bについて照合。3番目cも同様。
    3番目まで終わったらAについて他と照合。と順に行う。
    「同じ順番に並んでいる文字組が2個以上存在する」かつ「存在頻度降順」にtextboxに表示。
    textboxは文字組と個数の2つのtextboxが横に並んでいる
         10個以上の欄 文字組
         9個の欄 文字組
         8個の欄  〃   
         7個の欄  〃
          :
          :
         2個の欄  〃
    の9つ用意してある。
    当てはまる欄の文字組と個数が表示される。
    1つもなかった欄には0が表示される。

    終了ボタン内容
    プログラムを終了させる。

    のプログラムの書き方を教えてもらえますか?それを元に自分で追加しはじめの質問を完成させたいと思っています。

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

■7123  Re[11]: VBについて
□投稿者/ mあ -(2007/08/30(Thu) 14:05:25)
    No7099 (まる さん) に返信
    > 2007/08/30(Thu) 11:49:16 編集(投稿者)
    
    > のプログラムの書き方を教えてもらえますか?それを元に自分で追加しはじめの質問を完成させたいと思っています。
    
        Public Class Sample
    
            Private _List As New ArrayList()
    
            Private Structure Suji : Implements System.IComparable
    
    
                Public s As String
                Public c As Integer
                Public p As Integer
    
                Public Sub New(ByVal p As Integer, ByVal s As String, ByVal c As Integer)
                   ''-- ☆ここに変数の初期化処理
                End Sub
    
                Public Overrides Function ToString() As String
                   ''-- ☆変数の表示文字列を返してください
                End Function
    
                Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
                    Dim xSuji As Suji = DirectCast(obj, Suji)
    
                    Return xSuji.c < Me.c
    
                End Function
            End Structure
    
            Public Sub New(ByVal text As String)
    
                SubstrText(text)
                CountSameKeywords(0)
                SortAndShowResult(False)
    
            End Sub
    
            Private Sub SubstrText(ByVal text As String)
    
                Dim p As Integer = 1
    
                Do While text.Length > 2
                    Dim key As String = text.Substring(0, 3)
                    _List.Add(New Suji(p, key, 0))
                    text = text.Substring(1)
                    p += 1
                Loop
    
            End Sub
    
    
            Private Sub CountSameKeywords(ByVal index As Integer)
    
                If index < _List.Count Then
                    Dim self As Suji = DirectCast(_List.Item(index), Suji)
                    CountSameKeywords(index + 1)
                    ''-- ☆ここにカウントする処理
                    _List.Item(index) = self
                End If
    
            End Sub
    
            Private Sub SortAndShowResult(ByVal bSort As Boolean)
                Dim os() As Object = _List.ToArray()
    
                If bSort Then Array.Sort(os)
    
                ''-- 確認
                ''-- ☆ここに表示する処理
            End Sub
    
    
        End Class
    
    
    上記クラスで以下を実行すると、
    Dim ss As New Sample("123456234123456246")
    
    結果は、
    位置(1)='123'=>頻度(1)
    位置(2)='234'=>頻度(2)
    位置(3)='345'=>頻度(1)
    位置(4)='456'=>頻度(1)
    位置(5)='562'=>頻度(1)
    位置(6)='623'=>頻度(0)
    位置(7)='234'=>頻度(1)
    位置(8)='341'=>頻度(0)
    位置(9)='412'=>頻度(0)
    位置(10)='123'=>頻度(0)
    位置(11)='234'=>頻度(0)
    位置(12)='345'=>頻度(0)
    位置(13)='456'=>頻度(0)
    位置(14)='562'=>頻度(0)
    位置(15)='624'=>頻度(0)
    位置(16)='246'=>頻度(0)
    
    こうなります。
    
    ところどころ☆の部分が歯抜けになっていますが、宜しければどうぞ。
    
    再帰を使っているので具合が悪ければ別の手段を使ってください。
    
    # 学校の宿題ですか?
    
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7181  Re[12]: VBについて
□投稿者/ まる -(2007/08/31(Fri) 15:48:53)
    No7123 (mあ さん) に返信
    >
    遅くなりました。
    Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim a(200), d(200) As String
    Dim n, c(200) As Integer
    Dim ss As String

    #Region " Windows フォーム デザイナで生成されたコード "

    Public Sub New()
    MyBase.New()

    ' この呼び出しは Windows フォーム デザイナで必要です。
    InitializeComponent()

    ' InitializeComponent() 呼び出しの後に初期化を追加します。

    End Sub

    ' Form は、コンポーネント一覧に後処理を実行するために dispose をオーバーライドします。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
    If Not (components Is Nothing) Then
    components.Dispose()
    End If
    End If
    MyBase.Dispose(disposing)
    End Sub

    ' Windows フォーム デザイナで必要です。
    Private components As System.ComponentModel.IContainer

    ' メモ : 以下のプロシージャは、Windows フォーム デザイナで必要です。
    'Windows フォーム デザイナを使って変更してください。
    ' コード エディタを使って変更しないでください。
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents retu As System.Windows.Forms.TextBox
    Friend WithEvents startButton As System.Windows.Forms.Button
    Friend WithEvents finishButton As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    Me.Label1 = New System.Windows.Forms.Label
    Me.retu = New System.Windows.Forms.TextBox
    Me.startButton = New System.Windows.Forms.Button
    Me.finishButton = New System.Windows.Forms.Button
    Me.SuspendLayout()
    '
    'Label1
    '
    Me.Label1.Location = New System.Drawing.Point(120, 24)
    Me.Label1.Name = "Label1"
    Me.Label1.Size = New System.Drawing.Size(56, 16)
    Me.Label1.TabIndex = 0
    Me.Label1.Text = "文字列 :"
    '
    'retu
    '
    Me.retu.Location = New System.Drawing.Point(176, 24)
    Me.retu.Name = "retu"
    Me.retu.Size = New System.Drawing.Size(384, 19)
    Me.retu.TabIndex = 1
    Me.retu.Text = ""
    '
    'startButton
    '
    Me.startButton.Location = New System.Drawing.Point(264, 56)
    Me.startButton.Name = "startButton"
    Me.startButton.TabIndex = 2
    Me.startButton.Text = "実行"
    '
    'finishButton
    '
    Me.finishButton.Location = New System.Drawing.Point(376, 56)
    Me.finishButton.Name = "finishButton"
    Me.finishButton.TabIndex = 3
    Me.finishButton.Text = "終了"
    '
    'Form1
    '
    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 12)
    Me.ClientSize = New System.Drawing.Size(744, 381)
    Me.Controls.Add(Me.finishButton)
    Me.Controls.Add(Me.startButton)
    Me.Controls.Add(Me.retu)
    Me.Controls.Add(Me.Label1)
    Me.Name = "Form1"
    Me.Text = "Form1"
    Me.ResumeLayout(False)

    End Sub

    #End Region

    Private Sub startButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles startButton.Click

    'textboxに入力した文字列をssにうつして、文字列の長さを返す
    ss = retu.Text
    n = ss.Length()

    '@3文字で区切ったものを配列に格納(文字組)
    Dim i As Integer
    Do
    For i = 0 To n - 3
    If i = 0 Then
    a(i) = Microsoft.VisualBasic.Left(ss, 3)
    Else
    a(i) = Mid(ss, i + 1, 3)
    End If
    Next
    Loop While i <= n - 3

    Dim j As Integer
    Do
    For j = 0 To n - 3
    If j = 0 Then
    d(j) = Microsoft.VisualBasic.Left(ss, 3)
    Else
    d(j) = Mid(ss, j + 1, 3)
    End If
    Next
    Loop While j <= n - 3

    'A同じ順序に並んだ文字組を探す
    Dim b As Integer
    Do
    For i = 0 To n - 3
    For j = 0 To n - 3
    For b = 0 To n - 3
    c(i) = StrComp(a(i), d(j))
    If c(b) = 0 Then
    c(b) = c(b) + 1
    d(j) = "zero"
    End If
    Next
    Next
    Next
    Loop While i <= n - 3

    'B2個以上あるデータを出力
    Do
    For i = 0 To n - 3
    If c(b) >= 1 Then
    Print(a(i))
    End If
    Next
    Loop While i <= n - 3

    End Sub

    '終了ボタンでプログラム終了
    Private Sub finishButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles finishButton.Click
    End
    End Sub

    End Class

    自分で一応考えて作ってみたのですが動きません。指摘をお願いします。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7190  Re[13]: VBについて
□投稿者/ はつね -(2007/08/31(Fri) 17:00:46)
>
    No7181 (まる さん) に返信
    > 自分で一応考えて作ってみたのですが動きません。指摘をお願いします。

    どのように動かないのでしょうか。
    コード貼り付けてあるので、それを使って掲示板を見た方が確認すればよいのでしょうが、その手間をかけられない方からの回答を得られないというのももったいないですよね。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7189  Re[13]: VBについて
□投稿者/ NANAC -(2007/08/31(Fri) 17:00:39)
    No7181 (まる さん) に返信
    > 自分で一応考えて作ってみたのですが動きません。指摘をお願いします。

    ・動かなくてどんなエラーがでたか
    ・そのエラーが発生した場所どこか?
    を書いたほうが良いですよ。

    じゃないと、検証に時間がかかって
    レスが付き難くなります。
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7083  Re[9]: VBについて
□投稿者/ のん -(2007/08/30(Thu) 01:44:48)
    > 200文字程度の文字列をtextbox1を使い自分で入力し、3文字などtextbox2に自分で決めた文字数を入力。文字数ごとに列を区切る(組を作る)プログラム

    > 「mdhvdkvmsxsgfsvvbhkmfhyybafxrdgnpmuhvydiszaqgnytdsfh・・・」
    > @---
    > A---
    > B---
    > @,A,Bなどのように区切って1度区切った組が2度以上出た組み合わせを表示する。
    > >(1) 文字列の入った変数を用意する
    > textbox1に手入力
    >
    > >(2) (1)で用意した文字列に対して指定された文字数ずつ区切る   ←区切ったものをどうすればよいかを考えて見ましょう。
    > 配列に格納
    >
    > >(3) 1文字ずつずらして区切る                  ←何に対して?
    > 文字列に対して@、A、Bのように区切る
    >  
    > >(4) 文字列の中に2回以上でてくる組を取り出す ←何に対して?
    > 文字列に対して2回以上出てきた組み合わせを表示
    >
    > >(5) (4)で取り出した文字列を表示する              ←どこに?
    > 表示の際に使うものは何がいいのか?(ツールボックスの中の何を使って表示すればいいのか?参考に)
    >
    > です。
    >
    >

    考えてることが違っていたらごめんなさいsubstringを使って区切ってformatするってことでしょうか??
    #いや本当間違えてたらすみません
記事No.7026 のレス /過去ログ18より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -