Solved

# Formula to Split a String @ alpha/numeric values

Posted on 2004-08-24
1,259 Views
Hey experts,

I need a complete crystal formula that can take this string
AAA111
and Split it when the AAA changes to 111 then select either the AAA(0) or 111(1)  to return back to the report.

Big points hope someone can get me a quick answer.

0
Question by:DTRON04
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 4
• 3
• 3
• +1

LVL 42

Expert Comment

ID: 11884412
This formula gives you the 111 portion:     mid('AAA111',instr('AAA111','1'));

This formula gives you the AAA portion:    mid('AAA111',1,len('AAA111')-instr('AAA111','1')+1);

Obviously this is a simple example though - are you asking to split based on any number or will it always be a '1'?

frodoman
0

LVL 42

Assisted Solution

frodoman earned 200 total points
ID: 11884730
This code should handle any value:

stringVar source := 'AAAB1234';  <- replace with {table.field} if you're using a db field for this
numberVar breakPoint := 9999;
numberVar x;

for x := 0 to 9 do
(
if instr(source,cstr(x)) < breakPoint and instr(source,cstr(x)) > 0 then
breakPoint := instr(source,cstr(x));
);

// Print number
// mid(source,breakPoint);
// Print text
mid(source,1,len(source)-breakPoint+1);

HTH

frodoman
0

LVL 10

Expert Comment

ID: 11884742
0

LVL 28

Accepted Solution

bdreed35 earned 300 total points
ID: 11884780
Here is an example of a loop to seperate the string from the number:

stringvar strNumber := "AAA111";
stringvar strText := "";
numbervar x;

While not(numerictext(strNumber[1])) Do
(
strText := strText + strNumber[1];
strNumber := mid(strNumber,2);
);

strNumber;

It just returns the number right now but you can add the logic at the end to determine if you want to return the "AAA" or the "111".  It should work for any valid number.  Tell me the logic if you need help.
0

Author Comment

ID: 11885066
Hey all thanks for all that i think bdreed35 is the closest to what i need

Let me explain some more logic.

Basically the example i gave was for alpha/numeric sepration the characters and lengths can be different.
The constants are this:

the set of letters will always be in the beginning and should never go over holding 5 places, usually 3 to 4.
Then when i hit the numeral that is what i want to split on basically returning the opposite values in 2 seperate formulas.

that is exactly what your doing right  bdreed?

i will try it within the hour i am currently working on something else.
didn't have time get this one on my own, thanks again guys!!
0

LVL 42

Expert Comment

ID: 11885101
Both the formula I provided and the one Brian (bdreed) provided will give you what you want - two different ways to do basically the same thing.

frodoman
0

LVL 28

Expert Comment

ID: 11885177
Yes, that is exactly what I am doing.

You can create a second formula and reference the other variable so that you can display both values:

@Display_Text

EvaluateAfter({@OtherFormulaName});
stringvar strText;
0

Author Comment

ID: 11886026
alright guys, thanks!!
Brian your solution worked right out of the box for me.

frodo i will five you 200 for being first.
i understood Brian's style a bit better then yours so that may have been why i kept getting a 0 value or integer error on your solution.

My skills in crystal cyntax are lacking greatly, is there a good book or reference guide i can get to understand the crystal syntax better?
i develope in VB/SQL for web and windows apps and love crystals rapid developement features but the syntax kicks my a** everytime i have to get somewhat complicated with it.
what language is it based on anyway?

regardless, thanks again!

0

LVL 10

Expert Comment

ID: 11886057
Book name : Brian Bischof Crystal Reports .NEt programming . Great book I recommend to everyone
Crystal Syntax: C
Regards
Emre
0

LVL 42

Expert Comment

ID: 11886351
The syntax is a hybrid of vb & c.  The keywords are vb-like but the bracketing is c-like.  It is odd, however you can opt to use Basic syntax instead of Crystal.  The Basic syntax is virtually identical to vb.

frodoman
0

LVL 28

Expert Comment

ID: 11886356
If you are used to VB, you can use Basic syntax to write the formulas.  There is no difference in the amount of speed of either one so it is really based upon your preference.

I recommend leaving the report you have already alone, but you can experiment.  When your in the formula editor, just change the drop down bos in the toolbar from Crystam Syntax to Basic Syntax.
0

Author Comment

ID: 11886426
thanks i will try to play in just basic and see how i fair, are you guys sitting beside each other or something?
it seems like you were racing to see who could enter key first on those last responses.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hot fix for .Net Crystal Reports 10.2.3600.0 to fix problems with sub reports running on 64 bit operating systems ISSUE: Reports which contain subreports fail with error "Missing Parameter Value" DEPLOYMENT SERVER OS: Windows 2008 with 64 biâ€¦
Hello everyone, Hope you find this as helpful as we did. We have on the company I work for an application built in Delphi V with Crystal Reports 8. We all know that Crystal & Delphi can be temperamental sometimes and the worst thing is, nearlyâ€¦
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient â€¦
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundrâ€¦
###### Suggested Courses
Course of the Month5 days, 18 hours left to enroll