FlowHeater - The Data Import / Export Specialist
Welcome, Guest
Username: Password: Remember me
See also the existing examples of using the TextFile Adapter , which may answer your question: text file codepage converting 1 / 2 , processing of CSV header and footer rows , Import/Export vCard (line based) text files
  • Page:
  • 1


Split addressrow into name; number; letter 4 years 2 months ago #3453

  • Per-Olof Hermansson
  • Per-Olof Hermansson's Avatar Topic Author
  • Offline
  • Posts: 1
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?



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

Last edit: by Per-Olof Hermansson.

Split addressrow into name; number; letter 4 years 2 months ago #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
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);
    // 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

Did this answer your question? We would be grateful if you provide a brief comment as feedback. It may also help others who may have encountered a similar problem.

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

  • Page:
  • 1
Time to create page: 0.130 seconds

other Languages


FlowHeater Home

de en


Privacy Statement

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

Follow us on

twitter  facebook


 de en