大家好,我是一个初级的SQL开发人员。我有一个包含1100行搜索结果的文本文件,每行包含一个文件路径和一个与该文件相关联的存储过程。每一行都有如下所示的结构:
abc\def\ghi\***.cs(40): jkl=******.*****.******, "proc_pqrst", parms);其中,abc\def\ghi\***.cs是文件***.cs的文件路径。存储过程名称以proc_开头。我必须提取以proc_开头的***.cs和相应的存储过程名称,并将它们写入一个.xls文件。有人能帮我写一个解析程序来做这件事吗?另外,我可以得到一个详细的大纲,我应该在哪里编写c#代码,我应该在哪里编译它?这可能是一个很大的帮助,因为我对C#一无所知。
谢谢,BK。
发布于 2010-04-23 05:21:44
这听起来可能很愚蠢,但更好的选择可能是将原始CSV导入Excel,然后编写一个宏来执行提取。与C#、Visual Studio等相比,这可能是一条更温和的学习曲线。
发布于 2010-04-23 05:24:18
至于解析,您可以使用正则表达式,如下所示:
^(.*?\.cs).*"(proc_[A-Za-z0-9]*?)".*$(顺便说一句,我没有测试它,所以它可能无法工作)
在导出到XLS文件方面,这有点困难。如果你打算在安装了Excel的Windows计算机上运行它,那么我相信你可以使用COM让Excel为你做这件事,否则,你将不得不: 1.实现XLS文件格式(困难),2.购买XLS文件格式的实现(昂贵),或者3.做一些其他的事情,比如自动化OpenOffice或其他什么。
发布于 2010-04-23 09:16:47
如果您绝对需要xls文件(而不仅仅是csv),FileHelpers库使编写xls文件变得很容易。
FileHelpers采用强类型的类,并将其编写为csv或xls,或者可以直接连接到SQL server并将记录保存在那里。
基本上,你会有类似这样的东西:
public class Record {
public string filename;
public string storedProc;
}您可以使用Robert Harvey的代码或正则表达式来提取路径和过程名称,创建一个新的Record,然后将它们放入新对象中。
Record r = new Record();
r.filename = myString.Substring(0, myString.IndexOf(".cs"),3);
r.storedProc= myString.Substring(myString.IndexOf("proc_")).Substring(0, temp.IndexOf('\"')); 然后,您可以使用ExcelStorage类保存该文件。
https://stackoverflow.com/questions/2694561
复制相似问题