好的,所以我希望在我的c#表单上有几个文本框,然后当单击某个按钮时,它将获取每个文本框中的文本并将其转换为要写入文件的字节。 我知道如何做所有事情,但采取文本框'文本并将其转换为一个字节。有人可以帮忙吗? 文本框文本已经是十六进制形式,因此不必转换。
答案 0 :(得分:1)
对于给定的文本框:
byte data = byte.Parse(textBox1.Text, NumberStyles.AllowHexSpecifier);
第二个参数允许解析十六进制格式。当然;如果给定的值太大;你会遇到一些问题(它会抛出)。您可以随时使用TryParse
。
msDN for byte.TryParse:(MSDN)
NumberStyles枚举的MSDN:(MSDN)
答案 1 :(得分:0)
您可以将字节写为1和0到文本文件。
下面的示例假设您有一个名为textbox1的文本框,一个名为buttonRecord_Click的按钮单击事件,并且您在代码顶部包含了对System.IO命名空间的引用(使用System.IO;)。替换" PathOfYourTextFile.txt"与实际路径。
private void buttonRecordBytes_Click(object sender, EventArgs e)
{
// Break if textbox1 is empty.
if (string.IsNullOrEmpty(textbox1.Text))
return;
// Variables:
int charCount = textbox1.Text.Length;
byte[] bytes = new byte[charCount];
string[] byteStrings = new string[charCount];
// StreamWriter will write the bytes to the text file.
StreamWriter sw = new StreamWriter("PathOfYourTextFile.txt", true);
// Record each character byte in textfile.
int i = 0;
foreach (char c in textbox1.Text)
{
// ASCII:
try
{
bytes[i] = Convert.ToByte(c);
byteStrings[i] = Convert.ToString(bytes[i], 2).PadLeft(8, '0');
}
// UTF8:
catch
{
bytes[i] = Encoding.UTF8.GetBytes(c.ToString().ToCharArray())[i];
byteStrings[i] = Convert.ToString(bytes[i], 2).PadLeft(24, '0');
}
// Append character and bit info to textfile.
sw.WriteLine("Character \"" + c.ToString() + "\" bits as ones and zeros: " +
byteStrings[i]);
ListViewItem lvi = new ListViewItem(i.ToString());
lvi.SubItems.Add(c.ToString());
lvi.SubItems.Add(byteStrings[i]);
listviewBytes.Items.Add(lvi);
i++;
}
sw.Close();
}