Try this? Untested but should work. (The untested part is the first handler -- the offsets() function I have been using for years.)

on mouseup
   set the useUnicode to true
   put numtochar(57888) into targetChar
   put the unicodetext of fld "FIRST" into uText
   put offsets(targetChar,uText) into offsetList
   if offsetList = 0 then exit mouseup
   repeat for each item i in offsetList
      put char i+1 of uText & targetChar into \
                 char i to i+1 of uText
   end repeat
   set the unicodetext of fld "FIRST" to uText
end mouseup

function offsets str,cntr
   -- returns a comma-delimited list
   -- of all the offsets of str in cntr
   if str is not in cntr then return 0
   put "" into offsetList
   put 0 into startPoint
   repeat
      put offset(str,cntr,startPoint) into thisOffset
      if thisOffset = 0 then exit repeat
      add thisOffset to startPoint
      put startPoint & comma after offsetList
   end repeat
   delete last char of offsetList
   return offsetList
end offsets

-- Peter

Peter M. Brigham
pmb...@gmail.com
http://home.comcast.net/~pmbrig



On Apr 6, 2010, at 5:09 AM, Richmond Mathewson wrote:

I suppose it was inevitable . . .  :)

As I wrote yesterday, I found out how to search for and replace unicode characters
in a field:

on mouseUp
  set the useUnicode to true
if the unicodeText of fld "FIRST" contains (numToChar(57888) & numToChar(57999)) then
     get the unicodeText of fld "FIRST"
replace (numToChar(57888) & numToChar(57999)) with (numToChar(57999) & numToChar(57888)) in it
     set the unicodeText of fld "FIRST" to it
  end if
end mouseUp

which is jolly good, as far as it goes . . .

However; suppose I wish to search for all instances of numToChar(57888) in front of another unicode character
and move them so that they are behind that unicode character . . .

Let us imagine this sort of script: (where ? represents any, i.e. wildcard, unicode character)

on mouseUp
  set the useUnicode to true
if the unicodeText of fld "FIRST" contains (numToChar(57888) & ?) then
     get the unicodeText of fld "FIRST"
     replace (numToChar(57888) & ?)) with (? & numToChar(57888)) in it
     set the unicodeText of fld "FIRST" to it
  end if
end mouseUp

interestingly enough; on compiling in RunRev 4 it says that script is OK (mind you it says that
about lots of script that, on attempting to run, throw a "bluey"),

Well, Ha, Ha; it is OK insofar as it does nothing!
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to