[GastForen Programmierung/Entwicklung AppleScript Inhalt einer Variablen durchsuchen und bestimmte Zeichen ersetzen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Inhalt einer Variablen durchsuchen und bestimmte Zeichen ersetzen

mcrudi
Beiträge gesamt: 29

16. Nov 2017, 10:22
Beitrag # 1 von 7
Bewertung:
(7459 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
ist vielleicht eine leichte Frage, aber ich habe noch nichts passendes gefunden.
Ich würde gerne den Inhalt einer Variablen nach bestimmten Zeichen durchsuchen, um diese zu entfernen. Z.B. LF oder CR (Zeilenschaltungen)
Hat da jemand eine Lösung für?
Vielen Dank,

Mcrudi
X

Inhalt einer Variablen durchsuchen und bestimmte Zeichen ersetzen

Hans Haesler
  
Beiträge gesamt: 5826

16. Nov 2017, 10:43
Beitrag # 2 von 7
Beitrag ID: #560721
Bewertung:
(7455 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mcrudi,

welcome back im HDS-AppleScript-Forum! :-)

Würdest Du bitte näher beschreiben, was geschehen soll?
Ist die Variable im Script definiert? Und enthält das Ergebnis einer Text- oder Grep-Suche in einem InDesign-Dokument?

Gruss, Hans


als Antwort auf: [#560720]

Inhalt einer Variablen durchsuchen und bestimmte Zeichen ersetzen

mcrudi
Beiträge gesamt: 29

16. Nov 2017, 10:54
Beitrag # 3 von 7
Beitrag ID: #560722
Bewertung:
(7451 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
ja, länger nicht geschrieben. ;-)
Also, folgendes Script:
Code
-- die var auftraggeber kommt aus einer Exceltabelle und enthält viele character 13 
-- character 13 habe ich in eine var retChar definiert
set myString to auftraggeber as string
if myString contains retChar then
display dialog "Ist enhalten" buttons ("OK") default button 1 -- trifft zu
else
display dialog "Ist nicht enthalten" buttons ("OK") default button 1
end if


Wie die siehst, habe ich schon herausgefunden, wie ich das Zeichen ermittele. Jetzt will ich das aber nicht nur
erkennen, sonder durch " " ersetzen. Oder auch " - " das ist egal.

Viele Grüße,

Norbert


als Antwort auf: [#560721]

Inhalt einer Variablen durchsuchen und bestimmte Zeichen ersetzen

Hans Haesler
  
Beiträge gesamt: 5826

16. Nov 2017, 11:05
Beitrag # 4 von 7
Beitrag ID: #560723
Bewertung:
(7448 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Norbert,

okay ... Excel ... Angenommen, es gelingt, die Returns aus dem Ergebnis zu entfernen. Was geschieht als nächstes? Muss der gereinigte String in eine Datei gespeichert werden? Oder wieder in der Excel-Datei eingefügt werden?

Gruss, Hans


als Antwort auf: [#560722]

Inhalt einer Variablen durchsuchen und bestimmte Zeichen ersetzen

mcrudi
Beiträge gesamt: 29

16. Nov 2017, 11:13
Beitrag # 5 von 7
Beitrag ID: #560724
Bewertung:
(7445 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

das mit Excel habe ich schon alles soweit stehen. Wenn das Ding läuft, kann ich es auch gerne hier posten.
Die verschiedenen Felder aus Excel schreibe ich zur Zeit in eine .txt Datei.
Ich hätte nur gerne die Zeilenschaltungen aus den einzelnen Strings raus.

Ich baue mir aus allen ermittelten Daten eine Variable blog2text und schreibe Sie in die Textdatei.

Code
 
set Datei to (path to desktop) & "test.txt" as string
set referenzNummer to open for access Datei with write permission
write blog2text to referenzNummer
close access referenzNummer


Gruß,

Norbert


als Antwort auf: [#560723]

Inhalt einer Variablen durchsuchen und bestimmte Zeichen ersetzen

Hans Haesler
  
Beiträge gesamt: 5826

16. Nov 2017, 11:37
Beitrag # 6 von 7
Beitrag ID: #560725
Bewertung:
(7436 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Norbert,

ich habe in der ersten Zelle eines Excel-Dokuments testtesttest eingeben und zwischen den tt je einen Return eingefügt.

Dann mit diesem Script versucht, die Returns aus dem Ergebnis zu entfernen:

Code
set retChar to ASCII character 13 

tell application "Microsoft Excel"
tell workbook 1
tell sheet 1
set testString to value of cell 1 of row 1
end tell
end tell
end tell

if testString contains retChar then
display dialog "Ist enhalten" buttons "OK" default button 1 with icon 2 -- trifft zu
else
display dialog "Ist nicht enthalten" buttons "OK" default button 1 with icon 1
end if

set AppleScript's text item delimiters to return
set tempString to every text item of testString
set AppleScript's text item delimiters to {""}
set defString to tempString as string

if defString contains retChar then
display dialog "Ist enhalten" buttons "OK" default button 1 with icon 2 -- trifft zu
else
display dialog "Ist nicht enthalten" buttons "OK" default button 1 with icon 1
end if

Es funktioniert. Bei Dir auch?

Ratschlag: Bei der Benennung von Variablen nicht die Vorsilbe my verwenden.
Sollte nur als reservierter Ausdruck – von Leerschlägen eingefasst – benutzt werden.

Gruss, Hans


als Antwort auf: [#560724]

Inhalt einer Variablen durchsuchen und bestimmte Zeichen ersetzen

mcrudi
Beiträge gesamt: 29

16. Nov 2017, 12:00
Beitrag # 7 von 7
Beitrag ID: #560728
Bewertung:
(7433 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

du hast es mal wieder gelöst. Toll.
Und Danke.

Hier mal mein restlicher Code:
Code
-- öffne eine Excel Datei (vom Kunden geliefert) 
set theWorkbookFile to choose file with prompt "Bitte wählen Sie eine Excel-Datei aus: "
set theWorkbookName to name of (info for theWorkbookFile)
tell application "Microsoft Excel"
open theWorkbookFile
set theWorkbook to workbook theWorkbookName
tell sheet 1
-- nur diese Felder auslesen
set inhalt to value of (range "B3:B28")
set spalteD to value of (range "D3:D4")
end tell
end tell
-- Feldinhalte aus Liste in Variablen speichern
copy 1st item of inhalt to auftraggeber
copy 1st item of spalteD to kostenstelle
copy 2nd item of inhalt to fAnsprechpartner
set ansprechpartner to fAnsprechpartner as string
copy 2nd item of spalteD to telefon
copy 3rd item of inhalt to mailBefore
set mailAfter to "@bistum-essen.de"
set mailAdresse to mailBefore & mailAfter as string
copy 6th item of inhalt to menge
copy 7th item of inhalt to seiten
copy 8th item of inhalt to format
copy 9th item of inhalt to doppelseitig
copy 10th item of inhalt to farbe
copy 11th item of inhalt to deckblatt
copy 13th item of inhalt to lochung
copy 14th item of inhalt to bindung
copy 15th item of inhalt to falzen
copy 17th item of inhalt to lieferungAn
copy 18th item of inhalt to probeexemplar
copy 19th item of inhalt to lieferdatum
copy 21st item of inhalt to briefumschlag
copy 25th item of inhalt to nameVorlage
set lieferdatumString to lieferdatum as string
copy last item of inhalt to besonderheit
set retChar to ASCII character 13

-- char13 (Return) aus Textdatei entfernen
set tempAuftraggeber to auftraggeber as string
if tempAuftraggeber contains retChar then
set AppleScript's text item delimiters to return
set tempString to every text item of tempAuftraggeber
set AppleScript's text item delimiters to {" "}
set nAuftraggeber to tempString as string

--display dialog tempAuftraggeber
end if
-- Textvariable für neue .txt Datei erstellen
set blog2text to nAuftraggeber & retChar & ansprechpartner & retChar & telefon & retChar & kostenstelle & retChar & mailAdresse & retChar & menge & retChar & seiten & retChar & format & retChar & doppelseitig & retChar & farbe & retChar & deckblatt & retChar & lochung & retChar & bindung & retChar & falzen & retChar & lieferungAn & retChar & probeexemplar & retChar & lieferdatumString & retChar & briefumschlag & retChar & nameVorlage & retChar & besonderheit

-- neue .txt Datei schreiben
set Datei to (path to desktop) & "test.txt" as string
set referenzNummer to open for access Datei with write permission
write blog2text to referenzNummer
close access referenzNummer


Ist vielleicht etwas zu lang, funktioniert aber. Die Exceltabelle ist leider etwas verbaut und kann deshalb nicht als .csv verwendet werden.

Viele Grüße,

Norbert


als Antwort auf: [#560725]
X