Apple Script: Eliminar espacio / línea en la variable

-1

Estoy utilizando applecript para recopilar un número perdido de un sitio web, y mi script funciona bien, solo obtengo mucho espacio y una línea entre el resultado del cual no puedo descubrir cómo deshacerme de él. .

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

el resultado será:

                                9990607901



                                8228210011



                                1555508116

cuando espero tener:  9990607901  8228210011
 1555508116

o 9990607901, 8228210011, 1555508116

    
pregunta Kevin 30.06.2016 - 09:05

1 respuesta

1

Esto no es hermoso pero funciona, probablemente puedas limpiarlo. Comenté cosas para que sepas lo que estaba haciendo. Agregue esto al final de su secuencia de comandos existente; comience con el resultado que ya estaba obteniendo ("theText").

Tiene dos problemas para limpiar: líneas en blanco y espacios en blanco (espacios) a cada lado de los caracteres que no están en blanco. El siguiente script se ocupa de ambos.

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

La mejor de las suertes. Esto debería hacerlo por ti.

    
respondido por el Christian Boyce 14.07.2016 - 03:18

Lea otras preguntas en las etiquetas