OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

プログラムについて

  • 困ってます
  • 質問No.175847
  • 閲覧数46
  • ありがとう数0
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 0% (0/40)

はじめまして
VB6.0で作業しています。

今プログラムを作成中なのですが、
データが次のように並んでいて、

74 61 61 61 61 61 61 61 51 58 58 29 16 21
74 61 61 61 61 61 61 61 51 57 56 15 14 18
74 61 61 61 61 61 61 61 51 56 19 14 14 19
74 61 61 61 61 61 61 61 51 34 13 13 13 17
74 61 61 61 61 61 41 14 14 19 19 19 19 24
74 61 61 61 61 61 49 15 15 19 19 19 20 24
74 61 61 61 61 61 51 14 14 19 19 19 20 24

と並んでいて、それぞれ1行ずつ30以下の数字をカウントしてそれぞれ書きだしていきたいのですが
どうしたらいいのでしょうか???
(たとえば、今の場合だと1行目は3
            2行目は3
            3行目は4となるように)

誰かよろしくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル12

ベストアンサー率 33% (196/589)

こんにちは 質問を見てしまったので、つい書きこんでしまいました。 このプログラムを作成する意図は何なのでしょうか? どうしてこんな質問をしているのか意図がわかりません。 プログラムの知らない人が仕事に必要なので質問したようにも思えないですし、 プログラムの勉強の為の質問にしては、簡単すぎます。 教科書を見直した方がいいと思います。 このプログラムが自分で書けないとしたら、 ...続きを読む
こんにちは

質問を見てしまったので、つい書きこんでしまいました。
このプログラムを作成する意図は何なのでしょうか?

どうしてこんな質問をしているのか意図がわかりません。

プログラムの知らない人が仕事に必要なので質問したようにも思えないですし、

プログラムの勉強の為の質問にしては、簡単すぎます。
教科書を見直した方がいいと思います。

このプログラムが自分で書けないとしたら、回答を見ても分からないことはありませんか。

一番、気になるのはこのデータはどうゆう形で受け取るのでしょうか。
例えば、このデータがテキストファイルに有って読み込むとしたらその処理を作るのが一番大変な所になります。

既にデータが読み込まれているとしたら。どうゆう変数にデータが入っていますか?

自分の勝手な想像で失礼な事を言っていたらすみません。
  • 回答No.2
レベル9

ベストアンサー率 32% (34/105)

プログラム作成の意図はともかくとして...。 (意図は、ご本人の都合ですので)   単純に考えれば、読み込んだ数字の表を二次元 の配列の格納して、ループしながら比較し、見 つけた位置を別の配列に書き出す。 という処理を行いたいわけですよね?   こういう処理を「効率良く行うには?」という 事でしょうか。 バイナリソートのロジックを応用して、単純に ループするよりは高速化できると思いま ...続きを読む
プログラム作成の意図はともかくとして...。
(意図は、ご本人の都合ですので)
 
単純に考えれば、読み込んだ数字の表を二次元
の配列の格納して、ループしながら比較し、見
つけた位置を別の配列に書き出す。
という処理を行いたいわけですよね?
 
こういう処理を「効率良く行うには?」という
事でしょうか。
バイナリソートのロジックを応用して、単純に
ループするよりは高速化できると思いますが...。
  • 回答No.3
レベル11

ベストアンサー率 40% (170/415)

こんにちは 入力と出力の形式がわからないですが、作ってみました。 空白で区切られた行の分割でしたら、VB6ならSplitが使えます。 空白文字で分割して配列に入れます。 行単位の読込み部分?は、自分で頑張ってください。 出力はリストボックスへの表示にしてみました。 では! '---------------------------------------- 'フォームにL ...続きを読む
こんにちは
入力と出力の形式がわからないですが、作ってみました。
空白で区切られた行の分割でしたら、VB6ならSplitが使えます。
空白文字で分割して配列に入れます。
行単位の読込み部分?は、自分で頑張ってください。
出力はリストボックスへの表示にしてみました。
では!
'----------------------------------------
'フォームにList1リストボックスと、Command1ボタンを配置してください!
'
Private Sub splitGyo(ByVal zZ1 As String, ByVal nLi As Long)
'■ 1行をばらして、30以下の数値をカウントしてリストボックスに出力する

Dim zZ2() As String
Dim nN1 As Integer
Dim nN2 As Integer

'空白で区切ったデータを配列に入れる
zZ2() = Split(zZ1, " ")

nN2 = 0 'カウンタ
For nN1 = 0 To UBound(zZ2) '配列の終わりまで
If IsNumeric(zZ2(nN1)) Then
'数値なら
If CSng(zZ2(nN1)) <= 30 Then
'30以下ならカウントアップする
nN2 = nN2 + 1
End If
End If
Next

'リストボックスに書き出す
List1.AddItem nLi & " 行目 : " & nN2 & " 個 "

End Sub

'----------------------------
Private Sub Command1_Click()
'■ 行を設定して呼び出す
' ファイルだったら Line Input で1行ずつ読み込むように!
Dim zGyo As String
Dim nLine As Long

'例
nLine = 3 '何行目か(行カウンタにする)
zGyo = "74 61 61 61 61 61 61 61 51 56 19 14 14 19" 'データ
’「行のデータ」と、「何行目か」を渡す
Call splitGyo(zGyo, nLine)

End Sub
'---------------------------------
以上
  • 回答No.4
レベル13

ベストアンサー率 46% (643/1383)

データをSplit()で分割してしまえば簡単ですよ。 Sub test()   Dim strData As String 'ここにデータを入れて   Dim strDivided() As String '分割後のデータをここに書き出す。   Dim i As Long   Dim Ct As Long 'カウンタ      strData = " ...続きを読む
データをSplit()で分割してしまえば簡単ですよ。

Sub test()
  Dim strData As String 'ここにデータを入れて
  Dim strDivided() As String '分割後のデータをここに書き出す。
  Dim i As Long
  Dim Ct As Long 'カウンタ
  
  strData = "74 61 61 61 61 61 61 61 51 58 58 29 16 21"
  strDivided = Split(strData, " ")
  Ct = 0
  For i = 0 To UBound(strDivided)
    If Val(strDivided(i)) <= 30 Then
      Ct = Ct + 1
    End If
  Next i
  MsgBox "30以下は" & Ct & "個。"
End Sub
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ