C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: CSV出力について


(過去ログ 145 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■85058 / inTopicNo.1)  CSV出力について
  
□投稿者/ tari (1回)-(2017/09/07(Thu) 18:49:46)

分類:[.NET 全般] 

VB.netでプログラムを作成してますが
わからないことがあるので教えてください

a()= {0,1,2,3}
b()= {4,5,6,7}

があります

CSVへ出力する際

for i as integer = 0 to a.Length - 1
Dim test As String() = {a(i), b(i)}
File.AppendAllLines( path & "c.csv", test, Encoding.Default)
next

0
4
1
5
2
6
3
7

書き込まれますが

0,4
1,5
2,6
3,7

というふうに出力したいんです

教えてください
引用返信 編集キー/
■85059 / inTopicNo.2)  Re[1]: CSV出力について
□投稿者/ 魔界の仮面弁士 (1406回)-(2017/09/07(Thu) 19:22:43)
No85058 (tari さん) に返信
> a()= {0,1,2,3}
> b()= {4,5,6,7}

型は整数なのですか?

Dim a As Integer() = {0, 1, 2, 3}
Dim b() As Integer = {4, 5, 6, 7}

それとも文字列なのですか?

Dim a As String() = {"0", "1", "2", "3"}
Dim b() As String = {"4", "5", "6", "7"}


ひとまず、文字列ということで回答します。

> 0,4
> 1,5
> 2,6
> 3,7

a と b の要素数が同じであるという前提で良いなら:

'案1
Dim test = Enumerable.Range(0, a.Length).Select(Function(i) a(i) & "," & b(i))
File.WriteAllLines(path & "c.csv", test, Encoding.Default)


'案2
For n = 0 To a.Length - 1
 Dim test As String = a(n) & "," & b(n) & ControlChars.NewLine
 File.AppendAllText(path & "c.csv", test, Encoding.Default)
Next


なお上記は、「各レコードの末尾」に改行が配置される形式で出力されます。
「レコードとレコードの間」に改行を配置する場合は、下記の様に書けます。

'案1改
Dim test = Enumerable.Range(0, a.Length).Select(Function(i) a(i) & "," & b(i))
.WriteAllText(path & "c.csv", String.Join(vbNewLine, test), Encoding.Default)

引用返信 編集キー/
■85066 / inTopicNo.3)  Re[2]: CSV出力について
□投稿者/ tari (2回)-(2017/09/08(Fri) 09:59:04)
No85059 (魔界の仮面弁士 さん) に返信

ありがとうございます
おかげさまで、できました

色々方法があるんですね・・
勉強になります!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -