Conversion of licenses.txt

Hi,
I´d like to convert a text file to csv, but I need some help please.

Source is a text file with software license codes (whicht I bought over several years),
target should be a CSV file.

Source:
each record is divided by an empty line,
first line contains name of the software,
followed by (1…x) lines with license information.

e.g.
Adobe Photoshop
License name: John Doe
s/n: 92409349u23r9jweifjse

ACDsee Ultimate
Licensed to John Doe
serial: 3ur9üusijfisdjgghisrdö
serial2: fjiöj49tutse9tu

Target:
1st column: name of the software (as in source 1st line)
2nd column: concat of all following lines of the record, with CR or any other divider

e.g.
Adobe Photoshop;License name: John Doe // s/n: 92409349u23r9jweifjse
ACDsee Ultimate;Licensed to John Doe // serial: 3ur9üusijfisdjgghisrdö // serial2: fjiöj49tutse9tu

I have no idea how to get a new record after each empty line.
Maybe someone could give a hint …?

Thank you!
Regards, Karsten

Hi Karsten

This is relatively simple if there are a fixed number of rows per software package. See attached.

karsten.transform (2.0 KB)

But, if there are a variable number of rows, that makes things tricky. I’m not sure there is enough structure to work with. It would help if the labels (e.g. “License name:”) were the same for each package.

1 Like

Hi Admin,

thanks for the quick reply and the script.

Unfortunately, the number of rows after the first line is variable, the only common identifyer is the empty line between the records. So I need something like “as long as there is no empty line, continue appending text to the field”.

There are no labels, so “simply” everything from line 2 up to the next empty line belongs to the same record.

We might be able to make the Concat Rows transform flexible enough to handle this in future. For example by adding an option to keep concatenating rows until you reach a row that matches a certain criteria (e.g. empty). But we don’t have that at present.

Maybe that could be a great improvement, having such a concat function with stop condition.
Meanwhile I’m experimenting with text editor and RegEx, but as a RegEx noob it’s not easy :wink:

My idea is
1.) replacing \r\n(any text of first line)\r\n by \r\n||S(any text of first line)||E\r\n,
2.) then replacing \r\n by []
and now everything is in one single line,
3.) after that divide in multiple lines by replacing ||S by \r\n
4.) and divide in multiple columns with EDT at divider ||E
… but I fail already at the first step :wink:

I’m not sure there is any way to do it in Easy Data Transform as things are at present, and we can’t comment on other tools.

of course - thank you for the helpful hints and the great tool!
Please keep improving the tool as you have done in the past.

1 Like

Please see the improved Concat Rows transform (item 1) in this snapshot release:

Please le me know if it works ok for you.

1 Like

Hi,

Solution without the Improved Concat Rows transform

Sorry still cannot upload attachment in here as still considered new user. So uploaded to the free file share site.

2 Likes

Wow, that’s awesome!
Thank you - this works fine for me :+1:t2:

1 Like