strtok

Kenneth Brody kenb at fptech.com
Wed Aug 26 06:31:48 PDT 2009


Richard Kreiss wrote:
> 
>> -----Original Message-----
>> From: Kenneth Brody [mailto:kenb at fptech.com]
>> Sent: Tuesday, August 25, 2009 3:01 PM
>> To: rkreiss at gccconsulting.net
>> Cc: 'FilePro Mailing List'
>> Subject: Re: strtok
>>
>> Richard Kreiss wrote:
>>> Noted something and I wanted to check if this is the correct behavior.
>>>
>>> I am importing data from a csv file and need to edit some of the import
>>> fields as they are not quite right.
>>>
>>> One field is a phone # field which can be in the form:
>>>
>>> EXT 111
>>>
>>> EXT 111 (212) 555-1212
>>>
>>> (212) 555-1212
>>>
>>> This is in foobar(5)
>>>
>>> I can do a if: mid(foobar(5),"1","1") = "E" and this works fine.
>>>
>>> However if I do d=strtok(foobar(5),"(","1") to get the position of the open
>>> paran, to extract the phone #, d = "0".
>>>
>>> Had to do f=foobar(5){"" and then d=strtok(f,"(","1") to get the starting
>>> position to extract the phone #.
>>>
>>> Mid on foobar(5) works but apparently strtok on foobar(5) won't work.
>>>
>>> Is this the correct behavior?
>> "It works here."
>>
>> Can you post some actual code, along with the version of the program you are
>> using?
>>
>> --
>> Kenneth Brody
> 
> 
> Working Code:
> 
> 39  -------   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
>        ◄ If:
>        Then: f=gotit(5){""
>  40  -------   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
>        ◄ If:
>        Then: d=strtok(f,"(","1")
>  41  -------   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
>        ◄ If: d = "0"
>        Then: GOTO mo_fone
>  42  -------   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
>        ◄ If:
>        Then: fone=mid(f,d,d+"14")
> 43  -------   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
> mo_fone◄ If: mid(gotit(5),"1","1") = "("                                       ◄
>        Then: fone=gotit(5)                                                     ◄
>  44  -------   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
> 
> 
> Not Working code:
> 
> 40  -------   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
>        ◄ If:                                                                   ◄
>        Then: d=strtok(gotit(5),"(","1")                                        ◄
>  41  -------   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
>        ◄ If: d = "0"                                                           ◄
>        Then: GOTO mo_fone                                                      ◄
> 
> In this case d was always "0" even when gotit(5)'s value was EXT 123 (212) 555-1212.
> 
> The program posts the ext number and phone numbers to separate fields.
> 
> This is just one place where I need to use strtok to divide an import field into separate fields or to remove unwanted commas from a field.
> 
> In all cases the import field must be set to  a dummy variable and then strtok used.  
> 
> Note mid does work on the import field, see line 43, I can test to see if this is just a phone # in the field as all have an area code with an opening (.

Well, in the "not working code", I only see two lines from an at-least 
41-line processing table.  Without the rest and actual input data, I can 
only guess that something is wrong in the non-listed code.

At this point, I would recommend getting a sample file that demonstrates the 
problem, and contacting fpsupport to make arrangements to send them the 
files, because my test here shows that it works.


-- 
Kenneth Brody


More information about the Filepro-list mailing list