2 zjamal zjamal 于 2016.05.10 14:52 提问

C#读取指定路径的file文档,查找指定字符串并获取该字符串旁边的指定字符串

文件路径是\abc.com.hk\TraceFiles\。
手动输入文件名BCEG698121和80,83(组成字符串为80;83;)图片说明
在文件路径里有两个名称是BCEG698121的文件但只有一个含有80;83;的字符串,图片说明
找到80;83;所在的行后获取这两个字符串D174287W23和40;23;图片说明
现在对我难点是名称包含BCEG698121的file文件有两个怎么遍历,如何找到80;83所在行,并获取其他两个字符串,求大神把实现的代码写出来,新手求指导。

3个回答

showbo
showbo   Ds   Rxr 2016.05.10 15:28
已采纳
         string[] fns = Directory.GetFiles(@"文件夹路径,注意修改这里", "BCEG698121*");//获取BCEG698121开头的文件
        string text,keyword="80;83;";
        Regex rx = new Regex("([^;]+);[^;]+;" + keyword + @"([^;]+);([^;]+)");
        Match m;
        foreach (string fn in fns)
        {
            text = File.ReadAllText(fn, Encoding.GetEncoding(936));//注意如果文件不是ansi(国内一般对应gb2312编码)存储修改下编码,要不会出乱码。如果文件存储为utf-8,修改编码为Encoding.UTF8

            if (rx.IsMatch(text))
            {
                m = rx.Match(text);
                if (m.Groups.Count > 0) MessageBox.Show(m.Groups[1].Value + "\n" + m.Groups[2].Value + "\n" + m.Groups[3].Value);
            }
        }
showbo
showbo 回复浅诺回忆: @要不要没关系。。之前忘记去掉最后一个的了。。@了,因为看你格式后面2个数据是数字的,所以用了\d正则,用@就不用写成\\d了
大约 2 年之前 回复
zjamal
zjamal 第三行应该是new Regex(@"([^;]+);[^;]+;" 少了@
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.05.10 15:03

在指定路径中查找指定字符串
android把字符串内容保存到指定路径
在指定路径或者是文件名查找指定的字符串
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

linshuhe1
linshuhe1   2016.05.10 15:11

用换行符分隔每一行数据为一个字符串,通过string.Contains("目标字符串")定位数据在哪一行,再用IndexOf("目标字符串")定位目标子串的指针位置

zjamal
zjamal 能不能写一些关键性的代码,看见方法不太会用
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在TXT文件中查找指定字符串并显示指定字符串所在行的内容
var    F: TextFile;   S: string; begin   if OpenDialog1.Execute then    //如果选择文件名成功   begin     AssignFile(F, OpenDialog1.FileName);      Reset(F);     While not Eof(F) do          //文件未到末尾
C#实现读取字符串特定字符位置后面的数据
C#实现读取字符串特定位置数据     这里将给大家介绍怎么实现C#采用正则表达方式读取某段字符串中指定位置后面的数据内容,某种程度上可替代数据库的功能。 private void button1_Click(object sender, EventArgs e) { string _buff = "a=55 b=3 c
C#字符串中获取指定行的方法
例: 字符串在文本中的显示:换行(\r\n)空行(\r\n\r\n) abcdefg hyjklmn ********** shaslkdfjhsldkfsldkfs ********** ( * )代表空行! 字符串必须不能用符号分隔来分别获取识别,因为字符串本身就很可能出现这些字符! 解决方案: 假设字符串 s 表示您
Python__查找替换指定文件中的特定字符串
#!/usr/bin/python #------------------------------------------------ #File : ctrl_hv2.0.py #Date : 2014/08/28 #By : LinJK #Version : Python 3.4.1 #Coding : UTF-8 #Note: # When user input
提取文件名中指定字符串 java实现
有这样格式的一些文件名:abcd.txt.20171221.gz    前面abcd可变的,后面都是一样。 现在需要做的是,将时间小于某指定时间的文件全部删除。这里的需求是 删除当前时间五天前的所有文件 五天前的时间这样表示: Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -5); Stri
c#StreamReader读取指定行的指定字符串
http://blog.csdn.net/Reyes11235813/article/details/5493331 问题: 在一个文件的自定行(LineNum)之后查找一个指定的字符串(queryString). 一下是我想到的两种办法和朋友的一种办法,希望看到这篇文章的大侠们也能提提建议。 现在的三中办法中算是第二种方法跑起来最高效了。一下是他们分别循环10,100,1000次的平均运
C++从文件中查找特定的字符串,并提取该字符串
记录一个小技巧,使用C++从文件中查找特定标记的字符串,并提取该字符串。 用到了CString的方法,十分的简单,用于数据分析很方便。 这是我截取的压缩编码试验程序中的代码,通过这段代码可以提取X264输出的SSIM值 FILE *fp_statfile=fopen("x264_output.txt","rb"); CString filecontent(""); //文件内容读入内存
c#在指定内容中通过正则查找字符
找到所有类似@xx:数字 的数据 string str = @"这是一个内容,@张三:123456。这里还是一个内容,@李四:111222。第三个内容,@王五:222333。"; Regex reg = new Regex(@"@\w+:\d{6}"); //定义正则表达式 MatchCollection mc = reg.
python实操(1):搜索指定目录(文件)下包含指定字符串的文件,及行号
#!/usr/bin/python # _*_ coding: UTF-8 _*_ # Filename : findString.py #author by :morespeech #python2.7import osimport reclass cFindString:####public functions def __init__(self, filepattern , txt
Unity中获取特定文件夹下文件名包含特定字符串的文件路径
平时在工作中有时可能会碰到想要获得自己项目文件夹下文件名中包含某个特定字符或字符串的文件及其路径,这时如果只是在Unity的Project栏中输入这个特定的字符串来查找的话,虽然可以找到这些文件,但要获取路径就只能手动打开每个文件所在的文件夹位置。作为一个程序员,这样做显然效率太低,不符合程序员的Geek风格,所以我想到利用Unity的Editor功能写一个小脚本来获取需要的文件路径,代码如下。