私は C# を学ぼうとしているので、チュートリアルを見て、順を追って説明していますが、チュートリアルで行うプログラムにいくつかの小さなことを追加することも好きです。今回は、ファイル ストリーミングに関する新しいボストン C# チュートリアルを見ていました。バイトと通常のテキストの両方を読み取ることができるテキスト読み取りプログラムを作成したいので、3 つのボタンを作成しました。ファイルダイアログを開いていますが、そのオプションを選択するとバイトリーダーに問題が発生し、ゼロのみが表示されます。
これは私のプログラムがどのように見えるかです
これは私のテキストファイルがどのように見えるかです
これは、バイトオプションを選択したときに私の結果がどのように見えるかです
これは私のコードです
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;
using System.IO;
namespace sound
{
public partial class Form1 : Form
{
bool bytebuttonclicked = false;
bool normalbuttonclicked = false;
string text1;
public Form1()
{
InitializeComponent();
}
SoundPlayer My_JukeBox = new SoundPlayer(@"C:\WINDOWS\Media\tada.wav");
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog OFD = new OpenFileDialog();
if (OFD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
StreamReader sr = new StreamReader(File.OpenRead(OFD.FileName));
if (normalbuttonclicked == true && bytebuttonclicked == false)
{
textBox1.Text = sr.ReadToEnd();
sr.Dispose();
}
else if (bytebuttonclicked == true && normalbuttonclicked == false)
{
text1 = sr.ReadToEnd();
byte[] Buffer = new byte[text1.Length];
sr.BaseStream.Read(Buffer, 0, text1.Length);
foreach (byte MyByte in Buffer)
textBox1.Text += MyByte.ToString("X") + " ";
sr.Dispose();
}
else
{
MessageBox.Show("choose one button");
}
}
My_JukeBox.Play();
}
private void button2_Click(object sender, EventArgs e)
{
bytebuttonclicked = true;
button1.Enabled = true;
}
private void button3_Click(object sender, EventArgs e)
{
normalbuttonclicked = true;
button1.Enabled = true;
}
}
}
プログラムがゼロを表示する理由がわかりません。プログラムの何が問題なのか、どうすれば改善できますか? ありがとうございました。