It looks like you're new here. If you want to get involved, click one of these buttons!

- 68.7K All Categories
- 73 General
- 73 Announcements
- 62.9K Microsoft Dynamics NAV
- 15.7K NAV Three Tier
- 38.1K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 112 Navision DOS
- 845 Navision e-Commerce
- 788 NAV Tips & Tricks
- 764 NAV Dutch speaking only
- 604 NAV Courses, Exams & Certification
- 1.9K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 214 Dynamics CRM
- 99 Dynamics GP
- 8 Dynamics SL
- 1.4K Other
- 964 SQL General
- 376 SQL Performance
- 29 SQL Tips & Tricks
- 23 Design Patterns (General & Best Practices)
- Architectural Patterns
- 6 Design Patterns
- 3 Implementation Patterns
- 52 3rd Party Products, Services & Events
- 1.5K General
- 980 General Chat
- 1.6K Website
- 76 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions

mickbarrs
Posts: **17**Member

I'm trying to find the position of the first value that is not a numeric value within a string.

pTxtNumber is passed in and could be**10-15672** for example. So I want to return position 3 because this is the first non numeric character. Then I want to chop of the string up to and including this character so that I am left with **15672**.

This code i initially did checks for where the numeric value begins but now i want to do the opposit.

FOR i := 1 TO STRLEN(pTxtNumber) DO BEGIN

IF Pos = 0 THEN

IF FORMAT(pTxtNumber*) IN THEN*

Pos := i;

END;

Any help would be greatly appreciated.

Cheers

Mike

pTxtNumber is passed in and could be

This code i initially did checks for where the numeric value begins but now i want to do the opposit.

FOR i := 1 TO STRLEN(pTxtNumber) DO BEGIN

IF Pos = 0 THEN

IF FORMAT(pTxtNumber

Pos := i;

END;

Any help would be greatly appreciated.

Cheers

Mike

0

## Comments

429MemberIF FORMAT(pTxtNumber

) IN THEN

put

IF NOT (FORMAT(pTxtNumber

) IN ) THEN

I think it could work ...

17MemberIF FORMAT(pTxtNumber

) NOT IN THEN

and this did not work either.

I suppose i could enter into a substring 'abcdefg-!"£$%^&*' etc and then check in my string to see if it contains any of the characters in the substring but i thought there might be a more efficient way of saying find the first non-numeric character.

Any ideas?

8,764Member, ModeratorUse the SEARCH,Luke! || No PM,please use the forum. || May the <SOLVED>-attribute be in your title!

NAV TechDays 2019: 21 & 22 November 2019, Antwerp (Belgium)

8,127Member<edit>so that still doesn't give you the position of the first non numeric character..... let me think about that</edit>

Daniel RimmelzwaanRIS Plus, LLC

MVP - Dynamics NAV

8,127MemberTargetString - Text30

IFoundIt - boolean

MyPos - Integer That should find the first non-numeric character in SourceString. So then you wrap it in a function and use return value.

Daniel RimmelzwaanRIS Plus, LLC

MVP - Dynamics NAV

148Member8,127MemberDaniel RimmelzwaanRIS Plus, LLC

MVP - Dynamics NAV

148MemberAsciiNo is integer

mystr is text

Message returns 48 which is ASCII No. for 0 (zero)

12,562MemberThat's all folks... 8)

MVP - Dynamics NAV

My BLOG

NAVERTICA a.s.

8,127MemberDaniel RimmelzwaanRIS Plus, LLC

MVP - Dynamics NAV

17Member= FALSEto the second line. This then tells me the line number where the first non-numeric character is.FOR i := 1 TO STRLEN(pTxtNumber) DO BEGIN

IF FORMAT(pTxtNumber

) IN = FALSE THEN

Pos := i;

END;

IntNumber := 0;

IF Pos <> 0 THEN BEGIN

Alpha := DELSTR(pTxtNumber, 1, Pos);

EVALUATE(IntNumber, Alpha);

END;

EXIT(IntNumber);

Thanks for the help!!!

Mike

8,127MemberDaniel RimmelzwaanRIS Plus, LLC

MVP - Dynamics NAV

17MemberI just wanted to take the part of the string after the non-numeric character which in this case is '-'. So i wanted to return 98765.

mystr := '10-98765';

FOR i := 1 TO STRLEN(mystr) DO BEGIN

IF NOT (mystr

IN [48..57]) THEN BEGIN // ascii for 0 thru 9

newstr := COPYSTR(mystr,i+1);

i := STRLEN(mystr); // drops out of for statement

END;

END;

MESSAGE('%1',newstr)

8,127MemberDaniel RimmelzwaanRIS Plus, LLC

MVP - Dynamics NAV

17Member3Member8,127MemberDaniel RimmelzwaanRIS Plus, LLC

MVP - Dynamics NAV