concatenating with the ampersand

Joe Lewis Wilkins pepetoo at Cox.Net
Sun Mar 11 22:09:33 EDT 2007


Hi Kay, Jim, etc.,

Would something like the following work? I find  the one liner very  
confusing; Hard to see exactly what is being merged. The brackets  
(square) seem to melt everything into a confusing mess, but  
separating each item that is being merged onto a separate line makes  
it very readable.

put merge("\
[[the short name of the target]]_\
[[word 1 of the clickline]]\
")\ --end merge
into gStartHere --The destination of the string

It would also be conducive to a form whereby if one typed the phrase  
"merge 3", the script editor could replace it with a skeleton  
something like:

put merge("\
[[ ]]\
[[ ]]\
[[ ]]\
")\
into    --The destination of the string

Which can easily be completed. Does this make sense? Since I have yet  
to look at the documentation on "merge", this may be foolish.

Joe Wilkins


On Mar 11, 2007, at 6:16 PM, Kay C Lan wrote:

> On 3/12/07, john at debraneys.com <john at debraneys.com> wrote:
>>
>> put word 1 of the clickLine into tWhichLine
>> put ( tWhichField & "_" & tWhichLine) into gStartedHere
>>
>> rather than
>>
>> put (the short name of the target & "_" & word 1 of the clickLine)  
>> into
>> gStartedHere
>
>
> Jim put me onto the 'merge()' function, check it out in the docs.  
> Actually
> I'm surprised it hasn't already mentioned here as it pretty well  
> eliminates
> the need for & or && in most cases.
>
> put merge("[[the short name of the target]]_[[word 1 of the  
> clickLine]]")
> into gStartedHere
>
> As for the initial problem, I wouldn't use merge() for this but it  
> could be:
> put merge("[[quote]][[lineNum]]H[[quote]]") into fldName
>
> When initially used the double square brackets can be a little  
> confusing but
> once you're use to it it can make code more readable and compact.
>
> put "Name1:" & tab & var1 & "." & cr \
>    & "Name2:" & tab & var2 & "." & cr \
>    etc etc
>    & "Name10:" & tab & var10 & "." \
>    into field "listsVars"
>
> put merge("Name1:[[tab]][[var1]].[[cr]] \
>           Name2:[[tab]][[var2]].[[cr]] \
>           etc etc
>           Name10:[[tab]][[var10]].") \
>           into field "listsVars"
>
> I generally find it easiest to just write it the way I want it (no  
> spaces
> unless required), then put the square brackets around what needs to be
> evaluated into a string:
>
> Namea:tabvara.cr
> Name[[a]]:[[tab]]var[[a]].[[cr]]
>
> Of course the other beauty of merge() is that merge() inside a merge()
> allows you to build dynamic variables and evaluate them, such as in  
> a repeat
> loop. The following does the same as above, just a lot less code.
>
> repeat for each item a in listOfTen
> put merge("Name[[a]]:[[tab]][[" & merge("[[var&a]]") & "]].[[cr]]")  
> after
> field "listsVars"
> end repeat
>
> HTH
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list