• 締切済み

プログラムについて

はじめまして 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となるように) 誰かよろしくお願いします。

  • 4436
  • お礼率0% (0/40)

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

データを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

  • i-touch
  • ベストアンサー率40% (170/415)
回答No.3

こんにちは 入力と出力の形式がわからないですが、作ってみました。 空白で区切られた行の分割でしたら、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 '--------------------------------- 以上

  • kougasha
  • ベストアンサー率32% (34/105)
回答No.2

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

  • gould09
  • ベストアンサー率33% (196/589)
回答No.1

こんにちは 質問を見てしまったので、つい書きこんでしまいました。 このプログラムを作成する意図は何なのでしょうか? どうしてこんな質問をしているのか意図がわかりません。 プログラムの知らない人が仕事に必要なので質問したようにも思えないですし、 プログラムの勉強の為の質問にしては、簡単すぎます。 教科書を見直した方がいいと思います。 このプログラムが自分で書けないとしたら、回答を見ても分からないことはありませんか。 一番、気になるのはこのデータはどうゆう形で受け取るのでしょうか。 例えば、このデータがテキストファイルに有って読み込むとしたらその処理を作るのが一番大変な所になります。 既にデータが読み込まれているとしたら。どうゆう変数にデータが入っていますか? 自分の勝手な想像で失礼な事を言っていたらすみません。

関連するQ&A

  • C言語プログラム

    .txtファイルのデータを読み込んで処理するプログラムを作っているのですがやり方がわかりません。 .txtファイルには 1  1.0043  34   744   0.001 7  1.0053  36  733   0.024 4   1.0056  62  621  0.003 . . . と百行くらいのデータがあります。 このデータを読み込んで3行目の2桁の数字だけを取り出す作業ができません。 34 36 62 このようにしたいのですがわかる方教えてください、お願いします。

  • スタティックプログラム

    VB歴3ヵ月の初心者です。 VS 2003で.netプログラムを始めました。 安全性を高めるために、VB6.0におとしました。 それでもプログラムのインストール時に、DLL、OCXがインストールされてしまうため、スタティックプログラムを作成したいと考えています。 VB6.0もしくはVS2003で作成したプログラムをスタティックに変換することは出来ないでしょうか?不可能である場合にスタティックプログラムを作るにはどのような手法をとれば良いのでしょうか? ご教示お願いします

  • VBプログラムについて

    テキストデータを取り込み、そのデータをもとに 表を作成し、Excelシートに出力するという VBプログラムをOS Windows2000、VB6.0(SP5)、Excel2000の環境で作成しました。 このプログラム(exe)をOS Windows95、Excel2000上で 動作するのでしょうか? また、動作させる場合にはどういった注意点が必要でしょうか? ちなみにそのプログラムではADO 2.6も使用しています。 どうぞよろしくお願いします。

  • MATLABのプログラムでのデータ処理で困っています。

    こんにちは、MATLAB初心者の者です。 あるデータの処理をしなくてはならないのですがどのようにプログラムを作ってよいか分からず困っています。 データの内容はこのような数字が並んでいます。 522344 527870010500115000980009800079000780008000101000 529970009800119001040008900083000910008800101000 523800003010700120001120010000090001010010700117 ・・・・・・ これを1行目の3~4桁、5~6桁を取り出し、2行目の3~5桁、6~8桁、9~11桁・・・と3桁づつを1行目から取り出した数字の後に取り出したいのです。 23 44 787 23 44 001 23 44 050 23 44 011 23 44 500 23 44 098 ・・・・・・ 3行目以降も同じ方法です。 23 44 997 23 44 000 23 44 980 23 44 011 23 44 900 ・・・・・・ 説明が下手ですみません。 他の言語で作成した方が早いとは思いますし、こんな簡単なことも出来ないのに使うなとお叱りを受けそうなのですがMATLABでやらなければならない事情があり、困ってしまいこちらに質問する事にしました。 どうかよろしくお願いします。

  • Access2000 プログラムの修復

    お世話になります。 作成して入力をしているデータベースは、 データのファイルと、プログラムのファイルと 分けて作成されています。 作業途中でエラーが出るなり、開かなくなるなりの状態になった場合、 ファイルの最適化/修復をしたのですが、 それでも開かないやエラーになる場合、 どこをチェックすればよいのでしょうか。 また、毎日バックアップを取っているのですが、 そのバックアップファイルを上書きした方がいいのでしょうか。 その場合、プログラムファイルだけ上書きして、 データファイルは現状のままでもよいでしょうか。 (データファイルは最新のデータが入ったあとのため 上書きすると前日の状態に戻ってしまうため) 基本的なことで申し訳ありませんが、 複数人で入力していることもあってか、不安定なので 操作上の不安を少しでもなくしたいのです。 素人が作成したデータベースなので VB等は殆ど組んでいない、セキュリティの甘いデータベースです。 宜しくお願い致します。

  • ヌメロンのプログラムについて

    ヌメロンのプログラムをjava言語で作ろうと思っています。 0~9の数字3つを使用してランダムに作成した番号を当てます。 334,668など同じ数字を2つ以上使用した番号はありません。 入力した数字の位置と数字が当たっていれば「EAT」数字のみならば「BITE」 とカウントします。 3EATになると勝ち...という感じです。 よければ、ソースと解説がほしいです。 よろしくお願いします。

  • 【プログラム】条件分岐について

    プログラム初心者です. (言語: C shell (csh)) 『Aというファイルの中の行数をカウントし,3行以上ならdecodeし, 3行以下ならdecodeしない.』 というプログラムを組みたいと思っております. カウントするのに while文を使い,その後 if文で条件分岐するのかなぁと考えております. ですが,なにせ初心者でして,調べる努力はしましたが,カウント方法やdecodeの実行・非実行コマンドなど,ピンときません. 初歩的な問題でお恥ずかしいのですが,どなたか教えてください.>< よろしくお願いいたします.

  • プログラム間のデータ引き渡し

    VBで作成した複数のプログラムを次々に渡り、その間発生した計算値を 使用したいのですが… 一つのプログラムで発生したデータは、テキストファイルとして保存され 次のプログラムに処理を移してそのデータを使用する、といった操作をしたいのです Shell関数やCommand関数を使用すればできるのでしょうか? アドバイスお願いします

  • プログラムについて

    次の問題が自分はどうしても分からないので、みなさんの力をお借りしたいのです。 問題は:   N以下の素数を求めるプログラムと   試験の得点(0以上100以下の整数)を入力し,得点データの分布を10点刻    みのヒストグラムの形式で出力するプログラムの作成が分かりませんので、   何とかよろしくお願いします!

  • コンパイラー

    こんにちわ。 私は今エクセルでソフトを作成しています。 エクセル内でカスタムマクロプログラムをNCデータに変換させたいの ですが、この作業を行えるようにするプログラム(VB)を作成するまでの知識が私には無くどこから手をつけたらいいのか困っています。 ちなみに少しならならVB組めます。(本を見ながらですが) どなたかヒントでもいいので知恵をかしていただけないでしょうか? 宜しくお願いいたします。

    • 締切済み
    • CAE

専門家に質問してみよう