这是我的代码,我在下面的链接中还有一个片段,表示我的程序在运行时的样子。我的问题是第二个文本框,并填写随机乱码。我的第一个文本框工作正常,它是从我的文本文件中选择一个随机的名字并将其放入文本框中。我不明白我的第二个文本文件是不是做了同样的事情?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
{
Random r = new Random();
int currentLinefirst = 1;
string pick = null;
foreach (string line in File.ReadLines("C:\\Users\\Admin\\Desktop\\C# Programs\\WindowsFormsApplication5\\WindowsFormsApplication5\\First Names.txt"))
{
if (r.Next(currentLinefirst) == 0)
{
pick = line;
}
++currentLinefirst;
}
textBox1.Text = pick;
}
Random n = new Random();
int currentLinelast = 1;
string pick2 = null;
foreach (string line1 in File.ReadLines("C:\\Users\\Admin\\Desktop\\C# Programs\\WindowsFormsApplication5\\WindowsFormsApplication5\\Last Names.txt"))
{
if (n.Next(currentLinelast) == 0)
{
pick2 = line1;
}
++currentLinelast;
}
textBox2.Text = pick2;
}
}
}
我在textbox
中获得随机数的输出答案 0 :(得分:1)
可能是因为您的第二个文件包含多个名称的行。当您调用File.ReadLines时,它将在每行返回一个字符串数组
尝试用换行符分隔您的姓氏。
答案 1 :(得分:0)
你可以试试这个:
string firstname = textBox1.Text;
string lastname = textBox2.Text;
Byte[] info = new UTF8Encoding(true).GetBytes(firstname + lastname);
string FilePath = yourpath + DateTime.Now.ToString("dd-MMM-yyyy") + ".txt";
using (FileStream fs = File.Create(FilePath))
{fs.Write(info, 0, info.Length);}
答案 2 :(得分:0)
要将文本保存到文本文件,请使用
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(@"C:\Users\Admin\Desktop\test.txt", true))
{
file.WriteLine("First Name: {0} Last Name: {1}", textBox1.Text, textBox2.Text);
}
{0}
和{1}
是占位符
如果文件不存在,它将为给定路径创建一个新文件,如果该文件已经存在,那么它将向该文件添加新条目。