Text item delimiters in SnowLeopard's AppleScript

In SnowLeopard's AppleScript, the statement
set xxx to AppleScript's text item delimiters
is no longer recognized, i.e. "AppleScript's" and "text item delimiters" are nor longer recognized upon compilation.
This always worked before (and was recommended by Apple).
Can anyone indicate what has changed, please?

It was just the one line.
Actually, it does seem to work. I was misled by the fact that when I compiled in AppleScript Editor, the words "AppleScript" and "text item delimiters" did not change context coloring (i.e. did not seem to be recognized). I don't know why that should be. Execution was correct nevertheless.
Thanks

Similar Messages

  • Setting text item delimiters in Cocoa-Applescript App

    Does anyone know of a problem with text item delimiters in a Cocoa-Applescript App.  This is in Xcode 4.5.2 and  Mountain Lion
    the following code seems to fail  to set the text item delimeter  to + when I run it in Coca-AppleScript
    --  TSTAppDelegate.applescript
    --  Test Text item Delimiters
    --  Created by Frank Caggiano on 12/22/12.
    --  Copyright (c) 2012 Frank Caggiano. All rights reserved.
    script TSTAppDelegate
      property parent : class "NSObject"
              on applicationWillFinishLaunching_(aNotification)
      -- Insert code here to initialize your application before any files are opened
            tstTxtDel()
              end applicationWillFinishLaunching_
              on applicationShouldTerminate_(sender)
      -- Insert code here to do any housekeeping before your application quits
                        return current application's NSTerminateNow
              end applicationShouldTerminate_
        on tstTxtDel()
            set text item delimiters to "+"
            set d to "-s http://www.nietzschefamilycircus.com"
            set r to do shell script "curl  " & d & " | ~/Desktop/try.pl"
            display dialog "r is " & r
            set rr to every text item of r
            display dialog "rr " & rr
            display dialog "curl " & first text item of rr & " -o "
    end
    end script
    However if you put the tstTstDel() function in the Applescript editor it works as expected.
    The try.pl script is
    #!/usr/bin/perl
    $s ="";
    while (<>) {
        $s .= $_;
    $s =~ m{class="comic"(.*)<div class="footer">}si;
    ($link, $caption,$jj) = ($1 =~ m{<img src="(.*)" alt=.*class="quote">(.*)(</div>.*</div>)}si);
    print $link, "+", $caption, "\n";
    I know this worked in the past. The Coca-Applescript app was written at least as far back as Snow Leopard. The site I am parsing changed their format and I was updating the app as a means to learn the new Coca-Applescript environment.
    Any help appreciated

    OK found it, I needed to use
    set Applescript's text item delimiters to "+"
    instead of just
    set text item delimiters to "+"
    I suppose it is a scoping thing.

  • Linked list to string coercion doesn't use text item delimiters: bug?

    set AppleScript's text item delimiters to {"; "} -- well-known technique
    {1, -1, "c", "d"} as string -- curly braces specify a vector, delimiters work
    -- result: "1; -1; c; d"
    {1, -1, "c", "d"} as linked list as string -- if coerced to linked list, delimiters ignored
    -- result: "1-1cd"
    [1, -1, "c", "d"] as string -- square brackets specify a linked list, delimiters ignored
    -- result: "1-1cd"
    [1, -1, "c", "d"] as vector as string -- coercing linked list to vector first works
    -- result: "1; -1; c; d"

    Hello
    It appears that linked list to string coercion does not respect the AppleScript's text item delimiters which are set to list of Unicode text. (Unicode TIDs have no effects in coercion as if it were set to {""})
    I can confirm this behaviour in both AppleScript 1.8.3 (OS9) and 1.9.1 (OSX10.2.8) at hand.
    So it has been as such for a long time. Bug I'd call it.
    By the way, although this is not the point, linked list is a historical residue and of little use in real scripting. After all, it is much slower than vector with appropriate coding. So we may always coerce it to vector without losing anything.
    Regards,
    H
    Linked list to string coercion & AppleScript's text item delimiters (TIDs).
    When AppleScript's TIDs are set to list of Unicode text,
    the TIDs have no effect in coercion from linked list to string as if they were set to {""}.
    set aa to [1, 2, "a", "b"]
    --set aa to {1, 2, "a", "b"} as linked list
    set t1 to list2text(aa, ";") -- "1;2;a;b" -- in pre-AppleScript 2.0
    set t2 to list2text(aa, ";" as Unicode text) --"12ab"
    return {t1, t2}
    on list2text(aa, delim)
    list aa : source list
    string delim : a text item delimiter
    return string
    local astid, astid0, t
    set astid to a reference to AppleScript's text item delimiters
    set astid0 to astid's contents
    try
    set astid's contents to {delim}
    --set t to aa as string
    --set t to aa as Unicode text
    set t to "" & aa
    set astid's contents to astid0
    on error errs number errn
    set astid's contents to astid0
    error errs number errn
    end try
    return t
    end list2text

  • Cocoa Applescript can't use AppleScript's text item delimiters

    Here is my code
    if (track_name_html as text) contains (publisher_name as text) then
                try
                    set s to track_name_html as text
                    set AppleScript's text item delimiters to "- "
                    set track_name1 to text item 2 of s
                    on error
                    set track_name1 to track_name_html as text
                end try
                else
                set track_name1 to track_name_html as text
            end if
            track_name_ui's setStringValue_(track_name as text)
    When I try to log track_name it returns blank. It's very important for my Cocoa-Applescript App.
    Thnaks in advance

    After looking documention I found insertText()
    Then I make a handler for quick insertion to text view
    on statusin(statustx)
            set my statuseditable to true
            set timetx to do shell script "date +'%H:%M'"
            status's insertText_(timetx & " - " & statustx & return)
            set my statuseditable to false
            end statusin

  • Text item delimiters

    I have a file name with this convention, a project code like such.
    AR123 smith, bob EM v1.mov
    I need to change the EM to AM.
    how do I do it. thanks for any help.

    There is a decent text item delimiters tutorial at MacScripter - you can replace text by breaking a string apart using one set of delimiters and putting it back together again using another. The following example will rename files using your example:
    <pre style="
    font-family: Monaco, 'Courier New', Courier, monospace;
    font-size: 10px;
    margin: 0px;
    padding: 5px;
    border: 1px solid #000000;
    width: 720px;
    color: #000000;
    background-color: #FFDDFF;
    overflow: auto;"
    title="this text can be pasted into the Script Editor">
    tell application "Finder" to repeat with SomeFile in (choose file with multiple selections allowed) -- get file(s)
    set TheName to name of SomeFile -- get the name
    considering case -- pay attention to the case of the text in the following statements
    set TempTID to AppleScript's text item delimiters -- save the current delimiter
    set AppleScript's text item delimiters to "EM" -- the text to replace
    set NewName to text items of TheName -- break the text apart at each delimiter
    set AppleScript's text item delimiters to "AM" -- the replacement text
    set NewName to NewName as text -- put the text back together with the delimiter
    set AppleScript's text item delimiters to TempTID -- restore the original delimiter
    end considering
    if NewName is not equal to TheName then -- rename if necessary
    tell application "Finder" to set the name of SomeFile to NewName
    end if
    end repeat
    </pre>

  • Last text item

    this does not work.
    I need to extract the name of the file dropped onto the droplet.
    can anyone help.
    on open the_files
    repeat with a_file in the_files
    tell application "Finder"
    set AppleScript's text item delimiters to {":"}
    -- display dialog a_file as string
    --set the_file to a_file as string
    get last text item of a_file as string
    display dialog a_file as string
    end tell
    end repeat
    end open

    I got this to work so the result gives me the just file name (AR155Scott, Bobby Full mix.png), now I need to extract out just the AR155 part of the file name. any help would be appreciated. Thanks.
    repeat with a_file in the_files
    tell application "Finder"
    set AppleScript's text item delimiters to {":"}
    set the_file to a_file as string
    set the_project to the last text item of the_file
    display dialog the_project as string -- AR155 Scott, Bobby Full mix.png
    --set the_project to last text item of a_file as string
    -- display dialog the_project as string
    end tell
    end repeat

  • Trying to make new text item in Pages 5.2 using Applescript

    I am trying to upgrade(?) from Pages 3 to Pages 5 and have a script that used to make a new document with text boxes. Previous line was:
      make text box with properties {object text:receiptDD, vertical position:6.9, horizontal position:2.7, height:0.5, width:1, extra space:0}
    Have the line changed to:
                                  make new text item with properties {object text:receiptDD, position:{6.9, 2.7}, height:0.5, width:1}
    but fails with error "Pages got an error: Don't know how to create TMAScriptInfoProxy" number -2763
    Not sure where to go from here,  searched various forums but cannot find a solution, any guidance gratefully received.

    Does your Photoshop menu bar have a 3D item? If not make sure you machine meets CC requirements and thatou GPU is enabled in you Photoshop preferences performance section

  • How to populate sequence in a text item in a form

    I have a text item in a form.I want that the doc_id i.e the text item should be automatically populated with the help of sequence.I have created sequence named seq_doc_id.on which trigger i should write the code so that everytime the doc_id gets incremented by one. What should be the code.Can anyone gv me some hint.Do i have to use the loop for this?Please help

    Hi,
    I implemented a when-new-block-instance that does just that,
    however due to navigation problems the trigger fires when it should not
    the result is I got holes in the sequence.
    Is there a system variable status to check with an If test
    to make sure the sequence is called only at inserting time?

  • Updating a value of a text item in a multi record block based on a change

    Hi,
    I need to change the value of a text item in a multi record block based on a change to another item's value in the same block.
    Suppose there's a text item in a multi record block called dt1 which is of type date, which is changed in a particular record. I want to change the values of the another item in the same multi record block, for all other records by running a loop through all the records in multi record block. I dont want to do it on the press of a button, it should do automatically on change. Help me resolve this issue.

    Hi,
    I need to change the value of a text item in a multi record block based on a change to another item's value in the same block.
    Suppose there's a text item in a multi record block called dt1 which is of type date, which is changed in a particular record. I want to change the values of the another item in the same multi record block, for all other records by running a loop through all the records in multi record block. I dont want to do it on the press of a button, it should do automatically on change. Help me resolve this issue.

  • Multiple values from database on a single text item

    i am trying to do the following
    on a single text item in a form
    (under form property pallete->records->number of items displayed is 5) run a triger "when-new-block-instance" with the following pl/sql statement
    declare
    menu_item VARCHAR2(35);
    begin
    select label into menu_item
    from menu_options;
    end;
    however, once i run the form it gives me
    WHEN-NEW-BLOCK-INSTANCE trigger raised unhandeled exception ORA-01422
    however, if in the pl/sql statement contains only
    begin
    execute querry;
    end;
    then it works fine
    The problem i beleive is the fact that the first querry retreives multiple values or recordset instead of A record.
    How can i go arond this and allow the form to list all the values in this form. Eventually i will need to add conditional SQL statments and that is why just execute querry will not work.
    Also, is there a way to dynamically assign a number to "number of records shown" property?
    All help is very much appreciated!
    null

    Hi, Marko
    I teach Forms, and I usually find a bad idea to use SQL statements directly (in particular when you can "make" Forms to do what you want).
    Inside PL/SQL, a SELECT..INTO statement is supposed to select a single row, otherwise an error occurs.
    EXECUTE_QUERY works.
    If by "conditional SQL statements" you mean restricted (filtered) queries, you don't need to write SQL to do this.
    You can set the DEFAULT_WHERE block property to a different value before using EXECUTE_QUERY, like:
    SET_BLOCK_PROPERTY('your_block', DEFAULT_WHERE, 'where menu_id > 100');
    And the answer to your second question is no, you cannot dynamically change the number of records a block is displaying.
    You can limit the number of records your block queries from the database table using Maximum Records Fetched block property (available in Forms 6 and above, not sure about Forms 5). However, this will only work as expected if you set Query All Records to Yes.
    Hope this helps,
    Pedro

  • Text items not being refreshed by LOV items.

    Hi all,
    I've got a strange LOV behavior problems which I cannot solve and require your valuable time and efforts.
    I've created a simple ADF JSF pages with 3 fields and the first field is LOV enabled. For all new row, after clicking the LOV icon, the LOV will show up and after selecting a particular value, it closes the LOV screen and replace it with a new row with the selected LOV data. It is all working well for all new rows just like a normal LOV should perform.
    But I had problem with existing data. The row which I selected from the LOV somehow cannot referesh and overwrite any existing row (visually) but after commiting the data, it was actually written and refreshed with the correct data. Is there a property in the JHeadstart Application Definition Editor where I enforce the text items to be refreshed by the LOV items?
    Thank you for your time and efforts.
    Kind Regards,
    John

    Hi Guys,
    I've performed the following scenarios attempting to refreshed Text items by the LOV Items.
    Scenario 1: Create a new column called some_key load unique number into it. Set this column as the primay key and deselect existing primary keys as key attributes. Also, I've created a sequence and some_key is of type of DBSequence getting value from the new sequence starting from 1.
    After generation when run and the result is:
    JBO-27022: Failed to load value at index 11 with java object of type oracle.jbo.domain.DBSequence due to java.sql.SQLException.
    ## Detail 0 ##java.sql.SQLException: Invalid column index
    Scenario 2: Create a unique index for the some_key column, rerun and the result is:
    JBO-27022: Failed to load value at index 11 with java object of type oracle.jbo.domain.DBSequence due to java.sql.SQLException.
    ## Detail 0 ##java.sql.SQLException: Invalid column index
    Scenario 3: Set some_key as number instead of DBSequence (from Entity Object Editor), rerun and the result is:
    JBO-27021: Failed to load CustomDatum value at index 11 with java object of type oracle.jbo.domain.Number due to java.sql.SQLException.
    ## Detail 0 ##java.sql.SQLException: Invalid column index
    Scenario 4: Deattach the offending View Object from the Application Module. Remove the offending view link and view object. Recreate view object and view link. Reset some_key is of type of DBSequence getting value from the new sequence starting from 1 (From the Entity Object Editor). After generation when run and result is:
    SUCCESSFULLY!!
    So, I guess the bottom line is here are the following things which you need to perform in order to enable text item to be refreshed by LOV item (if the detail table has composite primary keys)
    1.) Create a new column
    2.) Load unique value to it
    3.) Create unique index for it
    4.) Create entity object, view object and view link object.
    5.) Set the new column as primary key.
    6.) Deselect the key attributes for all composite primary key columns.
    Regards,
    John

  • [CS4][JS] Accessing skewed text items

    The following code snippet successfully finds all the skewed text in a
    document and then removes the skew:
    //Clear the find/change preferences.
    app.findTextPreferences = NothingEnum.nothing;
    app.changeTextPreferences = NothingEnum.nothing;
    //Set the find options.
    app.findChangeTextOptions.caseSensitive = false;
    app.findChangeTextOptions.includeFootnotes = false;
    app.findChangeTextOptions.includeHiddenLayers = false;
    app.findChangeTextOptions.includeLockedLayersForFind = false;
    app.findChangeTextOptions.includeLockedStoriesForFind = false;
    app.findChangeTextOptions.includeMasterPages = false;
    app.findChangeTextOptions.wholeWord = false;
    //Search the document for all the skewed text
    app.findTextPreferences.skew = 1;
    // now remove all skews
    app.changeTextPreferences.skew = 0;
    However, I want to access each fragment of skewed text rather than
    globally change them.
    How do I access the collection of skewed text items as the
    findTextPreferences does not seem to possess the required properties.
    TIA
    Doug Neale

    Hi Peter,
    I tried this on a single page document with some text set in italics:
    //Clear the find/change preferences.
    app.findTextPreferences = NothingEnum.nothing;
    app.changeTextPreferences = NothingEnum.nothing;
    //Set the find options.
    app.findChangeTextOptions.caseSensitive = false;
    app.findChangeTextOptions.includeFootnotes = false;
    app.findChangeTextOptions.includeHiddenLayers = false;
    app.findChangeTextOptions.includeLockedLayersForFind = false;
    app.findChangeTextOptions.includeLockedStoriesForFind = false;
    app.findChangeTextOptions.includeMasterPages = false;
    app.findChangeTextOptions.wholeWord = false;
    //Search the document for all the skewed text
    app.findTextPreferences.skew = 1;
    var myFound = app.activeDocument.findText();
    if (myFound.length==0) {
    alert("No skewed text was found");
    else {
    // ok we have some skewed text, now loop through each one
    for (i =0; i < myFound.length; i++) {
    var myTextObject = myFound[i];
    var myText = myTextObject.Content;
    and it always finishes up with the alert :-(
    and debug confirmed that myFound.length was zero.
    Should I be doing something else to find italic text?
    Regards,
    Doug Neale

  • Forms (V10G) - RunTime Text  Item -- Editor

    Hello:
    What are the available options to enhance forms runtime SYSTEM/DEFAULT editor for Text Items? We like to add spell checker, text format features in to field editor.
    I am sure there are Java based editors out there that Forms could invoke. I am hoping I am not the fist one with this requirement and someone may have done this. Perhaps could provide some input.
    Forms V 10G. (This posting is NOT about PL/SQL editor in Developer)
    Thanks

    Hello,
    You can use Webutil.You can call MS Word checkspell function.
    Check this:
    http://sheikyerbouti.developpez.com/webutil-docs/fichiers/Webutil_store_edit_docs.pdf
    Cheers,
    Suresh

  • Chart and text items are not synchron

    hi all,
    i am a newbie in apex 4.0.
    i have two regions. the first shows a chart, based on pl/sql-code. second shows text items for possible filter an the current statement of the chart.
    when user clicks on a bar in the chart then
    1. i set the the first text item as filter,
    2. a pl/sql-code runs, build a sql statement, assign the sql statement string to the second text item and
    3. returns the statement for the chart.
    it works fine. the chart refresh. and the data i can see are correct.
    but the text items in the other region doesn't refresh.
    when i press "refresh"-button at browser level everything is fine. chart and text items fits together.
    what can I do to refresh all regions when the chart changes the sql-statment / User clicks?
    Is there any way to read out the current statement of a chart?
    thx in advance
    jogi
    Edited by: Jogi on 09.05.2011 12:31

    Bernd: the reason I asked about views is that you don't have any error messages. This might indicate that (a) you have no items in the view, or (b) there's something wrong with view-role-user assignment.
    To check for (a), please go to the published procurement catalog, and go to Views tab. Check that your View is Active. Click on your View ID link to display view details. You should see a list of characteristics assigned to your view in Assign Characteristics sub-tab (the list should not be blank!). Go to Assign Items sub-tab. Navigate in your schema to find items that are supposed to be assigned to your view. You should see "Yes" in the "Assigned" column for those products. If you don't, then you simply don't have any items in your view.
    Another thing I'd like you to check: when the user calls your procurement catalog for search, do you see the name of the catalog displayed just below the drop-down "Select Categories Hierarchically"?
    Cheers,
    Serguei

  • How to find the ID of the text item of the column in an tabular form

    Hello,
    I have created a tabular form report on emp table and made ONE OF THE COLUMN department_id as an text item using APEX_ITEM.TEXT APIs.
    My select query is
    select
    "EMPLOYEE_ID",
    "EMPLOYEE_ID" EMPLOYEE_ID_DISPLAY,
    "FIRST_NAME",
    "LAST_NAME",
    "HIRE_DATE",
    "JOB_ID",
    "SALARY",
    "MANAGER_ID",
    APEX_ITEM.TEXT(3,department_id,20,50,'readonly=true') department_id
    from "#OWNER#"."OEHR_EMPLOYEES"
    now how can i find the item ID?
    one more thing is that how would i reference this item in an javascript function.
    anyone plz help me out with this.
    thanks.

    Hi,
    Firstly, your link must include "this" to ensure that any javascript knows which link has been clicked. So, change:
    onclick="javascript:report();"to
    onclick="javascript:report(this);"Next, your javascript code must take this value and find the related DEPTNO item on the same row. The URL must pass to the popup page the name of the ID that needs to be updated - this is held in the f10 variable in the following script. This means that you popup page must be able to receive this value so that it can use it to update the DEPTNO item when a value is selected. Your popup page seems to be page number 4, so I will assume that you have a P4_ITEM_ID hidden item on that page for this purpose. So, the javascript on the main page would be something like:
    function report(x)
    var f10;
    var p = x.parentNode;
    while (p.tagName != "TR")
      p = p.parentNode;
    var inputs = p.getElementsByTagName("INPUT");
    var zz;
    for (zz = 0; zz < inputs.length; zz++)
      if (inputs[zz].name = 'f10')
       f01 = inputs[zz].id;
    var url;
    url = 'f?p=&APP_ID.:4:&APP_SESSION.::::P4_ITEM_ID:' + f10;
    var w = open(url,"winLov","Scrollbars=1,resizable=1,width=450,height=600");
    if (w.opener == null)
       w.opener = self;
    w.focus();
    }So, when the user clicks a link, the report() function is called and the object clicked is passed as a parameter. The script then starts from this object and goes up to the TR tag that the link is on. From here, it finds all INPUT items and then looks at those to find one that has a name attribute of "f10". When it finds it, it stores the ID of that in the "f10" variable. It then constructs a URL using this variable which is set into the P4_ITEM_ID hidden item on the popup page.
    I don't know what your javascript is on the popup, but it would need to get the value out of P4_ITEM_ID to see which main page item needs updating. This could be something like:
    function passBack(val)
      var id = $v('P4_ITEM_ID');
      opener.document.getElementById(id).value = val;
      window.close();
    }This script looks in the P4_ITEM_ID hidden item and gets its value - this will be the ID of the item to update on the main page. It then does the update and closes the popup.
    Andy

Maybe you are looking for