尝试从文本文件输入字符串时被卡住

  • 本文关键字:字符串 文本 文件 c#
  • 更新时间 :
  • 英文 :


我正在创建一个程序,该程序允许您解析文本文件中的用户名和密码,然后在数据库中运行它们,以返回用户名、姓氏和部门名称。我已经得到了一个逐行解析文本文件的程序,我已经创建了一个if-else语句来检查该行是否包含"[电子邮件]"或"[密码]"。我想做的是,如果行中包含其中一行,则将整行复制到我可以使用的字符串中。这是我迄今为止的代码,我承认这不是最好的,因为我还在学习。

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.Data.SqlClient;
using System.Configuration;
using System.IO;
using System.Windows.Forms;
namespace trevorsenior
{
    public partial class Form1 : Form
    {
        SqlConnection connection;
        string connectionString;
        public Form1()
        {
            InitializeComponent();
        connectionString = ConfigurationManager.ConnectionStrings["trevorsenior.Properties.Settings.trevordatabaseConnectionString"].ConnectionString;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    }
    private void parsetextfile()
    {
        string filepath = string.Format(textBox1.Text);
        int count = 0;
        int sum = 0;
        foreach (var line in File.ReadAllLines(filepath))
        {
            if (line.Contains("[email]")||line.Contains("[password]"))
            {
                string email2="msue0001";
                string password2;
                password2 = "msuepassword";
                populateusername(email2, password2);
                count++;
            }
            else
            {
                sum++;
            }
        }
        if (sum>0&&count==0)
        {
            MessageBox.Show("There are no usernames or passwords in this file");
        }
    }
    private void populateusername(string email2, string password2)
    {
        string usernamein = email2;
        string passwordin = password2;
        string query = string.Format("SELECT * FROM [Table] WHERE username='" + usernamein + "' AND password='" + passwordin + "'");
        using (connection = new SqlConnection(connectionString))
        using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
        {
            DataTable userstable = new DataTable();
            adapter.Fill(userstable);
            lister.DisplayMember = "firstname";
            lister.ValueMember = "userId";
            lister.DataSource = userstable;
        }
        using (connection = new SqlConnection(connectionString))
        using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
        {
            DataTable userstable = new DataTable();
            adapter.Fill(userstable);
            lister2.DisplayMember = "lastname";
            lister2.ValueMember = "userId";
            lister2.DataSource = userstable;
        }
        using (connection = new SqlConnection(connectionString))
        using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
        {
            DataTable userstable = new DataTable();
            adapter.Fill(userstable);
            lister3.DisplayMember = "deptname";
            lister3.ValueMember = "userId";
            lister3.DataSource = userstable;
        }
    }
    private void lister_SelectedIndexChanged(object sender, EventArgs e)
    {
    }
    private void button1_Click(object sender, EventArgs e)
    {
        //populateusername();
        parsetextfile();
    }
    private void browse_Click(object sender, EventArgs e)
    {
        OpenFileDialog fdlg = new OpenFileDialog();
        fdlg.Title = "Open Phishing Textfile";
        fdlg.InitialDirectory = @"c:";
        fdlg.Filter = "TXT files| *.txt";
        fdlg.FilterIndex = 2;
        fdlg.RestoreDirectory = true;
        if (fdlg.ShowDialog() == DialogResult.OK)
        {
            textBox1.Text = fdlg.FileName;
        }
    }
}

这是我试图解析的文本文件:

Array
(
[lsd] => AVp4gWh_
[display] => 
[enable_profile_selector] => 
[isprivate] => 
[legacy_return] => 1
[profile_selector_ids] => 
[skip_api_login] => 
[signed_next] => 
[trynum] => 1
[timezone] => 240
[lgndim] => eyJ3IjoxMDI0LCJoIjo3NjgsImF3IjoxMDI0LCJhaCI6NzQxLCJjIjoyNH0=
[lgnrnd] => 170514_OoLu
[lgnjs] => 1460333318
[email] => jsmith0001
[pass] => jpassword
[persistent] => 
[default_persistent] => 1
[qsstamp] => W1tbMCwxNiwyOCwzMSw4MSw4OCw5MSw5NiwxMDAsMTUzLDE3MCwxOTAsMTk1LDIxNywyNDIsMjQ3LDI4OCwzMDgsMzE1LDMyNSwzMzUsMzY0LDM4MiwzODQsMzg1LDQxNSw0MzUsNDQ2LDQ2NSw0NzUsNDkzLDUwMSw1MjcsNTM3LDU0Miw1NTgsNTYxLDU3NSw1ODMsNjM0LDY0Myw3MzFdXSwiQVpsSTJqeGJ3Ul9RLXZzSEtYNk5EVE80LVNOdUhMOE1PbzdUeDJ2MWV6THc0dE11Wk5NOFNSMzEtZUJ2dnUya0tlNGpKdm9sVENmV0ZXRUx0YmtKZmlzSHRudUdMd201MFkwNm5oMFplb295OXZBa25JXzJZVnNxZDlZTE5SMUhEeVhtQkJyaXF2VlFaWElTNlVfZ3lwRlVnX2huSFhXWXlFZEQ5YUZabTMxaHg5NDBqOWE1d0d0TTFFQlNLQ0NTM3lYVVlSQl9rTjVLN0ZqOFdRUmxPa3hQazJoMC1mNkpyX0FrdXBSZzB5YmpOQSJd
)

Array
(
[lsd] => AVp4gWh_
[display] => 
[enable_profile_selector] => 
[isprivate] => 
[legacy_return] => 1
[profile_selector_ids] => 
[skip_api_login] => 
[signed_next] => 
[trynum] => 1
[timezone] => 240
[lgndim] => eyJ3IjoxMDI0LCJoIjo3NjgsImF3IjoxMDI0LCJhaCI6NzQxLCJjIjoyNH0=
[lgnrnd] => 170514_OoLu
[lgnjs] => 1460333337
[email] => msue0001
[pass] => mspassword
[persistent] => 
[default_persistent] => 1
[qsstamp] => W1tbMCwxNiwyOCwzMSw4MSw4OCw5MSw5NiwxMDAsMTUzLDE3MCwxOTAsMTk1LDIxNywyNDIsMjQ3LDI4OCwzMDgsMzE1LDMyNSwzMzUsMzY0LDM4MiwzODQsMzg1LDQxNSw0MzUsNDQ2LDQ2NSw0NzUsNDkzLDUwMSw1MjcsNTM3LDU0Miw1NTgsNTYxLDU3NSw1ODMsNjM0LDY0Myw3MzFdXSwiQVpsSTJqeGJ3Ul9RLXZzSEtYNk5EVE80LVNOdUhMOE1PbzdUeDJ2MWV6THc0dE11Wk5NOFNSMzEtZUJ2dnUya0tlNGpKdm9sVENmV0ZXRUx0YmtKZmlzSHRudUdMd201MFkwNm5oMFplb295OXZBa25JXzJZVnNxZDlZTE5SMUhEeVhtQkJyaXF2VlFaWElTNlVfZ3lwRlVnX2huSFhXWXlFZEQ5YUZabTMxaHg5NDBqOWE1d0d0TTFFQlNLQ0NTM3lYVVlSQl9rTjVLN0ZqOFdRUmxPa3hQazJoMC1mNkpyX0FrdXBSZzB5YmpOQSJd
)

有人知道这能不能做到吗?如果我说得不太明白,我很抱歉,我对c#还很陌生

据我所知,您已经完成了目标。File.ReadAllLines返回一个字符串数组,每行一个字符串。因此,在代码的这一点上。。。

        foreach (var line in File.ReadAllLines(filepath))
        {
            if (line.Contains("[email]") || line.Contains("[password]"))
            {
                // ** RIGHT HERE, BABY **

line正是您想要的:一个字符串,包含文件中要"处理"的整行内容。

最新更新