C#第二个文本框填写随机名称

时间:2016-12-16 04:46:25

标签: c#

这是我的代码,我在下面的链接中还有一个片段,表示我的程序在运行时的样子。我的问题是第二个文本框,并填写随机乱码。我的第一个文本框工作正常,它是从我的文本文件中选择一个随机的名字并将其放入文本框中。我不明白我的第二个文本文件是不是做了同样的事情?

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

中获得随机数的输出

enter image description here

3 个答案:

答案 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}是占位符

如果文件不存在,它将为给定路径创建一个新文件,如果该文件已经存在,那么它将向该文件添加新条目。