CSV Engine Documentation Contents
AldenSystems.CSVEngine
CSV Engine Class Library

Filter Class

Filter class is available in commercial version only.

Filter defines parameters for matching against Row data.

For a list of all members of this type, see Filter Members.

System.Object
AldenSystems.CSVEngine.Filter

[Visual Basic]
NotInheritable Public Class Filter
[C#]
public sealed class Filter

Remarks

Filter class is available in commercial version only.

Example

This example uses a filter to write only those rows in the results where the second column has the value 'Brown'.

C# example:
Writer csvWriter = new Writer(@"c:\temp\test.csv");

Filter dataFilter = new Filter();

//zero based
dataFilter.AddCondition(1, "^Brown$");

ArrayList animalList = new ArrayList();

Row dataRow = new Row();

dataRow.AddValue("Cat");
dataRow.AddValue("Grey");
dataRow.AddValue("Tabby");

animalList.Add(dataRow);

dataRow = new Row();

dataRow.AddValue("Cat");
dataRow.AddValue("Brown");
dataRow.AddValue("Havana");

animalList.Add(dataRow);

dataRow = new Row();

dataRow.AddValue("Dog");
dataRow.AddValue("Brown");
dataRow.AddValue("Retriever");

animalList.Add(dataRow);

foreach(Row saveRow in animalList)
{
    if(dataFilter.Evaluate(saveRow))
    {
        csvWriter.Write(saveRow);
    }
}

csvWriter.Close();
VB example:
Dim csvWriter As New Writer("c:\temp\test.csv")
Dim dataFilter As New Filter

'zero based
dataFilter.AddCondition(1, "^Brown$")

Dim animalList As New ArrayList

Dim dataRow As New Row

dataRow.AddValue("Cat")
dataRow.AddValue("Grey")
dataRow.AddValue("Tabby")

animalList.Add(dataRow)

dataRow = New Row

dataRow.AddValue("Cat")
dataRow.AddValue("Brown")
dataRow.AddValue("Havana")

animalList.Add(dataRow)

dataRow = New Row

dataRow.AddValue("Dog")
dataRow.AddValue("Brown")
dataRow.AddValue("Retriever")

animalList.Add(dataRow)

Dim saveRow As Row

For Each saveRow In animalList
    If dataFilter.Evaluate(saveRow) Then
        csvWriter.Write(saveRow)
    End If
Next

csvWriter.Close()

The filter may also be used to progress the Reader to the next Row that matches the filter criteria. When a header is provided, the filter can apply the expression to the named column.

C# example:
Reader csvReader = new Reader(@"c:\temp\test.csv", true);

csvReader.Open();

Filter dataFilter = new Filter(csvReader.Header);

dataFilter.AddCondition("Animal", "^Bird$");

while(csvReader.Read(dataFilter))
{
    //... use data
}

csvReader.Close();
VB example:
Dim csvReader = New Reader("c:\temp\test.csv", True)

csvReader.Open()

Dim dataFilter = New Filter(csvReader.Header)

dataFilter.AddCondition("Animal", "^Bird$")

While csvReader.Read(dataFilter)
    '... use data
End While

csvReader.Close()

Requirements

Namespace: AldenSystems.CSVEngine

Assembly: CSVEngine (in CSVEngine.dll)

See Also

Filter Members | AldenSystems.CSVEngine Namespace