2015-11-26 3 views
-1

Учитывая текстовый файл, который содержит регистрационные данные, такие как базы данных:C# Чтение строки в файл

[ID] [Uname] [PW] [Email] 
0  Aron asd  [email protected] 
1  Aron2 asdd [email protected] 

У меня есть имя пользователя и ввод пароля. Как бы я прочитал только эту строку в этом текстовом файле, где указаны мои uname.Text и password.Text?

+0

Это местный тест? Потому что, если что-то подобное используется в любой производственной среде, то наличие текстового файла с плоскими текстовыми паролями довольно плохо. –

+0

Да, это локальный тест. И также я хочу попробовать создать локальную базу данных, которая будет интегрирована в исполняемом файле. :) – Aaron

+0

Проанализируйте первую строку файла, чтобы проверить имена столбцов, затем извлеките каждую строку и разделите ее на символы пробела, а затем сопоставьтесь со своим входом для входа или с регулярным выражением – Neijwiert

ответ

0

Я согласен со всем выше замечанием. С гипотезой о том, что файл не является огромным, вы можете просто загрузить все это в памяти и работать на нем:

Вот .NET fiddler, который показывает это.

+0

Вау, я не ожидал, что это возможно. Благодарю. – Aaron

0

Попробуйте это:

var username = "Aron2"; 
var password = "asdd"; 
List<string> matchedValues; // Contains field values of matched line. 
var lines = File.ReadLines("input.txt"); 

foreach (string l in lines) 
{ 
    var values = l.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList(); 

    if (values.Contains(username) && values.Contains(password)) 
    { 
     matchedValues = values; 
     break; // Matching line found. No need to loop further. 
    } 
} 

Пожалуйста, примите авансовый голос, потому что вы не пытались что-либо или, по крайней мере, ваше сообщение не показывает никаких усилий.

+0

Спасибо, возможно, это тоже работает, но я решил свою проблему, как писал Кевин. :)) – Aaron

0

Если кто-то есть эта проблема тоже, это мое решить:

int check=0; 
if (txt_uname.Text != "") 
      { 
       check = 0; 
       System.IO.StreamReader file = new System.IO.StreamReader(path); 
       string[] columnnames = file.ReadLine().Split('\t'); 
       string newline; 
       while ((newline=file.ReadLine()) != null) 
       { 
        string[] values = newline.Split('\t'); 
        if (check== 0){ 
         for (int i = 0; i < values.Length; i++) 
         { 
          if (txt_uname.Text == values[i] && txt_pw.Text == values[i + 1]) 
          { 
           Console.WriteLine("User found"); 
           check= 1; 
           break; 

          } 
          else 
          { 
           Console.WriteLine("User isn't exists"); 

          } 
         } 


        } 

       } 
Смежные вопросы