Ho una variabile di testo della classe text
che mostra qualcosa di simile quando viene restituito:
"
This is sentence 1.
This is sentence 2.
This is sentence 3.
This is sentence 4."
Voglio poter eliminare righe specifiche dal testo, senza influire sul resto della variabile.
Ad esempio: delete {1, 3}
per ottenere questo risultato:
"This is sentence 1.
This is sentence 3.
This is sentence 4."
Il metodo descritto in questa risposta ha un bug grave:
< em> "Come eliminare una riga specifica di un paragrafo in AppleScript?"
Il metodo collegato per eliminare le righe in un paragrafo converte effettivamente tutti i linefeed nella variabile text in resi. In altre parole, è impossibile eseguire questo codice più di una volta sulla stessa variabile.
Ad esempio, il seguente codice:
set varText to "
This is sentence 1.
This is sentence 2.
This is sentence 3.
This is sentence 4."
set varText to do shell script "sed -e '1d;3d' <<< " & quoted form of varText
-- Employing the same method on the same variable:
set varText to do shell script "sed -e '1d;3d' <<< " & quoted form of varText
return varText
ritorna
""
Poiché questo metodo funziona correttamente solo se le righe della variabile di testo sono il prodotto di una linefeed
(come dovrebbe), il problema è non che questo il metodo non riesce a percepire return
come una nuova riga (come avevo originariamente affermato in questa domanda). Il problema è che questo codice introduce un return
alla variabile text in primo luogo.
Quindi, voglio una soluzione che mi permetta di eseguire la stessa variabile di testo attraverso la soluzione più di una volta nello stesso AppleScript.
In altre parole, sto cercando un metodo per rimuovere una linea specifica da un paragrafo che non ha questo bug e non inserisce un return
in nessuna parte del testo.