Skip to main content
simply more productive

The Data Specialist

Thanks to our intuitive transformation designer, you can convert data effortlessly to a variety of formats without knowing how to program. It’s not only efficient, it’s also easy to use.
Up to 100,000 records can be processed with the freeware version!
Flowheater Chart

Split addressrow into name; number; letter

  • Per-Olof Hermansson
  • Topic Author
  • Offline
  • User
  • User
More
6 years 6 months ago - 6 years 6 months ago #3453 by Per-Olof Hermansson
Split addressrow into name; number; letter - Post(3453) was created by Per-Olof Hermansson
I often receive addresses where the postaladdress is contained in one field, but in our system we register the different parts of the addressrow in separate fields,
and I need to split them accordingly.

For Example: 'Lindhult Höjden 5A' needs to be 'Lindhult Höjden'; '5'; 'A'

Is this possible with Flowheater?

Thanks

Per-Olof
Last edit: 6 years 6 months ago by Per-Olof Hermansson.

Please Log in or Create an account to join the conversation.

More
6 years 6 months ago #3457 by FlowHeater-Team
Replied by FlowHeater-Team on topic Split addressrow into name; number; letter - Post(3457)
Hi Per-Olof,

It would be posible but you need the help of the .NET Script Heater and the little C# script below.

The script first finds out whether a number is a part of the adresse field and store the index of the first and the last occurience. Then the script build a new string with the delimiter “#” for each part. This string you can split with the String Split Heater an store the result in separate fields.

Please find attached a little example.

C# script to split address row
Code:
public object DoWork() { if (InValues.Length < 1) throw new Exception("1 input parameter expected!"); // get the first input parameter string s = (string)InValues[0].GetString(); string output = String.Empty; int posFirstNumber = -1; int posLastNumber = -1; int lastPos = s.Length - 1; // check whether a number is a part of the address and get the first and last index for (int i = s.Length - 1; i >= 0; i--) { // check whether the character is nummeric? if (IsNumeric(s[i])) { if (posLastNumber == -1) posLastNumber = i; } else if (posLastNumber != -1 && posFirstNumber == -1) posFirstNumber = lastPos; lastPos = i; } if (posFirstNumber != -1) { // create output for the Split Heater output = s.Substring(0, posFirstNumber - 1); output += "#"; output += s.Substring(posFirstNumber, posLastNumber - posFirstNumber + 1); output += "#"; if (posLastNumber < s.Length) output += s.Substring(posLastNumber + 1); } else { // no number in address found output = s + "##"; } return output; } public bool IsNumeric(char c) { int output; return Int32.TryParse(c.ToString(), out output); }

File Attachment:

File Name: split-addresses.zip
File Size:3 KB

Best wishes
Robert Stark

Please Log in or Create an account to join the conversation.

Time to create page: 0.256 seconds
FlowHeater Logo

FlowHeater - The Data Specialist

Efficient data integration and transformation with FlowHeater – the perfect solution for a seamless transfer of your data.

Legal information

Support & Contact

Contact

Phone:
0951 / 9933 9792

eMail:
This email address is being protected from spambots. You need JavaScript enabled to view it.


Copyright © 2009-2025 by FlowHeater GmbH. All rights reserved.