新しく発言する EXIT インデックスへ
テキストファイルの読み込み

  テキストファイルの読み込み 上出 拓郎 2006/01/08 09:40:24 
  「EXTYPE8101読み込もうとしたデータが数値... 青木太一 2006/01/08 12:50:11 
   └よくわかりました。 上出 拓郎 2006/01/08 14:03:36 
    └付け加えるなら、行頭の"x","y"という文字列... 青木太一 2006/01/08 17:30:27 
     └EXCELのシートで入れたデータをインプットシ... 上出 拓郎 2006/01/08 19:42:19 

  テキストファイルの読み込み 上出 拓郎 2006/01/08 09:40:24  ツリーへ

テキストファイルの読み込み 返事を書く
上出 拓郎 2006/01/08 09:40:24
テキストファイル test02.txt で次の表を作成します。
x,y,
1,5,
2,4,
3,9,

次に十進BASICで次を実行します。
!test02.bas
dim a$(1000),b$(1000),c(1000),d(1000)
open#1:name"test02.txt",access input, rectype internal
let n=1
do
read#1,if missing then exit do:a$(n),a$(n),c(n),d(n)
let n=n+1
loop
close#1

for i=1 to 4
print c(i);d(i)
next i
END

すると、「EXTYPE8101
読み込もうとしたデータが
数値定数でなかった。」
と出ます。
どうすればよいでしょうか。

  「EXTYPE8101読み込もうとしたデータが数値... 青木太一 2006/01/08 12:50:11  ツリーへ

Re: テキストファイルの読み込み 返事を書く
青木太一 2006/01/08 12:50:11
「EXTYPE8101読み込もうとしたデータが数値定数でなかった。」
これが出る直接の原因は、n=1のとき「x,y,」という行を読もうとして
a$(1)="x"
a$(1)="y"
までは成功したが
c(1)に数値を代入しようとしたとき、なにも値がなかったからです。

そもそも上出さんのプログラムにはいくつか不思議な点があるように感じます。
・なぜtest02.txtは各行末に「,」をつけているのか
・なぜ「数字,数字,」という形式の行を「read#1,if missing then exit do:a$(n),a$(n),c(n),d(n)」で読もうとするのか
・b$を使っていないのはなぜか
・数字の行は3行なのになぜ「for i=1 to 4」なのか

このように変更してみましたが、これで上出さんの意図した動作になるでしょうか?

!test02.bas
dim a$(1000),b$(1000),c(1000),d(1000)
open#1:name"test02.txt",access input, rectype internal
let n=1
read#1:a$(n),a$(n),b$(n) !先頭のx,y,を読む。b$は行末の空文字列を読み捨てるため
do
read#1,if missing then exit do:c(n),d(n),b$(n) !b$は行末の,の後の空文字列を読みすてるため
let n=n+1
loop
close#1

for i=1 to n-1 !読み込んだ行数分だけ表示
print c(i);d(i)
next i
END

   └よくわかりました。 上出 拓郎 2006/01/08 14:03:36  ツリーへ

Re: 「EXTYPE8101読み込もうとしたデータが数値... 返事を書く
上出 拓郎 2006/01/08 14:03:36
よくわかりました。
青木さんのプログラムで思い通りの
ことができましたので、
*.txtの各行末に「,」を取り除き、
次のプログラムになおしました。

ありがとうございました。

!test02.bas
dim a$(1000),b$(1000),c(1000),d(1000)
open#1:name"test02.txt",access input, rectype internal
let n=1
read#1:a$(n),b$(n)
do
read#1,if missing then exit do:c(n),d(n)
let n=n+1
loop
close#1

for i=1 to n-1
print c(i);d(i)
next i
END

    └付け加えるなら、行頭の"x","y"という文字列... 青木太一 2006/01/08 17:30:27  ツリーへ

Re: よくわかりました。 返事を書く
青木太一 2006/01/08 17:30:27
付け加えるなら、行頭の"x","y"という文字列を読み捨てるだけだったら、a$、b$は配列でなくて普通の変数でいいと思います。
後に配列として活用する予定だったのなら失礼。

     └EXCELのシートで入れたデータをインプットシ... 上出 拓郎 2006/01/08 19:42:19  ツリーへ

Re: 付け加えるなら、行頭の"x","y"という文字列... 返事を書く
上出 拓郎 2006/01/08 19:42:19
EXCELのシートで入れたデータをインプットシートとして*.csvでセーブし、十進BASICで演算させた後
別の*.csvファイルを作成してこれをアウトプットシートとして
EXCELで読み込み、修飾を加えたのち客先提出用の資料にすることを考えています。 この際a$、b$も配列として読み込むことも考えています。
ご注意ありがとうございました。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。