我需要读取包含以下内容的txt文件 123123; 192.168.1.1; 321321; 192.168.2.1; 我想将文本读取到特定字符,例如“;” 并将其分配给变量和标签,或在代码中使用它
经过长时间的搜索......
第一种方式
StreamReader office_list = new StreamReader(@"c:\office_list.txt");
var x = office_list.ToString();
var y = Regex.Match(x, @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b");
Current_Office.Text = y.Value;
但是没有返回任何内容..而我找到的第二种方式
string [] cur_office = Regex.Split(office_list.ToString(), ";");
foreach(string x in cur_office)
{
Current_Office.Text = x;
}
但是返回System.IO.StreamReader ......第三种方式如下
Current_Office.Text = Regex.Match(office_list.ToString(), @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b");
错误是 错误1无法将类型'System.Text.RegularExpressions.Match'隐式转换为'string'C:\ Users \ user \ documents \ visual studio 2012 \ Projects \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ Form1.cs 23 35 WindowsFormsApplication1
任何人都可以提出建议,或者指出我最好的方法来捕获包含上述示例1000的ips表单文本文件吗?
答案 0 :(得分:2)
我认为你的第一行是错误的。
var x = office_list.ToString();
是StreamReader类型的office_list吗?
试
var x = office_list.ReadLine();
string [] cur_office = Regex.Split(x, ";");
foreach(string x in cur_office)
{
Current_Office.Text = x;
}
答案 1 :(得分:0)
您可以通过以下方式获取所有IP地址的列表:
using (var stream = new StreamReader(@"your path here"))
{
var ipAddresses = stream
.ReadToEnd()
.Split(';')
.Select(ip => ip.Trim()); // not sure if this one is needed, you can try without
foreach (var ip in ipAddresses)
{
// do what you will with the ips
}
}