Re: regex help please
Your training is almost complete. Destroy Darth Vader and take his place at my side! Mooo haah haah haha hahah ahah! Bob On Feb 9, 2012, at 12:24 PM, Klaus on-rev wrote: > So with this text above in tText and "tag2" int tTag: > > function mk_getXMLdata tText, tTag > get matchText(tText,"(?s)<" & tTag & ">(.*?)",tValue) > return tValue > end mk_getXMLdata > > will give : more bla bla > So far so good, I even almost understand the reg ex ;-) ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
Hi friends, thank you all for your help, i got it to work now! Again thanks a lot! Best Klaus -- Klaus Major http://www.major-k.de kl...@major.on-rev.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
On Thu, Feb 9, 2012 at 7:10 PM, Klaus on-rev wrote: > Hi Andre, > > Am 09.02.2012 um 22:05 schrieb Andre Garzia: > > > Klaus, > > > > Since you have control, then instead of RegEx, you can go like > > > > > > nodecontent > > > > > > All in different lines, then, you can just use lineOffset to find the > start > > node and the end node and copy or replace the data between those lines. > > It is easier than RegEx. > > well, that's what I want to find out by myself, but can't without the > appropriate reg ex ;-) > Klaus, If you create the XML like I placed above you can replace content with something like: command replaceXMLNodeContent pNode, @pXML, pNewContent put "<" & pNode & ">" into tStartNode put "" into tEndNode put lineOffset(tStartNode, pXML) into tStartLine put lineOffset(tEndNode, pXML, tStartLine) into tEndLine put line tStartLine to tEndLine of pXML into tNodeContent replace (tStartNode & cr & tNodeContent & cr & tEndNode) with (tStartNode & cr & pNewContent & cr & tEndNode) in pXML end replaceXMLNodeContent > > > Best > > Klaus > > -- > Klaus Major > http://www.major-k.de > kl...@major.on-rev.com > > > ___ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- http://www.andregarzia.com -- All We Do Is Code. http://fon.nu -- minimalist url shortening service. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
>> Nonetheless, if you want to continue down the regex path, try >> something like >> >> get matchText(tText,"(?s)<" & tTag & ">(.*?)",tValue) >> replace "<" & tTag & ">" & tValue " with >> "<" & tTag & ">" & tNewValue " >> in tText > > well, I did not want to pass the text that I want to overwrite in the XML, > which I do not now in that moment! > But this is neccesary in Mark's and "zalgo/tony the coming pony"s (? :-D > ) scripts. > > I only want to pass the XML text, the tagname and the NEW text to be place > inside of these tags. Mark Weider's code will work for you, Klaus… the "tValue" is something that the matchText function FILLS with the current text inside the brackets, so you don't need to know it ahead of time. The "(.*?)" is a way to "capture" what is between the tags, and the 3rd+ parameters to he matchTextFunction are variables that are provided to the function that get filled with whatever is being captured. The matchText function returns either 'true' (if it can find what you are looking for) or 'false') if it can't. Mark's code above assumes a 'true' result by using "get". Here's an example that takes into account the possibility that you may not match what you're looking for: put "Hello" into tData if matchText(tData,"(?s)(.*?)",tValue) = "true" then put tValue -- Since this matches, you'll get "Hello" in the msg box else put "No Match" end if > Ken Ray Sons of Thunder Software, Inc. Email: k...@sonsothunder.com Web Site: http://www.sonsothunder.com/ ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
On 09/02/2012 21:00, Klaus on-rev wrote: get matchText(tText,"(?s)<"& tTag& ">(.*?)",tValue) replace "<"& tTag& ">"& tValue" with "<"& tTag& ">"& tNewValue" in tText well, I did not want to pass the text that I want to overwrite in the XML, which I do not now in that moment! But this is neccesary in Mark's and "zalgo/tony the coming pony"s (? :-D ) scripts. I only want to pass the XML text, the tagname and the NEW text to be place inside of these tags. Any other hints? You might take a look at the code again. In both cases you hand in the whole XML text, the tag you want to replace, and the value you want to stuff into it. The matchText function gets the current value in that tag. Mark's replace above (or my replaceText) replace that, and return the result. -Ken ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
Hi Andre, Am 09.02.2012 um 22:05 schrieb Andre Garzia: > Klaus, > > Since you have control, then instead of RegEx, you can go like > > > nodecontent > > > All in different lines, then, you can just use lineOffset to find the start > node and the end node and copy or replace the data between those lines. > It is easier than RegEx. well, that's what I want to find out by myself, but can't without the appropriate reg ex ;-) Best Klaus -- Klaus Major http://www.major-k.de kl...@major.on-rev.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
Klaus, Since you have control, then instead of RegEx, you can go like nodecontent All in different lines, then, you can just use lineOffset to find the start node and the end node and copy or replace the data between those lines. It is easier than RegEx. On Thu, Feb 9, 2012 at 6:54 PM, Klaus on-rev wrote: > Hi Andre, > > Am 09.02.2012 um 21:38 schrieb Andre Garzia: > > > Klaus, > > > > I used to work like that, doing little XML files with RegEx and > matchText. > > After working like that for a long time, I came to realize that there was > > no advantage at all in my case. It was simpler to work with RevXML. The > > problem with RegEx is all the little cases where it fails. I think you > > should use RevXML, it might look overkill but it will cut your debug > time a > > lot. > > than you for your insight, but in this project I have complete control > over the XML > and thus will not get any surprises :-) > > > Cheers > > andre > > Best > > Klaus > > -- > Klaus Major > http://www.major-k.de > kl...@major.on-rev.com > > > ___ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- http://www.andregarzia.com -- All We Do Is Code. http://fon.nu -- minimalist url shortening service. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
Hi guys, Am 09.02.2012 um 21:52 schrieb Mark Wieder: > Klaus, > > What Andre said. Sigh... :-) > Nonetheless, if you want to continue down the regex path, try > something like > > get matchText(tText,"(?s)<" & tTag & ">(.*?)",tValue) > replace "<" & tTag & ">" & tValue " with > "<" & tTag & ">" & tNewValue " > in tText well, I did not want to pass the text that I want to overwrite in the XML, which I do not now in that moment! But this is neccesary in Mark's and "zalgo/tony the coming pony"s (? :-D ) scripts. I only want to pass the XML text, the tagname and the NEW text to be place inside of these tags. Any other hints? > -- > Mark Wieder Best Klaus -- Klaus Major http://www.major-k.de kl...@major.on-rev.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
Hi Andre, Am 09.02.2012 um 21:38 schrieb Andre Garzia: > Klaus, > > I used to work like that, doing little XML files with RegEx and matchText. > After working like that for a long time, I came to realize that there was > no advantage at all in my case. It was simpler to work with RevXML. The > problem with RegEx is all the little cases where it fails. I think you > should use RevXML, it might look overkill but it will cut your debug time a > lot. than you for your insight, but in this project I have complete control over the XML and thus will not get any surprises :-) > Cheers > andre Best Klaus -- Klaus Major http://www.major-k.de kl...@major.on-rev.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
Klaus, What Andre said. Nonetheless, if you want to continue down the regex path, try something like get matchText(tText,"(?s)<" & tTag & ">(.*?)",tValue) replace "<" & tTag & ">" & tValue " with "<" & tTag & ">" & tNewValue " in tText -- Mark Wieder ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
On 09/02/2012 20:24, Klaus on-rev wrote: in my current project I need to deal with VERY small XML files with maybe up to 20 entries. Wait, didn't we just hear that you can't parse html (or XML) with regexps? *grin* function mk_getXMLdata tText, tTag get matchText(tText,"(?s)<"& tTag& ">(.*?)",tValue) return tValue end mk_getXMLdata Throwing caution to the winds, this probably does something similar to what you want without further regexp voodoo: function mk_replaceXMLdata tText, tTag, tNewText put tText into tValue if matchText(tText,"(?s)<"& tTag& ">(.*?)",tValue) then put replaceText(tText, \ "<"&tTag&">"&tValue&"",\ "<"&tTag&">"&tNewText&"") into tValue end if return tValue end mk_replaceXMLdata And remember: zalgo is tony the pony! He's a comin! -Ken ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: regex help please
Klaus, I used to work like that, doing little XML files with RegEx and matchText. After working like that for a long time, I came to realize that there was no advantage at all in my case. It was simpler to work with RevXML. The problem with RegEx is all the little cases where it fails. I think you should use RevXML, it might look overkill but it will cut your debug time a lot. Cheers andre On Thu, Feb 9, 2012 at 6:24 PM, Klaus on-rev wrote: > Hi friends, > > in my current project I need to deal with VERY small XML files > with maybe up to 20 entries. > > So using the XML external seems to be a bit overkill. > > Some time ago I found a little reg ex here on the list which I turned > into a function and will return me everything inside of a given XML tag: > ... > bla bla > more bla bla > ... > > So with this text above in tText and "tag2" int tTag: > > function mk_getXMLdata tText, tTag > get matchText(tText,"(?s)<" & tTag & ">(.*?)",tValue) > return tValue > end mk_getXMLdata > > will give : more bla bla > So far so good, I even almost understand the reg ex ;-) > > Now I am looking for another little snippet to (over) write something > in(to) > a certain TAG, know what I mean? > > If someone could supply a nifty "replacetext" snippet that would be great! > :-) > Thanks in advance! > > > Best > > Klaus > > -- > Klaus Major > http://www.major-k.de > kl...@major.on-rev.com > > > ___ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- http://www.andregarzia.com -- All We Do Is Code. http://fon.nu -- minimalist url shortening service. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode