簡體   English   中英

從文本文件中檢索數據

[英]Retrieve the data from Text File

我有一個小項目。 我正在做的是,從用戶那里獲取輸入並將其保存在文本文件中。 它的工作很好。

private void btbsave_Click(object sender, EventArgs e)
{
    //Create Directory
    DirectoryInfo dd = new DirectoryInfo("C://Program Files/UserInfo");
    dd.Create();
    //To save the inputs
    StreamWriter sw = new StreamWriter("C://Program Files/UserInfo/UserInfo.txt", true);
    sw.WriteLine(txtname.Text);
    sw.WriteLine(txtage.Text);
    sw.Flush();
    sw.Close();
    //Conformation
    MessageBox.Show("Credentials Saved");
    //To Clear the text box after data saved
    txtname.Text = string.Empty;
    txtage.Text = string.Empty;
    //Focus
    txturl.Focus();
}

現在,我想根據輸入來檢索數據。 這部分對我來說很難,你們可以幫我嗎?

private void btnsearch_Click(object sender, EventArgs e)
{
     StreamReader sr = new StreamReader("C://Program Files/UserInfo/UserInfo.txt");
     String mystring = sr.ReadToEnd();
     //No idea how to retrive now plz help!
}

我的項目的簡要說明:從UserNameAge用戶那里獲取一些值。 將它們保存在文本文件中。

我需要基於用戶UserName檢索值。 然后,我應該獲取UserName及其年齡 ,並將這些值插入2個不同的只讀文本框中。

我個人建議您重新考慮您的方法,但以下是您要尋找的內容:

    string sUserToSearch = "username";
    string sAgeToSearch = "22";

    string[] readText = File.ReadAllLines("UserInfo.txt");
    for (int i = 0; i < readText.count-2; i++) {
         if(readText[i] == sUserToSearch && readText[i+1] == sAgeToSearch);
             // Found it!
    }

我不知道您要執行的操作,但是如果我答對了,您應該閱讀有關序列化的更多信息。

首先,您必須同時分離數據,然后將其插入文本文件

private void WriteUserToFile(User user, string path)
{
    using(var sw = new StreamWriter(path, true))
    {
        sw.WriteLine(user.Name + ";" + user.Age);
    }
}

現在您有一個像這樣的文件:

User1;10
User2;20
User3;45

現在,您可以拆分數據了:

private IEnumerable<User> ReadUsersFromTextFile(string path)
{
    var users = new List<User>();

    using(var sr = new StringReader(path)
    {
        do
        {
            var strings = sr.ReadLine().split(';');                 
            var user = new User();
            user.Name = strings[0];
            user.Age = strings[1];
            users.Add(user);
        }while(!sr.EndOfStream)
    }

    return users;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM