• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:visual basic6.0でのテキストファイルからの読み込みについて。)

Visual Basic6.0でテキストファイルからの読み込み方法

このQ&Aのポイント
  • Visual Basic6.0でテキストファイルからの数値の読み込み方法について質問です。
  • 質問者は、数値をテキストファイルに保存し、その数値を2次元配列に読み込みたいと考えています。
  • 範囲指定で一部の数値を読み込む場合に問題が発生しており、テキストファイルの数値が配列になっていない可能性について質問しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

テキストファイルはシーケンシャルにしか読めません 1,2,3,4,5,6,7,8,9,10 2,4,6,8,10,1,3,5,7,9 と書かれたファイルを 1,2,3,4,5,6 2,4,6,8,10,1 だけ読み込みたいといっても すべて読み込むのと同じロジックでは出来ない相談です データの分割文字がはっきりしているのであれば 1行読み込んで Splitで分解し必要な部分だけ取り出しましょう たとえば dim ar() as String for y = 0 to 1   Line Input #1, Buf   ar = split( buf, ",")   for x = 0 to 5     D(x,y) = ar(x)   next next といった具合です 別の方法としては ランダムアクセスファイルとしてデータを書き込み 必要なレコード番号を引数として Getで読み込む方法です これには 元データもVBが理解できるランダムファイルである必要があります

n835
質問者

お礼

ありがとうございます!! いろいろなやり方があるのですね。 これから勉強してやってみたいと思います。 ありがとうございましたm(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • テキストの読み込み

    数値が書き込まれている2つのテキストファイルを同時に読み込ませてループしていくのは どうしたら良いですか? x.txtが1行目を読み込んだら,y.txtも1行目を読み込むように行いたいです。

  • Visual C++を 用いたテキストファイル読み込み(応用)

    Microsoft Visual C++ 2008 Express Editionを使っています。 テキストファイルは 約5000行×6列の数値(のみ)になっております。(列間にスペースあり) いくつかある5000×6行テキストファイルの中から、ファイル名を入力することで任意のテキストファイルにアクセスし、さらに6列のデータをそれぞれ別の配列に格納するコンソールプログラムを考えていますが行き詰まっています。例えば、1列目を配列1、2列目を配列2、・・・といった具合です。 詳しい方、どうかよろしくお願いいたします。

  • テキストファイルを配列に

    始めまして C言語にてテキストファイルの中身を読み込み一次元配列に代入するというシステムを作ろうとしているのですがわかりません テキストファイルの中身は 12 5312 72 7 444 53 7884 といった具合で100数行あり一行ごとに配列に入れたいです 勉強を始めたばっかりで本を見ても書いていなく困っています わかるかたご指導願えますか? よろしくお願いいたします

  • C言語を使って、ファイルの読み込みをして切り出して2次元配列に格納した

    C言語を使って、ファイルの読み込みをして切り出して2次元配列に格納したいのです。 1,2行目に配列の行の数と列の数が書かれ、3行目から改行とカンマ、スペースで区切られて配列が書かれているテキストを読み込んで2次元配列に格納する。 テキストの例) 4 3 1.1 1.2 1.3 1.4 1.5 2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 4.4 3.5 というプログラムを書いています。色々と参考書やサイトを参考してとりあえずの形にはなったと思ったのですが、実行してもエラーが出ます。 どこまで動いているか調べたところ、一行ごとに読み出してそれを切り出して行くところでおかしな事をしてしまっているようですが、どう変えたらいいものか分かりません。 なので、その点のアドバイスと 大きさの分からないファイルから1,2行目を読み出すのはこれで変な動きをする恐れはないか の2点についてヒントでも構わないので、教えてください。 以下、書いたソースです(申し訳ないのですが、文字数の関係で一部省略しています。) #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[] ) { double ** mainhairetu; int size_x, size_y; /* size_x 行 size_y 列 */ int i,j,count=0,count2; int *cut,*temp2; double temp; char s2[] = " ,"; char gyou[10],*num; FILE *fil; while((fgets(gyou,10,fil)) !=NULL){ if(count == 0){ size_x=atoi(gyou); count++; }else if(count ==1){ size_y=atoi(gyou); count=count+1; }else{ break; } } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ここでmallocを使ってcutとmainhairetuの2つの配列を作っています。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ count=0; for (i = 0; i < size_y+2; i++) { mainhairetu[i][0] = atof( strtok( fgets(cut,50,fil),s2 ) ); for (j = 1; j < size_x; j++){ if(count <=1){ count++; break; }else{ mainhairetu[i][j] = atof( strtok( NULL,s2 ) ); } } } for(i=0;i<size_y;i++){ for(j=0;j<size_y;j++){ printf("%f",mainhairetu[i][j]); } printf("\n"); } return(0); }

  • DDE連携が不安定

    VB4 + EXCEL97 VB4でシェルでエクセルファイルを起動して DDE連携で配列の中身をセルに書き込んで行くプログラムを 作ってみたのですが安定せず、 数回に1度しか成功しません。 何故でしょうか? Dim ファイル名, コマンド,EXCELフルパス Dim X,Y,Z DDE_Text.LinkMode = vbNone  ファイル名 = CurDir & "\EXCEL.xls" コマンド = EXCELフルパス + Space(2) + ファイル名 Z = Shell(コマンド, 1) ' を起動します。 DDE_Text.LinkTopic = "Excel|SHEET" ' トピックを設定します DDE_Text.LinkItem = "R1C1" ' アイテムを設定します。 DDE_Text.LinkMode = vbLinkManual ' モードを設定します。     ↑ここでよくエラーが出ます。 For Y = 1 To 10 For X = 1 To 10 DDE_Text.LinkItem = "R" & Y & "C" & X ' アイテムを設定します。 DDE_Text.Text = 二次元配列(Y, X) ' Text プロパティに値を代入します。 DDE_Text.LinkPoke ' セルに値をポークします。 Next X Next Y

  • csvファイルの横方向への改行について

    ある2次元配列があったとして, セルをちゃんと改行しつつcsvファイルに 書き込みをしようとしてるのですが 英字の方へ改行をする方法がわかりません. int a[4][4] ;   :   : FILE *file; file = fopen("condidate.csv","w"); for(int x = 0; x < 5 ; x++) { for(int y = 0; y < 5; y++) { fprintf(file,"%d\n", a[x][y]); } //改行←ここがわからない } fclose(file); csvファイル 1つの配列が1つのセルに入っている状態 ↓  A B C D _ _ _ _ 1 |1 1 1 1 2 |1 1 1 1 3 |1 1 1 1 4 |1 1 1 1 上記のものを作りたいです. よろしくお願いいたします.

  • C#のテキストファイル読み込みについて

    C#のテキストファイル読み込みについて 2次元配列を使います(a[行][列]みたいに テキストファイルを1文字ずつ読み込みます。 そして、改行文字が見つかると行を1つずらします それを繰り返して最後まで読みこむと終わり そんなことをしたいです DOBON.NETでこんなの見つけたんですが 上の処理をしようと思っても、どこをいじればできるのかわかりませんでした //"C:\test.txt"をShift-JISコードとして開く System.IO.StreamReader sr = new System.IO.StreamReader( @"C:\test.txt", System.Text.Encoding.GetEncoding("shift_jis")); //内容を一行ずつ読み込む while (sr.Peek() > -1) { Console.WriteLine(sr.ReadLine()); } //閉じる sr.Close(); よくわかるサイトとかあったら教えてください、お願いします

  • ファイルの作成・書き込み・読み込みについて

    ファイルの取り扱いについて、どのように記述すればいいのかが分かりません。 分からないことが多いので(1)~(4)の質問に分けています、Cの勉強は趣味程度にしかできていないので、詳しくご回答いただけると嬉しいです。 自分なりに書いてみます、間違いがあればご指摘宜しくお願いします。 (1)Aを頭文字にして100個のcsvファイルを作成 (a1,a2…a100) char A[100] FILE *fp; for(i=1;i<101;i++) { snprintf(A,sizeof A,"A%d.csv",i); if((fp = fopen(A,"w"))!=NULL) {exit(1);} } (2)A1を開きデータを入れる、この動作を同様に2~100で繰り返す。 A1に入れたいデータはx,y,zで1000行 fp = fopen("A1.csv","a"); for(z=1;z<11;z++) { for(y=1;y<11;y++) { for(x=1;x<11;x++) { fprintf(fp,"%d,%d,%d\n",x,y,z); } } } fclose(fp); これでこんな感じに書き込まれるはず・・・ 1,1,1 2,1,1 3,1,1  ・  ・  ・ 10,10,10 これを同様に2~100のファイルに対して一気に行いたいですが、書き方が分かりません。 (3)再びA1を開きx=10,Y=10の時のzの値を知りたい。 こんな事はできるのでしょうか? もし無理なら~行目のデータを呼び出す (4)そしてA1を開きx=10,Y=10の時の、zだけを上書き。 長くなってすいません、分からない事だらけなので宜しくお願いします。

  • ファイルからの読み込み 配列

    座標データの数値のテキストファイルから配列の中に座標値を格納したいのですが、int型のデータを読み込んで配列に格納するのは、どのようにプログラムを組めばよろしいのでしょうか?下のようにxzahyou.csvというファイルから配列Z[i]に格納したくて組んでみたら、 br = new BufferedReader(new FileReader("xzahyou.csv")); for(int i=0;i<X.length;i++){ String line = br.readLine(); X[i]=line; X[i] = line;のところで互換性がないと出てきました。int型の場合どのようにすればよろしいのでしょうか?教えてください。お願いします。

  • テキストファイルからの数値の読み込みについて

    C言語の初心者で、Microsoft Visual C++ 6.0 を使用しています。 テキストファイルから数値を読み込むことに関して質問です。 下記のプログラムでテキストファイルを読み込んだとき <正しい結果> -0.0266377 Press any key to continue と実行結果がなるはずですが、もとのファイルをコピーしたファイルから 読み込むと <誤った結果> -9.25596e+061 Press any key to continue となってしまいます。またエディターで適当な数値のテキストファイルを 作っても同様なトラブルが生じます。目下、Cのコンパイラしか無い 状況下でFortranのプログラムをCに変換しています。 下記のxをint,floatで定義した場合も異なった値を出力します。 エディターで、正しく読める元ファイルとコピーしたファイルの違いをしらべ ても、違いはありませんでした。  宜しくご教授のほど御願いします。 --------------------------- #include <iostream.h> #include <fstream.h> int main() { double x; ifstream fin("a:\data.txt"); fin >> x; cout << x << endl; fin.close(); return 0; } ----------------------------

このQ&Aのポイント
  • カラー印刷ができない問題について、TS8430の対処方法を紹介します。
  • TS8430は買い替えたばかりの最新機種ですが、カラー印刷ができない場合、アップデートの確認や設定の確認をおすすめします。
  • 白黒印刷は問題ないのにカラー印刷ができない場合、印刷ヘッドの詰まりやインクの不具合が考えられます。専門のサービスセンターに相談しましょう。
回答を見る

専門家に質問してみよう