我应该如何在VS中使用以下代码
本文关键字:代码 VS 我应该 | 更新日期: 2023-09-27 18:28:20
我们最近收到了一堆带有制表符的文件。
我们在sql server数据库中导入它们时遇到了困难。
发送文件的供应商还发送了下面的代码,供我们用于将文件从制表符转换为逗号分隔符。
如何在visual studio中使用此文件。
我以前使用过visualstudio好几次,但我并没有把它和这样的单个文件一起使用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace TabToComma
{
class Program
{
static void Main(string[] args)
{
StreamReader sr;
StreamWriter sw;
sr = new StreamReader(@"c:'input.txt");
sw = new StreamWriter(@"c:'output.txt");
string nextline;
string replacedline;
while (sr.Peek() >= 0)
{
nextline = sr.ReadLine();
replacedline = nextline.Replace(''t',','); // replace each tab in line with a comma
sw.WriteLine(replacedline);
}
sr.Close();
sw.Close();
}
}
}
或者,若有人知道我如何使用vbscript来完成同样的事情,请给我指明正确的方向。
提前感谢
创建一个控制台应用程序,并用上面的文本替换生成的程序.cs的内容。然后,点击RUN:)
您需要创建一个新的Console应用程序,然后将此代码粘贴到作为解决方案一部分创建的示例文件中。然后将"c:''input.txt"更改为要转换的文件,然后点击run。
此外,这里有一个Main()
内容的替代品,只要文件大小合适,它可能会让你的生活更轻松:
foreach(string f in args) {
System.IO.File.WriteAllText(f, System.IO.File.ReadAllText(f).Replace(''t', ','));
}
编译并将所有文件拖放到生成的可执行文件中。它们将自动转换。
您甚至可以从这里获取已编译的可执行文件:http://dl.dropbox.com/u/2463964/TabsToCommas.exe如果您在编译它时遇到问题。
好吧,用各种方法来替换字符串中的字符,这很好。但不幸的是,现实并没有那么容易。例如,如何处理带有逗号的数据?就像CCD_ 2变成CCD_。由于数据库记录您的电话账单只有一美元,因此插入了一个额外的列,数据被破坏。幸运的是,问题并非如此,因为即使是脚本男也没有防水的解决方案。
您的供应商应该提供的是一个逐行读取器,其中每一行都在制表符上拆分为一个包含所有值的数组。然后读出数组中的所有值,查看该值中是否有一个或多个逗号,并用双引号将其括起来。之后,数组被组装成逗号上有join
的字符串,使其成为"真正的"CSV文件。
但是,如果你能从源头上解决问题,为什么要经历所有的麻烦呢;为什么不在SQL中将数据标记为制表符分隔呢?
BULK
INSERT TableYouWantToImportTo
FROM 'c:'input.txt'
WITH
(
FIELDTERMINATOR = ''t',
ROWTERMINATOR = ''n'
)
GO