配列のデータをコンマ区切りで出力するには

解決


ikagy  2004-12-14 06:14:54  No: 118283

配列に収められている数値データをコンマ区切り形式で出力する方法を教えて下さい。昔FORTRANでよく使っていたんですが。


いな  2004-12-14 06:17:38  No: 118284

配列の数値データが取得できているのであれば

http://www.bcap.co.jp/hanafusa/VBHLP/txt01.htm

を見れば簡単かと


たくみ  2004-12-14 06:47:03  No: 118285

いなさん、すっごいレス早〜い!

要は普通にただWriteすればいいだけなんですけどねえ・・
> 昔FORTRANでよく使っていたんですが。
Basicだって普通によく使ってますよ。
どっこい現役だい、OpenにWriteちゃん。

書き方はいろいろと工夫してください。

    Open MyFil For Append As FileNo
    Write FileNo, "  ", CStr(MyArray(0)), CStr(MyArray(1)),・・・
    Close FileNo

みたいなのが基本形ですね。


ikagy  2004-12-14 07:09:55  No: 118286

fortranでやっていたような
(MyArray(i),i=1.10))のような簡単なまとめ方はできないということですか。
for i=1 to 10
write MyAray(i)
next i  
とかするしかないんですか。


たくみ  2004-12-14 07:41:15  No: 118287

なんか、はずしちゃったみたいで失礼しました。

コーディング上、1行が3行になるのが納得いかないのではない
として、問題はFor i=1 to 10の10の(ループの上限値の)ところが
気に入らない、動的に可変させたい、とおっしゃるのでしたら
そこをUBound(MyArray)で済むのですが、、、

なんだか、今回も「だからそんなこと聞いてるのではない」と??


ikagy  2004-12-14 08:10:47  No: 118288

Write FileNo, "  ", CStr(MyArray(0)), CStr(MyArray(1)),・・・
このMyArrayが100まで続くとき、
for〜nextのloop文を使わずにすむような(fortran的)命令が無いか
知りたかったんです。


ガッ  2004-12-14 08:21:06  No: 118289

まぁ、単純にFor-Nextするよりはオレ的のForEach-Nextの方が好きなんだが…

dim v as variant
for each v in array(0,3,5,7,8,9,10,321,22,-8.23)
  debug.? v;" "
next

駄レスか…(orz


oku  URL  2004-12-14 08:42:04  No: 118290

Join 関数で簡単に出来ますけど。

    intFileNo = FreeFile
    Open "test.csv" For Output As #intFileNo
    Print #intFileNo, Join(MyArray, ",")
    Close #intFileNo


de  2004-12-14 08:49:33  No: 118291

数値をバリアント型の配列に入れて置き書き出すときにJoin関数を
使ってまとめるとか

  Dim a(10) As Variant
  Dim i     As Long
  Dim strA  As String
  
  For i = 0 To 10
    a(i) = i * 2
  Next
  
  strA = Join(a, ",")
  Debug.Print strA

別にループで問題なければループを使うのが簡単かと。


de  2004-12-14 08:50:09  No: 118292

なんか、思いっきりかぶっているみたいでもうしわけない。


いな  2004-12-14 22:30:32  No: 118293

>いなさん、すっごいレス早〜い!

ちょっと調べ物をしていたので、、、

>配列に収められている数値データをコンマ区切り形式で出力する方法
って内容から単純にFAQレベルの質問かと思ったよ。
でも、こんなスレの発展の仕方をしているとは・・・。激しく誤爆だった

#本日中にSTを終わらせないと


ikagy  2004-12-15 07:15:17  No: 118294

いろいろ教えていただいてありがとうございました。
結局

別にループで問題なければループを使うのが簡単かと。

このままでやります。
なにか簡単な表記方法があるかと思っておたずねしたんでしたが。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加