0

テキスト ファイルのディレクトリに取り込むための次の C# コードがあり、スクリプト コンポーネントの出力に列を追加して、このループで各ファイル名をキャプチャし、FILENAME という列の各行に追加できるようにする必要があります。これは SSIS のスクリプト変換コンポーネントの一部であるため、通常の派生列タスクは機能しません。

列を作成して var file の内容を入力するだけではないように見えるので、どうすればこれを行うことができますか?

public override void CreateNewOutputRows()
{
    foreach (var file in Directory.GetFiles(@"C:\Pre\DataSource2_W\TextFiles\Batch1\", "*.txt"))
    { 

        string _nextLine;
        string[] _columns;
        char[] delimiters;

        delimiters = "|".ToCharArray();
        _nextLine = _reader.ReadLine();

        string[] lines = File.ReadAllLines(file, Encoding.UTF8);

        //Start at index 2 - and keep looping until index Length - 2 
        for (int i = 3; i < lines.Length - 2; i++)                  
        { _columns = lines[i].Split('|');    

                // Check if number of cols is 6
            if (_columns.Length > 4)
            {
                JazzORBuffer.AddRow();
                JazzORBuffer.Server = _columns[0];
                JazzORBuffer.Country = _columns[1];
                JazzORBuffer.QuoteNumber = _columns[2];
                JazzORBuffer.DocumentName = _columns[3];
                JazzORBuffer.CompanyNameSoldTo = _columns[4];

            }
            else
            {
                // Debug or messagebox the line that fails

                Thread t = new Thread(() => MessageBox.Show("file" + "Cols:" + _columns.Length.ToString() + " Line: " + lines[i])); 
                t.SetApartmentState(ApartmentState.STA); 
                t.Start(); 

                //MessageBox.Show("file" + "Cols:" + _columns.Length.ToString() + " Line: " + lines[i]);
                //return;
            }   
        }
    } 
}

EDIT:更新されたコードレイアウト

4

1 に答える 1

1

Inputs and Outputsスクリプト変換エディターのペインで、出力に列を追加する必要があります。

これにより、スクリプトから列にアクセスできるようになります。

于 2012-05-24T12:08:40.303 に答える