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

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

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

Re[1]: MID関数でのレコード表示


(過去ログ 120 を表示中)

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

■72157 / inTopicNo.1)  MID関数でのレコード表示
  
□投稿者/ グリム (1回)-(2014/05/21(Wed) 17:54:46)

分類:[.NET 全般] 

2014/05/21(Wed) 17:58:13 編集(投稿者)

レコードにデータがあり、
それをMID関数を用いて表示させるプログラムを作っています。


項目ごとにTextBoxを作りまして
個々のTextBoxに出力をしたいです。

ループ処理でスムーズに行いたいです。



Public Class Form1


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim No As String
Dim namae As String


No = Mid(No, 1, 3)
namae = Mid(namae, 4, 10)


No = "001"
namae = "あああ"


TextBox1.Text = No
TextBox2.Text = namae

End Sub
End Class


まだループ処理せず、ただ表示させる所までで滞ってます。


No. 3バイト
名前 10バイト

1つのレコード13バイトで試しに作る所なのですが、
レコードは13で固定です。

この場合も構造体の宣言は必要なのでしょうか。


変数に代入してループで出すやり方が分かりません。

出来たら noと名前を連結させて
一つのレコードの変数にまとめて入れたいです。

正式なコードではありませんが、例えますと
Record1 = TextBox1 : TextBox2

個々の情報を連結して新たな変数にまとめ、
Textに出すときは別々でというのは出来ますか?


Record1に入ってる情報 001 あああ の二つ

TextBox1 に 001
TextBox2 に あああ

という形です。
</pre></pre>
引用返信 編集キー/
■72170 / inTopicNo.2)  Re[1]: MID関数でのレコード表示
□投稿者/ shu (571回)-(2014/05/22(Thu) 17:07:22)
No72157 (グリム さん) に返信

> No. 3バイト
> 名前 10バイト
> 
> 1つのレコード13バイトで試しに作る所なのですが、
> レコードは13で固定です。

001AAAAAAAAAA002BBBBBBBBBB003あいうえお

のような感じにデータがはいっているのでしょうか?



> 
> この場合も構造体の宣言は必要なのでしょうか。
> 
> 
> 変数に代入してループで出すやり方が分かりません。
> 
> 出来たら noと名前を連結させて
> 一つのレコードの変数にまとめて入れたいです。
> 
> 正式なコードではありませんが、例えますと
> Record1 = TextBox1 : TextBox2
> 
> 個々の情報を連結して新たな変数にまとめ、
> Textに出すときは別々でというのは出来ますか?
> 
> 
> Record1に入ってる情報 001 あああ の二つ
> 
> TextBox1 に 001
> TextBox2 に あああ
> 
構造体でもクラスでも良いですが何らかのデータを纏めて
扱える型は作った方がよいかもしれません。DataTableを使用するという方法もあります。


一例です。
        'サンプルデータの文字列形式
        Dim Data = "001AAAAAAAAAA002BBBBBBBBBB003あいうえお"
        'シフトJISエンコード用
        Dim SJIS = Encoding.GetEncoding("Shift_Jis")
        '実際に格納されているバイト列の作成
        Dim bytData = SJIS.GetBytes(Data)

        'ストリームを開く(ファイルから開くときはファイル用のストリームを使用)
        Dim m As New MemoryStream(bytData)
        'バイト列を読むためのもの
        Dim rd As New BinaryReader(m)
        'ストリームの最後までループ
        Do While rd.PeekChar > 0
            '1レコード分のバイト数を一気に読み込む
            Dim RecBytes = rd.ReadBytes(13)
            '各項目毎に文字列を取得
            Dim No = SJIS.GetString(RecBytes, 0, 3)
            Dim Name = SJIS.GetString(RecBytes, 3, 10)
            'とりあえずConsoleに表示(ここで作成した構造体とかクラスの配列とかリストにデータを追加)
            Console.WriteLine("{0}:{1}", No, Name)
        Loop
        rd.Close()




引用返信 編集キー/
■72176 / inTopicNo.3)  Re[1]: MID関数でのレコード表示
□投稿者/ Jitta (146回)-(2014/05/22(Thu) 22:36:56)
No72157 (グリム さん) に返信

 何を尋ねたいのか、いまいちわかりません。

1.13レコードあるデータを、ループを使って順次表示したいのでしょうか。
2.順次ではなく、全レコード表示したいのでしょうか。
3.バイト数固定のレコードから Mid 関数を使ってデータを抜き出したいのだけれど、その処理をループで行いたいのでしょうか。
4,1と3、または、2と3の両方なのでしょうか。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -