//在引用里添加
using
System.IO;
///窗体应用类中写方法
//写入
StreamWriter sw=
new
StreamWriter(TXT文件完整路径);
sw.WriterLine(你要写入的内容,可以换行带格式);
sw.Flush();
//文件流
sw.Close();
//最后要关闭写入状态
//读取
System.IO.StreamReader st;
st=
new
System.IO.StreamReader(TXT文件完整路径,System.Text.Encoding.UTF8);
//UTF-8通用编码
string
要读取的字符串=st.ReadToEnd();
st.Close();
问题:
有两个按钮,按钮一将textbox中数据保存到txt文本中,按钮2从文本读取数据到textbox.如果是一个两个,这个我 会。现在的问题是两组textbox,分别是textbox1~10,textbox11~20.i=1~10,i随机。比如当I=5时,就保存text1~5, text11~15的数据。读取时也是相应的读取。求大师,能调试成功的加分。保存到D:/123.txt.答案:
你提取的数据可以用一个二维数组保存,str[2,10]。另外通过循环 i 来获取和设置文本框中的内容,具体代码如下:
首先你要读写文件,就要引用:
using System.IO; |
你上文说的i,我写成全局变量,你可以在需要的代码中修改:
int count = 3; |
按钮一,即从文本框中获取值并写入到文件的代码:
private void button1_Click( object sender, EventArgs e) {
string [,] str = new string [2, count];
StreamWriter sw = File.CreateText( "D:\\123.txt" );
for ( int i = 0; i < count; i++)
{
string controlName1 = string .Format( "textBox{0}" ,i+1);
string controlName2 = string .Format( "textBox1{0}" , i+1);
str[0,i] = (Controls.Find(controlName1, false )[0]).Text;
str[1,i] = (Controls.Find(controlName2, false )[0]).Text;
sw.WriteLine(str[0,i]);
sw.WriteLine(str[1,i]);
}
sw.Close(); } |
按钮二,从文件中读取数据然后赋值到文本框中的代码:
private void button2_Click( object sender, EventArgs e) {
string [,] str = new string [2, count];
StreamReader sr = File.OpenText( "D:\\123.txt" );
int k = 0; //当前读取的是第几行
while (sr.Peek() != -1)
{
str[k % 2, k / 2] = sr.ReadLine();
k++;
}
for ( int i = 1; i <= count; i++)
{
string controlName1 = string .Format( "textBox{0}" , i );
string controlName2 = string .Format( "textBox1{0}" , i );
(Controls.Find(controlName1, false )[0]).Text = str[0, i-1];
(Controls.Find(controlName2, false )[0]).Text = str[1, i-1];
}
sr.Close(); } |
你按上面代码写试试,应该可以实现,我自己试验过的。
另外Controls.Find()函数可以获取指定ID名称的控件,这样通过与循环组合就可以实现你功能。
意思信息希望对你有帮助^^