Hey Michael, thanks for the information. Than I'll write some unit tests and attach them too :)
Best, Tim Am 04.02.2011 um 16:38 schrieb Michael Wild: > Very cool. > > I think creating a ticket and attaching the patches (or even better, > posting a URL to a public GIT branch) would be best. In order for this > feature to be included by Kitware, you'd also need to provide unit tests. > > > Michael > > On 02/04/2011 04:31 PM, Tim Hütz wrote: >> Ok, I've implemented a forward search (finds the first occurrence of the >> substring) and a reverse search (which finds the last occurrence of a >> substring). Should I open a ticket (with adding the required paches) for >> suggesting this for one of the next CMake releases or how should I proceed? >> The idea of a STRING( FIND REGEX ...) is nice too. I'm working on it as soon >> as I have some free minutes :) >> >> Am 04.02.2011 um 16:02 schrieb Michael Wild: >> >>> Exactly. The single-character matching would then just be a special >>> case. If you want to get fancy, having a string(FIND REGEX) command >>> would also be nice ;-) >>> >>> Michael >>> >>> On 02/04/2011 03:31 PM, Tim Hütz wrote: >>>> Mhh, okay. With substring matching you mean that I can get the position of >>>> the first occurrence of a word or sub-sentence, am I right? >>>> >>>> >>>> Am 04.02.2011 um 13:32 schrieb Michael Wild: >>>> >>>>> On 02/04/2011 12:49 PM, Tim Hütz wrote: >>>>>> I don't think that the speed-factor was important in this case. A >>>>>> complete CMake run takes about 25 seconds to run (in my case) and I see >>>>>> no influence in the processing time with my suggested patch or the >>>>>> regular expression sample provided by Michael. I thought that my >>>>>> solution is a bit more intuitive, but I don't know if this is really >>>>>> important for CMake. If you use the provided patch, you can do something >>>>>> like >>>>>> >>>>>> PROJECT( "STRING FIND command" ) >>>>>> SET( TESTSTRING "This is a test" ) >>>>>> STRING( FIND ${TESTSTRING} "a" APOSITION ) >>>>>> MESSAGE( STATUS "Position of character 'a' is ${APOSITION}" ) >>>>>> >>>>>> Regards, >>>>>> Tim >>>>>> >>>>>> Am 04.02.2011 um 12:00 schrieb SF Markus Elfring: >>>>>> >>>>>>>> mhh, yeah, thats a good idea. Ok, I'll use this for doing a "STRING( >>>>>>>> FIND ...)" :) It was just an idea to share this patch with you, but >>>>>>>> you're right. Its easier doing this with regular expressions. >>>>>>> >>>>>>> Can it be that your implementation was faster than a complete regex >>>>>>> application for your use case? >>>>>>> >>>>>>> Are there any remarkable differences in the corresponding execution >>>>>>> speed and performance characteristics? >>>>>>> >>>>>>> Regards, >>>>> >>>>> I just wanted to point out that this particular use-case can be handled >>>>> by a regular expression. I still think that a string(FIND) command would >>>>> be useful, although it would be even more so if it did substring matching. >>>>> >>>>> BTW, I just had an idea how to find substrings with regexes, but it is >>>>> even more tedious: >>>>> >>>>> set(str "Hello Tim. How are you Tim?") >>>>> set(pos -1) >>>>> if(str MATCHES "(Tim.*)") >>>>> string(LENGTH "${str}" l1) >>>>> string(LENGTH "${CMAKE_MATCH_1}" l2) >>>>> math(EXPR pos "${l1}-${l2}") >>>>> endif() >>>>> >>>>> This finds the position of the first occurence of "Tim". Another >>>>> alternative, without math(EXPR) is: >>>>> >>>>> set(str "Hello Tim. How are you Tim?") >>>>> set(pos -1) >>>>> string(REGEX REPLACE "Ali.*" "" tmp "${str}") >>>>> if(NOT "${tmp}" STREQUAL "${str}") >>>>> string(LENGTH "${tmp}" pos) >>>>> endif() >>>>> >>>>> Michael >>>>> > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake
PGP.sig
Description: Signierter Teil der Nachricht
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake