चेतावनी का एक शब्द:मैं नियमित C# कोडर नहीं हूं।
लेकिन वैसे भी यह कोड निम्न कार्य करता है:
यह C:\Input.TXT
. नामक फ़ाइल खोलता हैयह प्रत्येक पंक्ति को खोजता है। यदि पंक्ति में 5 से अधिक अल्पविराम हैं, तो यह तीसरे अंतिम क्षेत्र (नोट्स) से सभी अतिरिक्त अल्पविरामों को हटा देती है
यह C:\Output.TXT को परिणाम लिखता है - यही वह है जिसे आपको वास्तव में आयात करने की आवश्यकता है
इसमें कई सुधार किए जा सकते हैं:
- कनेक्शन प्रबंधकों से फ़ाइल पथ प्राप्त करें
- त्रुटि प्रबंधन
- एक अनुभवी C# प्रोग्रामर शायद आधे कोड में ऐसा कर सकता है
ध्यान रखें कि आपके पैकेज को उपयुक्त फ़ोल्डर में लिखने की आवश्यकता होगी
public void Main()
{
// Search the file and remove extra commas from the third last field
// Extended from code at
// http://stackoverflow.com/questions/1915632/open-a-file-and-replace-strings-in-c-sharp
// Nick McDermaid
string sInputLine;
string sOutputLine;
string sDelimiter = ",";
String[] sData;
int iIndex;
// open the file for read
using (System.IO.FileStream inputStream = File.OpenRead("C:\\Input.txt"))
{
using (StreamReader inputReader = new StreamReader(inputStream))
{
// open the output file
using (StreamWriter outputWriter = File.AppendText("C:\\Output.txt"))
{
// Read each line
while (null != (sInputLine = inputReader.ReadLine()))
{
// Grab each field out
sData = sInputLine.Split(sDelimiter[0]);
if (sData.Length <= 6)
{
// 6 or less fields - just echo it out
sOutputLine = sInputLine;
}
else
{
// line has more than 6 pieces
// We assume all of the extra commas are in the notes field
// Put the first three fields together
sOutputLine =
sData[0] + sDelimiter +
sData[1] + sDelimiter +
sData[2] + sDelimiter;
// Put the middle notes fields together, excluding the delimiter
for (iIndex=3; iIndex <= sData.Length - 3; iIndex++)
{
sOutputLine = sOutputLine + sData[iIndex] + " ";
}
// Tack on the last two fields
sOutputLine = sOutputLine +
sDelimiter + sData[sData.Length - 2] +
sDelimiter + sData[sData.Length - 1];
}
// We've evaulted the correct line now write it out
outputWriter.WriteLine(sOutputLine);
}
}
}
}
Dts.TaskResult = (int)Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success;
}