0 votes

AppleScript a ajouté une valeur dans le texte

Disons que j'ai le fichier texte suivant :

  1. DEMO

  2. TEXTE 1

  3. TEXT2

  4. DEMO

  5. etc....

  6. DEMO

  7. TEXTE 1

  8. TEXT2

  9. DEMO

  10. etc....

  11. DEMO

  12. TEXTE 1

  13. TEXT2

  14. DEMO

  15. etc....

Je voudrais ajouter du texte entre le premier TEXT1 et le TEXT2 (ligne 2/3).

ainsi le texte serait comme :

  1. DEMO

  2. TEXT1 MON TEXTE ICI

  3. TEXT2

  4. DEMO

  5. etc....

  6. DEMO

  7. TEXTE 1

  8. TEXT2

  9. DEMO

  10. etc....

  11. DEMO

  12. TEXTE 1

  13. TEXT2

  14. DEMO

  15. etc....

Je sais comment je peux filtrer le texte pour obtenir la valeur de n'importe quel texte qui serait là avec le code ci-dessous, mais comment puis-je ajouter du texte dans mon fichier texte à cet endroit ?

property leftEdge1 : "2. TEXT1"
property rightEdge1 : "3. TEXT2"
set myNewCaseNote to ""
set newFile to (path to desktop folder as text) & "_Note_Backup.txt"
set theSource to read file newFile
set theText to Unicode text
try
    set saveTID to text item delimiters
    set text item delimiters to leftEdge1
    set classValue to text item 2 of theSource
    set text item delimiters to rightEdge1
    set myCaseNote to text item 1 of classValue
    set text item delimiters to saveTID
    myCaseNote
end try

1voto

William T Froggard Points 5321

Le traitement du texte doit être fait avec le shell script. En général, cela peut être fait en une seule ligne courte :

sed 's;^[^0-9]*2 TEXT1;& MY TEXT HERE;' text_file.txt

En supposant qu'il n'y avait pas un problème d'indentation ci-dessus. En se basant sur ce que vous semblez vouloir dire, voici une autre solution :

sed 's;^[^0-9]*2 TEXT1;&\'$'\n'' MY TEXT HERE;' text_file.txt

AppleScript n'est pas le bon outil pour ce travail.

1voto

Trung Points 458

Comme la réponse précédente l'a expliqué, il existe de meilleures façons de faire ce que vous voulez, mais si vous voulez le faire en utilisant AppleScript, vous pouvez le faire avec une version modifiée de ceci :

on SearchAndReplace(SearchString, ReplaceString, SearchIn)
    set text item delimiters to SearchString
    set temp to text items of SearchIn
    set text item delimiters to ReplaceString
    set z to temp as string
    set text item delimiters to ""
    return z
end SearchAndReplace

on run
    set OriginalFullText to "DEMO
TEXT1
TEXT2
DEMO
etc....
DEMO
TEXT1
TEXT2
DEMO
etc....
DEMO
TEXT1
TEXT2
DEMO
etc...."

    set test to "TEXT1
TEXT2"
    set Text1 to "TEXT1"
    set Text2 to "TEXT2"
    set MyText to Text1 & " My Text Here" & return & Text2
    set Text2 to my SearchAndReplace(test, MyText, OriginalFullText)
end run

J'espère que cela vous aidera.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X