Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Programm: AppleScript - Funktion: suchen/ersetzen

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 28.04.2003 - 17:33    Titel: Programm: AppleScript - Funktion: suchen/ersetzen Antworten mit Zitat

Beschreibung:
Um alle Vorkommen eines bestimmtes Zeichens oder einer Zeichenfolge in einem Text auf einen Rutsch durch ein anderes Zeichen/Zeichenfolge zu ersetzen, braucht man nicht unbedingt die Hilfe einer Scripting Addition. Allein mit AppleScript-Mitteln ist dies machbar.

Code:

set myText to "Dieser Text möchte gern ohne ö's auskommen können."
set mySearch to "ö"
set myReplace to "oe"

textReplace(myText, mySearch, myReplace)

--
----------------------------------------------------------------------------

on textReplace(theText, srchStrng, replStrng)
tell (a reference to AppleScript's text item delimiters)
set { od, contents } to { contents, { srchStrng } }
try
set { textList, contents } to { (text items of theText), { replStrng } }
set { newText, contents } to { (textList as text), od }
return item 1 of result
on error errMsg number errNbr
set contents to od
error errMsg number errNbr
end try
end tell
end textReplace



Anmerkung: Der 'textReplace'-Handler stammt in dieser Form von Marc K. Myers. Er ist zwar nicht besonders leicht zu verstehen, dafür ist der Code jedoch recht kompakt und effizient.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 07.05.2005 - 12:09, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Armin Egginger
•-->
•-->


Anmeldedatum: 04.05.2002
Beiträge: 96
Wohnort: Germering (b. München)

BeitragVerfasst am: 10.05.2003 - 16:14    Titel: Eine weitere Möglichkeit Antworten mit Zitat

Hi Scripter,

ich hab hier mal andere Möglichkeiten, die Buchstaben auszutauschen.

Dieses Script tauscht die einzelnen Buchstaben
- im ASCII Code gekennzeichnet oder
- als direkter Buchstabe gekennzeichnet
gegen einen eingestellten Buchstaben aus. Der erste Teil ist mit Schleife, so daß auch gleich mehrere Buchstaben ausgetauscht werden. Der Handler ist auch bei mehreren Aufrufen in verschiedenen Stellen des Skripts sinnvoll.

Code:

set xEmail to "DerTester <info@derTester.de>"
-- 62, 60, 64 sind die größer/kleiner und das @ Zeichen
set charList to {62, 60, 64}
-- 32, 32, 45 sind Leerzeichen und Bindestrich
set cList to {32, 32, 45}
repeat with n from 1 to (count every item in charList)
   set prevTID to AppleScript's text item delimiters
   set AppleScript's text item delimiters to ASCII character (item n of charList)
   set xEmail to text items of xEmail
   set AppleScript's text item delimiters to ASCII character (item n of cList)
   set xEmail to xEmail as text
   set AppleScript's text item delimiters to prevTID
end repeat
display dialog xEmail


-- oder als Handler

set xtex to "Ein Text, bei dem das -@- getauscht werden soll!"
set xChar to "@"
set xCharRepl to "at"
set xtex to TIDsearchReplace(xtex, xChar, xCharRepl) of me
display dialog xtex

on TIDsearchReplace(xtex, xChar, xCharRepl)
   set oldTID to AppleScript's text item delimiters
   set AppleScript's text item delimiters to xChar
   set xtex to text items of xtex
   set AppleScript's text item delimiters to xCharRepl
   set xtex to xtex as text
   set AppleScript's text item delimiters to oldTID
   return xtex
end TIDsearchReplace


Viel Spaß

Armin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Yahoo Messenger
ecco
•->
•->


Anmeldedatum: 05.11.2001
Beiträge: 9

BeitragVerfasst am: 31.03.2004 - 23:43    Titel: Antworten mit Zitat

hier noch meine version dazu:

Code:

on strReplace(source, findit, replaceit)
   set oldDelimiters to text item delimiters
   set text item delimiters to findit
   set output_list to {}
   repeat with i from 1 to count of text items of source
      set output_list to output_list & (text item i of source)
   end repeat
   set text item delimiters to replaceit
   set output to output_list as string
   set text item delimiters to oldDelimiters
   return output
end strReplace


und so sieht dann der aufruf aus:

Code:

strReplace("Hallo Fischer-Baden", "Baden", "Bayern")
return the result
-- result: "Hallo Fischer-Bayern"


ciao
ecco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Heiner
•-->
•-->


Anmeldedatum: 03.12.2005
Beiträge: 62
Wohnort: Moers

BeitragVerfasst am: 31.01.2006 - 22:28    Titel: Antworten mit Zitat

Zum besseren Verständnis von Snows Version vom 28.4.2003 (s.o.) habe ich hier einmal die einzelnen Zwischenergebnisse eingesetzt. (Gilt nur für die weniger Geübten, wie mich)


set myText to "Dieser Text möchte gern ohne ö's auskommen können."
set mySearch to "ö"
set myReplace to "oe"

textReplace(myText, mySearch, myReplace)

------------------------------------------------------------------------------

on textReplace(theText, srchStrng, replStrng)
tell (a reference to AppleScript's text item delimiters)
set {od, contents} to {contents, {srchStrng}}
-- Ergebnis: {{" "},{"ö"}}
try
set {textList, contents} to {(text items of theText), {replStrng}}
-- Ergebnis: {{"Dieser Text m", "chte gern ohne", "'s auskommen k", "nnen."}, {"oe"}}
set {newText, contents} to {(textList as text), od}
-- Ergebnis: {"Dieser Text moechte gern ohne oe's auskommen koennen.", {"oe"}}
return item 1 of result
-- Ergebnis: "Dieser Text moechte gern ohne oe's auskommen koennen."
on error errMsg number errNbr
set contents to od
-- Ergebnis: {"oe"}
error errMsg number errNbr
end try
end tell
end textReplace

Heiner
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter