Apple Script: rimuovi spazio / riga nella variabile

-1

Sto usando il applescript per raccogliere una perdita di numero da un sito web, e il mio script sta funzionando bene, ho solo un sacco di spazio e una linea tra il risultato che non riesco a capire come sbarazzarmi di .

set numbersList to my getInputByClass2("sortable numPersonId", 1)


to getInputByClass2(theClass) 
    tell application "Safari"
        set r to do JavaScript "var outPut=[]; var arr=document.getElementsByClassName('" & theClass & "');for (var i in arr) {outPut.push(arr[i].innerHTML)};outPut;" in document 1
    end tell
    return strings of r --- this remove all 'Missing Value' from a list of strings
end getInputByClass2

set goodresult to items 2 thru -1 of numbersList as string

set theText to goodresult
set {tid, AppleScript's text item delimiters} to {AppleScript's text item delimiters, " "}
set temp to text items of theText
set AppleScript's text item delimiters to " " -- or use " " if you want to delete spaces
set theText to temp as text
set AppleScript's text item delimiters to tid

il risultato sarà:

                                9990607901



                                8228210011



                                1555508116

quando mi aspetto di avere:  9990607901  8228210011
 1555508116

o 9990607901, 8228210011, 1555508116

    
posta Kevin 30.06.2016 - 09:05
fonte

1 risposta

1

Questo non è bello ma funziona-- puoi probabilmente ripulirlo. Ho commentato le cose così saprai cosa stavo facendo. Aggiungi questo alla fine del tuo script esistente - inizia con il risultato che stavi già ricevendo ("il testo").

Hai due problemi da pulire: righe vuote e spazi (spazi) su entrambi i lati di caratteri non vuoti. Lo script sotto si occupa di entrambi.

set the_new_list to {}
set the_new_string to ""

-- starting with your current result-- "theText"

--the below was practice
--set theText to "    
--      9990607901
--
--
--
--                                8228210011     
--
--
--
--                                1555508116
--"

-- put the text into a list
set the_paragraphs to paragraphs of theText

-- loop through the items in the list
repeat with a_paragraph in the_paragraphs
    set the_new_string to ""
    set my_string to a_paragraph as string
    -- check for blank lines and skip/discard
    if my_string is "" then
        --do nothing
    else
        -- check for blanks surrounding non-blanks and remove
        repeat with a_character in (characters of my_string)
            if text of a_character = " " then
                --do nothing
            else
                set the_new_string to (the_new_string & text of a_character)
            end if
        end repeat
        -- now we have a clean, non-blank item for our new list
        if the_new_string is "" then
            --do nothing
        else
            set end of the_new_list to the_new_string
        end if
    end if
end repeat
--
set text_for_the_clipboard to ""
repeat with an_item in the_new_list
    set text_for_the_clipboard to text_for_the_clipboard & text of an_item & return
end repeat
set the clipboard to text_for_the_clipboard

Buona fortuna. Questo dovrebbe farlo per te.

    
risposta data 14.07.2016 - 03:18
fonte

Leggi altre domande sui tag