Changing text properties in a field via the IDE

Bob Sneidar bobsneidar at iotecdigital.com
Tue May 19 11:13:47 EDT 2020


I had to write a function that returns only true ASCII printable characters because when I performed a drag/drop operation from a searchable PDF, I discovered that Acrobat puts all kinds of hidden characters in the text that really messes with LC. It’s a simple function:

FUNCTION cleanASCII pString, pModeList, pCustomList
   /*
   pModeList is a comma delimited list that may contain the following values:
   "lowercase,uppercase,numbers,tabs,newlines,returns,spaces,symbols,custom"
   If custom is used, then a third paramaeter containing allowed characters must be supplied.
   */
   IF pModeList is empty THEN
      put " 0-9a-zA-Z" into tAllowedChars
   END IF

   IF pModeList contains dash THEN replace dash with "/" & dash in pModeList

   REPEAT for each item pMode in pModeList
      put word 1 of pMode into pMode

      SWITCH
            break
         CASE "tabs" is in pMode
            put "\t" AFTER tAllowedChars
            break
         CASE "newlines" is in pMode
            put "\n" BEFORE tAllowedChars
            break
         CASE "returns" is in pMode
            put "\r" BEFORE tAllowedChars -- currently not working
            break
         CASE "spaces" is in pMode
            put " " AFTER tAllowedChars
            break
         CASE "numbers" is in pMode
            put "0-9" AFTER tAllowedChars
            break
         CASE "lowercase" is in pMode
            put "a-z" AFTER tAllowedChars
            break
         CASE "uppercase" is in pMode
            put "A-Z" AFTER tAllowedChars
            break
         CASE "symbols" is in pMode
            put "!#$%&'()*+,./:;<=>?@[\\_`{|}~^-" AFTER tAllowedChars
            break
         CASE pMode is "custom"
            put pCustomList AFTER tAllowedChars
            break
      END SWITCH
   END REPEAT

   put "[" & tAllowedChars & "]" into tMatchText

   REPEAT for each character  theChar in pString
      IF matchtext(theChar, tMatchText) is true THEN
         put theChar AFTER cleanString
      END IF
   END REPEAT

   return cleanString
END cleanASCII

Bob S


On May 19, 2020, at 5:37 AM, Graham Samuel via use-livecode <use-livecode at lists.runrev.com<mailto:use-livecode at lists.runrev.com>> wrote:

Yep, that was it! I had pasted some text from elsewhere. The text **looks** perfectly normal (and the count of characters is the same as in the visual representation of them, so none apparently hidden), but in some way it must mess up the functioning of the Property Inspector. As Ralph confirms, the initial text (in a Label Field, it’s just “Label:”) can be changed via the Property Inspector without being specifically selected - in fact you can’t select the ‘contents’ text in the Property Inspector display. So IMHO it’s a bug, if a minor one. Will report it, but I don’t expect a quick solution. Odd, though.

Thanks to Ralph and Richard

Graham



More information about the use-livecode mailing list