Intialize a variable named "A" of type string and enter a couple of lines of text. Then use Compose to split it. Run.
Then, check execution.
This was expected.
But the next was not. See result below:
I also tried use:
split(variables('A'),'
')
This was accepted as expression but result was the same.
split(variables('A'),'\r\n')
produced the same result.
What is wrong here ?
P.S. My ultimate goal is to parse a multi-line CSV text file from Sharepoint document library. Yes, I'm aware of Excel connector.
Solved! Go to Solution.
Hi @slyuso,
Thanks for the feedback.
I think the issue here should be the
split(variables('A'),' ')
As the
' '
Will not be considered as a valid character in flow expression, per my testing.
To workaround this, please take a try to create an example first, then get the New Line character, after that, use the NewLine Compose output as the Split string:
Follow the steps below:
1. Create a string variable as below, make sure to enter two spaces after Line1, then press enter:
Line1 Line2
2. Add Compose, under the Input, enter the expression below:
take(first(skip(split(Variables('A'),' '),1)),1)
3. After that, we could use the Outputs of the Compose to split the string with the Line break character:
split(variables('A'),outputs('Compose'))
4. The running results:
Regards,
Michael
Hi @slyuso,
Thanks for the feedback.
I think the issue here should be the
split(variables('A'),' ')
As the
' '
Will not be considered as a valid character in flow expression, per my testing.
To workaround this, please take a try to create an example first, then get the New Line character, after that, use the NewLine Compose output as the Split string:
Follow the steps below:
1. Create a string variable as below, make sure to enter two spaces after Line1, then press enter:
Line1 Line2
2. Add Compose, under the Input, enter the expression below:
take(first(skip(split(Variables('A'),' '),1)),1)
3. After that, we could use the Outputs of the Compose to split the string with the Line break character:
split(variables('A'),outputs('Compose'))
4. The running results:
Regards,
Michael
Thank you, Michael
Your post inpired me for even a simpler solution.
To define variable CRLF, I pressed ENTER key. This is not obvious from the picture
And it worked as in your example.
Thank you for helping.
Brilliant!
Awesome!
Thank you
This will be very useful in working with csv files.
I'm still working on and searching for a solution to do this same thing with TAB delimited.
Update: I just realized you can press tab in notepad then copy it into flow and that lets you split tab delimited files.
This could also work, but I have not tried it. This is the original post
https://powerusers.microsoft.com/t5/Building-Flows/Replace-Newline-in-Flow-Expression/td-p/57333
Converting it to an array should something like this:
split(uriComponent(body('Html_to_text')), '%0A')
If someone could confirm, please let reply.
Hi Jose,
This works too but as we are encoding the content, we need to again decode while parsing the results.
I tested this in a recent flow 😊
Thanks,
Nutan
Hi @JoseZald101 ,
It worked. Thank you very much for pointing this out. However below expression,
split(uriComponent(body('Html_to_text')), '%0A')
returns an array with uri components within it. I need to use uriComponentToString method to change each array item.
uriComponentToString(split(uriComponent(body('Html_to_text')), '%0A')[0])
This is genius - the CRLF solution.
This is brilliant, simple and it works!
Great, works like a charm indeed
Just making minor tweaks to the smart solutions from many contributors, it helps to check the raw texts of the file you want to parse via a 'compose'
E.g.
The splitting character may vary depending on the datasources, such as LF (\n) or CRLF (\r\n); in the example above I want to split at '\r\n', which can be constructed via the decodeUriComponent function:
So for each combination:
\r => decodeUriComponent('%0D')
\n => decodeUriComponent('%0A')
\r\n => decodeUriComponent('%0D%0A')
In my case the target CSV email body is followed by some empty lines and then an email disclaimer; I skip it before CSV parsing using this compose (which is 2x CRLF)
Then get the 1st array element from the split:
And finally I can split the CSV body into multiple lines with:
The final output:
HTH
Hii, slyuso
i am converting file into text file and split by new line as your expression but it's not working in my case can you please direct correct way
Just a quick note for anyone struggling with the actual execution of this solution (just as I did):
Its just the normal "split" function and its normal format:
Easiest solution and doesn't require setting a delimiter variable:
The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.
Announcing a new way to share your feedback with the Power Automate Team.
User | Count |
---|---|
75 | |
20 | |
17 | |
14 | |
13 |
User | Count |
---|---|
128 | |
35 | |
29 | |
28 | |
25 |