EDIFileSplitter is capable of splitting an X12 EDI files into many smaller files. The splitting operation is asynchronous by nature allowing program flow to continue. The resulting files will be placed in the directory specified.
Developers can split file at the envelope level (ISA), the functional group level (GS) , or the header level (ST) by setting the FileSplitLevel property of EDIFileSplitter. After splitting the file the OnFileOperationCompletedEvent will be fired. Note that the event will be fired from a different thread.
EDIFileSplitter ediFileSplitter = new EDIFileSplitter();
// Split the file at the header level (ST segment)
ediFileSplitter.FileSplitLevel = FileSplitLevel.HEADER;
// Place 2 ST headers per file
ediFileSplitter.NumberOfItemsPerFile = 2;
ediFileSplitter.OnFileOperationCompleted += new EventHandler(splitter_OnFileOperationCompleted);
string currentDirectory = Directory.GetCurrentDirectory();
catch (Exception ex)
private void splitter_OnFileOperationCompleted(object sender, FileOperationCompletedEventArgs e)
if (e.Status != FileOperationStatus.Success)
MessageBox.Show(“Error splitting file”, “Error”);
else if (e.Status == FileOperationStatus.Success)
MessageBox.Show(“File Split Success”, “Success”);
//e.SplitFiles will contain the names of the newly created split files
EDIFileSplitter will add the correct number of items in element 1 of the SE, GE, and IEA segments.