且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在C#中使用脚本替换

更新时间:2023-12-05 12:54:40

我不确定您的输入内容或匹配要求,但是您可以轻松地使用Linq或 for 循环下面是两个简单的示例,它们读取输入文件 sample.txt 并写入输出文件 out.csv



使用Linq:

  string periodValue = 201410; 
File.WriteAllLines(
out.txt,
File.ReadAllLines( sample.txt)。
Select(l = > l.Replace( Attend_10, Attend_10_ + periodValue))
);

使用 for 循环:

  string periodValue = 201410; 
字符串[] l ines = File.ReadAllLines( sample.txt);
for(int i = 0; i< lines.Length; i ++)
{
lines [i] = lines [i] .Replace( Attend_10, Attend_10_ + periodValue );
}
File.WriteAllLines( out.txt,行);

输入:sample.txt:

 < SomeTextHere> 
<文件名> = Attend_10
< MoreTextHere>

输出:out.txt

 < SomeTextHere> 
<文件名> = Attend_10_201410
< MoreTextHere>

如果您的匹配要求更高级,则可以使用RegEx来匹配每个字符串中的某些模式。 / p>

How can i read a certain portion of a text file and replace with another line?

Like in the file there is a part :"Attend_10" want to replace it with "Attend_10_[Variable_Value].

How can i Do this using script (C#) in SSIS?

I'm not sure exactly what your inputs are, or requirements for matching, but you could easily use Linq or a for loop to perform this. Below are two simple examples that read an input file sample.txt and write to an output file out.csv.

Using Linq:

string periodValue = "201410";
File.WriteAllLines(
    "out.txt",
    File.ReadAllLines("sample.txt").
        Select(l => l.Replace("Attend_10", "Attend_10_" + periodValue))
    );

Using a for loop:

string periodValue = "201410";
string[] lines = File.ReadAllLines("sample.txt");
for (int i = 0; i < lines.Length; i++)
{
    lines[i] = lines[i].Replace("Attend_10", "Attend_10_" + periodValue);
}
File.WriteAllLines("out.txt", lines);

Input: sample.txt:

<SomeTextHere>
<File Name>=Attend_10
<MoreTextHere>

Output: out.txt

<SomeTextHere>
<File Name>=Attend_10_201410
<MoreTextHere>

If your matching requirements are more advanced, you can use RegEx to match certain patterns in each string.