将读取流读取到特定字符

本文关键字:读取 字符 | 更新日期: 2023-09-27 18:36:17

我需要读取包含以下内容的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"隐式转换为"字符串" C:''Users''user''documents''visual Studio 2012''Projects''WindowsFormsApplication1''WindowsFormsApplication1''Form1.cs 23 35 WindowsFormsApplication1

任何人都可以建议一些东西或指出我捕获包含上述 1000 个示例的 ips 表单文本文件的最佳方法吗?

将读取流读取到特定字符

我认为你的第一行是错误的。

var x = office_list.ToString();

office_list类型是流阅读器吗?

尝试

var x = office_list.ReadLine();
string [] cur_office = Regex.Split(x, ";");
           foreach(string x in cur_office)
        {
            Current_Office.Text = x;
        }

您可以通过以下方式获取所有 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
    }
}