我应该如何在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来完成同样的事情,请给我指明正确的方向。

提前感谢

我应该如何在VS中使用以下代码

创建一个控制台应用程序,并用上面的文本替换生成的程序.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