Read from a text file merging data from subsequent rows

I have to read from a text file. The text in the file is as follows:

The problem I have on this text is that some rows are wrapped, like in the Account line. When I assigning the to Account I only get the value of the Account row, but not the next row that bellows to it.

What I get assigned for Account is:
Account: ‘126201’,‘272001’, ‘272002’, ‘272004’, ‘272005’, ‘272006’, ‘272007’, ‘272008’, ‘272009’, ‘272010’,

Instead of

Account: ‘126201’,‘272001’, ‘272002’, ‘272004’, ‘272005’, ‘272006’, ‘272007’, ‘272008’, ‘272009’, ‘272010’, ‘273001’, ‘273002’, ‘273004’, ‘273005’, ‘273006’, ‘273007’, ‘273009’

I’m reading the text file with a sequence like:

And I’m reading the contents of the Account like:

What can I do to add the next row into Account (or any of the other variables) if the lines have been wrapped?

Any ideas?

Thanks

Are you doing split text by Environment.New line? If so, i don’t think you have to worry about wrapped text.

arrLines = Split(txtSample,Environment.NewLine)

1 Like

Hello,

I would solve this kind of problem using Regular Expressions aka Regex.

new System.Text.RegularExpressions.Regex(“\bAccount:[^a-zA-Z]*\b”).Match(strTextFileContent).ToString

Inside an assign will return you the area you want to.

Basically, it will look from the String “Account:” and take all the non Alphabetic characters until it will encounter another one. In your case that would do.

Afterward you could use for example this

new System.Text.RegularExpressions.Regex(“‘\d{2,7}’”).Matches(strAccounts)

This would return you collection of Regex.Match. You then just have to loop trough it to find all the accounts or push them to an array/datatable/list assuming that they are surrounded by single quotation marks and are between 2 and 7 digits.

Cheers

1 Like

Thanks Florent

In the end I went old school

I added an additional variable:

Afterwards, I’m checking if the row contains inverted comas (') and not colon (: )

Then I update the Account

Similarly for the other fields.

1 Like