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

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

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

Re[5]: 文字列の配列への格納について


(過去ログ 10 を表示中)

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

■1993 / inTopicNo.1)  文字列の配列への格納について
  
□投稿者/ えの (12回)-(2007/03/12(Mon) 21:38:56)

分類:[VB.NET (Windows)] 

失礼いたします。.NETで文字列を配列に格納したいのですが、スペースと改行の両方を区切り文字として指定し、格納を試みましたが、
改行は区別してくれませんでした。処理としては、
1 2
3 4
5 6
のようなデータを1, 2, 3, 4, 5, 6と各配列に格納したいのですが…
どなたかご教授のほどお願いします。
引用返信 編集キー/
■1994 / inTopicNo.2)  Re[1]: 文字列の配列への格納について
□投稿者/ 魔界の仮面弁士 (256回)-(2007/03/12(Mon) 22:03:41)
No1993 (えの さん) に返信
> スペースと改行の両方を区切り文字として指定し、

(2次元配列ではなく)1次元配列で良いのでしょうか?

Cr 改行や Lf 改行なのであれば、
 Dim S As String = "1 2" & vbCr & "3 4"
 Dim x() As String = S.Split(vbCr, " "c)
で処理し、CrLf 改行なのであれば、
 Dim S As String = "1 2" & vbCrLf & "3 4"
 Dim x() As String = S.Replace(vbCrLf, " ").Split()
という感じでは如何でしょう。
引用返信 編集キー/
■1995 / inTopicNo.3)  Re[1]: 文字列の配列への格納について
□投稿者/ επιστημη (434回)-(2007/03/12(Mon) 22:18:00)
επιστημη さんの Web サイト
2007/03/12(Mon) 22:19:01 編集(投稿者)
' テキストファイルから読み出すサンプル。
' 鵜呑みにするべからず。

Module Program

    Sub Main()
        Dim reader As New System.IO.StreamReader("data.txt")
        Dim buffer As String = reader.ReadLine()
        Dim data(32) As Integer
        Dim size As Integer = 0
        Dim i As Integer
        Do Until IsNothing(buffer)
            For Each token As String In buffer.Split(" ")
                data(size) = Integer.Parse(token)
                size = size + 1
            Next
            buffer = reader.ReadLine()
        Loop
        reader.Close()
        For i = 0 To size - 1
            System.Console.WriteLine(data(i))
        Next
    End Sub

End Module

引用返信 編集キー/
■2002 / inTopicNo.4)  Re[2]: 文字列の配列への格納について
□投稿者/ えの (13回)-(2007/03/13(Tue) 06:44:56)
ありがとうございます。なんとか文字列をスペースと改行区切りで配列に格納できました。
しかし、格納後の処理について「String型文字列を数値として扱えない」という問題が生じました。
String型配列Xを
CSng(x)
と浮動小数点型に変換し、計算させようとしましたが、「キャストが有効でありません」と言われました。
なんとか計算させたいのですが、正しい記述もしくは方法をお教え願いませんでしょうか?


引用返信 編集キー/
■2003 / inTopicNo.5)  Re[3]: 文字列の配列への格納について
□投稿者/ Kazuki (5回)-(2007/03/13(Tue) 06:56:13)
Int32.Parseなどで変換しないと文字列はいつまでも文字列です

引用返信 編集キー/
■2004 / inTopicNo.6)  Re[3]: 文字列の配列への格納について
□投稿者/ επιστημη (436回)-(2007/03/13(Tue) 07:03:45)
επιστημη さんの Web サイト
> String型配列Xを
> CSng(x)
> と浮動小数点型に変換し、計算させようとしましたが、「キャストが有効でありません」と言われました。

当然です。CSngに与えるのは配列ではありません。
# マニュアルを読んでいますか?

Module Program

    Sub Main()
        Dim data(2) As String
        Dim value As Single
        data(0) = "12.3"
        data(1) = "23.4"
        data(2) = "34.5"
        For Each item As String In data
            value = CSng(item)
            System.Console.WriteLine(value)
        Next
    End Sub

End Module

引用返信 編集キー/
■2006 / inTopicNo.7)  Re[4]: 文字列の配列への格納について
□投稿者/ えの (14回)-(2007/03/13(Tue) 07:29:14)
2007/03/13(Tue) 08:02:06 編集(投稿者)
2007/03/13(Tue) 08:02:04 編集(投稿者)

たびたび失礼します。どうにかSingle型の配列に格納することができました。
ほんとうにありがとうございました。
解決済み
引用返信 編集キー/
■2009 / inTopicNo.8)  Re[5]: 文字列の配列への格納について
□投稿者/ επιστημη (437回)-(2007/03/13(Tue) 09:34:53)
επιστημη さんの Web サイト
Single配列に変換したかったんだ。ならば:

Module Program

    Sub Main()
        Dim input(2) As String
        Dim output() As Single
        input(0) = "12.3"
        input(1) = "23.4"
        input(2) = "34.5"
        output = System.Array.ConvertAll(Of String,Single)(input, AddressOf Single.Parse)
        For Each value As Single In output
            System.Console.WriteLine(value)
        Next
    End Sub

End Module

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -