8 Replies Latest reply on Sep 6, 2008 12:00 AM by BKBK

    Parsing of field

    rjproctor
      I am trying to parse a field, I cannot use right or left because the item isn't in the same place. Here is an example of the field data;

      'MEISTER 56767 CB5-325-3-M-84-55 IGE 60DEG 6.5MMX14/M4.5 (G-213 MOD); FSP100:034250006500001; FSP200:RSRV-189'

      I need to get FSP100:034250006500001 from the field.

      Any ideas.
        • 1. Re: Parsing of field
          Dan Bracuk Level 5
          Your specific example is a list with semi-colons as the delimiter.
          • 2. Re: Parsing of field
            rjproctor Level 1
            Yes it is, so how do I parse the field to parse within cf to see the semi-colons
            • 3. Re: Parsing of field
              Level 7
              rjproctor wrote:
              > Yes it is, so how do I parse the field to parse within cf to see the semi-colons

              If one where to read some of the ColdFusion documentation concerning
              it's list functions, one would learn that all the list functions allows
              one to specify the list delimiting charatcer(s) as a parameter of the
              function.

              I.E. <cfoutput>#listLen('MEISTER 56767 CB5-325-3-M-84-55 IGE 60DEG
              6.5MMX14/M4.5 (G-213 MOD);FSP100:034250006500001; FSP200:RSRV-189',';')
              • 4. Re: Parsing of field
                rjproctor Level 1
                OK, the listlen will give me the no of semicolons, but there are multiple semicolons and the item that I need isn't always after the 3rd semicolon but it is always after the FSP100:
                • 5. Re: Parsing of field
                  Level 7
                  rjproctor wrote:
                  > OK, the listlen will give me the no of semicolons, but there are multiple semicolons and the item that I need isn't always after the 3rd semicolon but it is always after the FSP100:

                  Then you are looking for a regular expression search using the ReFind()
                  function. A read of the documentation for ReFind() and how to use the
                  resulting structure maybe in order.

                  <cfdump var="#refind('FSP100:(.*?);','MEISTER 56767 CB5-325-3-M-84-55
                  IGE 60DEG 6.5MMX14/M4.5 (G-213 MOD); FSP100:034250006500001;
                  FSP200:RSRV-189',1,true)#">
                  • 6. Parsing of field
                    davidsimms
                    See the attached.
                    • 7. Re: Parsing of field
                      Dan Bracuk Level 5
                      quote:

                      Originally posted by: rjproctor
                      OK, the listlen will give me the no of semicolons, but there are multiple semicolons and the item that I need isn't always after the 3rd semicolon but it is always after the FSP100:


                      This might be the simplest way:
                      Use find to get the postition of FSP100:
                      Use RemoveChars to make FSP100: the first characters of your string
                      Use ListFirst to get the final answer.

                      Usage of all 3 functions are in the cfml reference manual. If you don't have one, the internet does.
                      • 8. Re: Parsing of field
                        BKBK Adobe Community Professional & MVP
                        Davidsimms has effectively wriiten the code for you. Oh, and don't double-post.