Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Armin Egginger •-->


Anmeldedatum: 04.05.2002 Beiträge: 96 Wohnort: Germering (b. München)
|
Verfasst am: 22.08.2002 - 18:39 Titel: QXP - Buchstabe mit ASCII-Nr. - in HTML-Code (Umlaute) erset |
|
|
Hi folks,
bin mal wieder mit FileMaker zu Quark beschaeftigt und habe eine saublöde Sperre in meinem Kopf. Das versuch ich schon seit 2 Tagen zu lösen - keine chance...brauch vielleicht einmal Urlaub...da dieser aber nicht ansteht frag ich euch mal nach Hilfe.
Die Daten werden schon richtig von FM übergeben und nun in QXP gesucht. Leider wird der anfangs richtige ASCII-Code bei der Frage auf eine andere Zahl gesetzt. z.B. ASCII-Code 138 wird auf "49" gesetzt..kapier ich nicht.
tell app QXP...
try
set every(character of every text box of document 1 where ASCII number it = VarASCIInr) to HTMLcode
end try
end tell
diese Ausführung klappt mit Schrift (Varfont) und Buchstabe (Varcharacter) einwandfrei. Aber mit ASCII nicht? wieso fragt sich ein verzweifelter...xxxx
Vielen Dank bereits jetzt fuer jegliche Art von Hilfe.
Wunderschöne Grüße aus Bayern
Armin |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 27.08.2002 - 21:01 Titel: QXP - Buchstabe mit ASCII-Nr. |
|
|
Hallo Armin,
so ganz verstehe ich nicht, was du da gerade machst.
Exportierst du Daten von FMP nach QXP, und dort soll noch die nötige HTML-Codierung stattfinden?
QXP habe ich nicht und kenne mich daher nicht damit aus.
Aber wäre es nicht möglich, dass du die HTML-Codierung schon in FM vornimmst. FM5 kann das, wenn man Web-Companion aktiviert. Dann steht dir bei den Formeln die Formel "Web-ToHTML" zur Verfügung.
Du legst also ein Formelfeld an mit Ergebniswert Text und darin steht dann folgendes:
Extern("Web-ToHTML";Feld-das-konvertiert-werden-soll)
Web-ToHTML kodiert nur die hohen ASCII-Zeichen also größer 127.
HTH _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Armin Egginger •-->


Anmeldedatum: 04.05.2002 Beiträge: 96 Wohnort: Germering (b. München)
|
Verfasst am: 07.09.2002 - 02:07 Titel: QXP - Buchstabe mit ASCII-Nr. |
|
|
Hi Snow,
vielen Dank für deine Hilfe. Ich sollte mich einfach ein bisschen präziser ausdrücken, um auch Hilfe zu bekommen - bei dieser Fragestellung von mir ist eigentlich nicht klar, was ich will - daher ein erneuter Versuch.
Problemstellung ist ein mehrseitiges Quark Dokument mit Spezialzeichen, dass für WebSeiten aufbereitet werden soll. Die Spezialzeichen sind teils mathematisch, physikalisch...., aber nur durch einen Spezialfont. Als Basis habe ich eine kleine FM-Datenbank mit der Font- / Buchstabenliste und den zugehörigen Austauschcode. Das funktioniert soweit mit der Funktion
every character of every text box of document 1 where it is "Buchstabe" and font is "Spezialfont"
jedoch wird die Groß-Kleinschreibung nicht berücksichtigt, obwohl ich den considering case vorangestellt habe. Dann habe ich versucht anstatt der "and font is" mit "and ASCII number is", jedoch ohne Erfolg, da die ASCII number nur auf eine TextVariable im Skript angewendet werden kann. Bei ca. 25 Seiten Text und ca. 10 auszutauschenden Zeichen wären die Schleifen extrem lange beschäftigt.
Jetzt versuche ich nur die Wörter die den gesuchten Buchstaben beinhalten in einer Liste zu sammeln und dann jedes einzelne Wort in ein Characterliste zu zerlegen und mit der gesuchten ASCII number zu vergleichen. Bei true will ich die Buchstaben mit dem neuen "Code" austauschen, das Wort wieder zusammenbauen und dann in Quark danach zu suchen und auszuwechseln. Bei der der Zusammensetzung des neuen Wortes häng ich im Moment.
Dein FileMaker Ansatz ist leichter, leider nur bei einer Vollversion von FileMaker und WICHTIG eingeschaltetem WebCompanion möglich. Ich wollte aber eventuell eine Runtime daraus machen, so dass kein FM nötig ist. Meistens ist auch der WebCompanion deaktiviert - ich weiß, kann man per Skript abfragen und einschalten - aber eben nur bei Vollversion!
Vielen Dank für deine Hilfe
Happy Filemaking
Armin |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 07.09.2002 - 09:00 Titel: QXP - Buchstabe mit ASCII-Nr. |
|
|
Hallo Armin,
bei einer Runtime-Version kannst du natürlich den WebCompanion vergessen. Zum Suchen & Ersetzen eine OSAX zu benutzen ist auch nicht so das Wahre. Aber mit Vanilla-AppleScript gibt es auch noch eine sehr gute Möglichkeit:
Suchen & Ersetzen mit Hilfe der text item delimiters. Dadurch wird das gesuchte Zeichen im gesamten Text in einem Rutsch ersetzt. Wenn du nur 10 Sonderzeichen ersetzen musst, brauchst du auch nur 10 Schleifendurchgänge. Das dürfte schnell genug funktionieren.
Ich habe hier mal einen entsprechenden Handler. Er stammt von Marc K. Myers:
(* Handler von Marc K. Myers
Benutzt Text Item Delimiters zum Ersetzen *)
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
Vielleicht versuchst du es mal damit.
Gruß _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 22.02.2003 - 15:22, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 07.09.2002 - 09:11 Titel: QXP - Buchstabe mit ASCII-Nr. |
|
|
Falls du es doch mal mit einer OSAX probieren möchtest, kann ich dir "Tanaka's OSAX" empfehlen. Sie arbeitet sehr schnell und du brauchst keine Schleife, da man der OSAX jeweils eine Liste mit Suchtext und Ersatztext übergibt.
MT Replace: Replace
MT Replace a list of string -- String or list of strings
search a list of string -- Search String
replace a list of string -- Replace String
(case sensitive boolean) -- Case-Sesitive Search? (default=false)
(only first hit boolean) -- replacing only 1st hit (match)
Result: string -- String or list of strings
Tanaka's OSAX gibt's halt nicht für OS X. Für Classic und OS X gäbe es die Satimage OSAX. Bei dieser ist jedoch wieder eine Schleife nötig, in der alle zu suchenden/ersetzenden Zeichen abgearbeitet werden.
change: replace all occurences of a substring
change plain text -- the substring to search for (or a result of re_compile for advanced use of regexp)
into plain text -- the replacement string
in anything -- a string or a file path
(case sensitive boolean) -- default true
(regexp boolean) -- default false
(regexpflag a list of plain text) -- default { "EXTENDED","NEWLINE" }
Result: anything -- the new string if the "in" parameter is a string, otherwise the list { number of hits, offset of the last replace }
Jetzt hast du die Qual der Wahl!
Gruß _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 22.02.2003 - 15:23, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Armin Egginger •-->


Anmeldedatum: 04.05.2002 Beiträge: 96 Wohnort: Germering (b. München)
|
Verfasst am: 07.09.2002 - 11:01 Titel: QXP - Buchstabe mit ASCII-Nr. |
|
|
Hi Snow,
vielen Dank für deine Antworten. Werd mich gleich mal daran zu schaffen machen und das mit dem Handler probieren. Meine Lösung sollte ohne zusätzliche OSAXEN auskommen, da die nicht immer installiert sind und auch mehr falsch laufen kann.
Nochmals vielen Dank für deine Tipps - tiefe Verbeugung.
Happy FileMaking
Armin |
|
Nach oben |
|
 |
Armin Egginger •-->


Anmeldedatum: 04.05.2002 Beiträge: 96 Wohnort: Germering (b. München)
|
Verfasst am: 07.09.2002 - 14:11 Titel: QXP - Buchstabe mit ASCII-Nr. |
|
|
Hi,
ich habe nun zuerst meine Schleifenart realisiert und festgestellt, dass ich in Quark nicht nach Groß-/Kleinschreibung suchen kann. Mein Skript funktioniert soweit, da es nun nach Wörter und nicht nur nach Buchstaben sucht. Funkt aber nur, solange kein Umlaut alleine steht - hier wird nämlich nicht nach Groß-/Kleinschreibung unterschieden - warum nicht? Das wäre so einfach mit einer einzigen Zeile alles auszutauschen, ohne Listen. So ein shi..... Ich poste mal das Script hier
global NamList
global BuchstNr
global VarBuchstabe
global NewWord
global NewWordList
global zaehler
--Variablen in GlobaleVariablen setzen
property NamList : {}
property NewWord : ""
property NewWordList : {}
property zaehler : "1"
--Voreinstellungen der Variablen
tell application "QuarkXPressô"
open file "Schockoflocke:Desktop Folder:xchange folder:AStest" use doc prefs yes remap fonts no
considering case
set NamList to (every word of every text box of document 1 where it contains ("Ö" as text))
copy NamList to NewWordList
set ASCIINr to ASCII number of "Ö"
repeat with y from 1 to (count every item of NamList)
set wordlist to every character of item y of NamList as list
repeat with i from 1 to (count every item of wordlist)
set VarBuchstabe to item i of wordlist
set VarASCIINr to ASCII number of VarBuchstabe
if ASCIINr is VarASCIINr then
set NewWord to NewWord & "Ö"
else
set NewWord to NewWord & VarBuchstabe
end if
end repeat
set item y of NewWordList to NewWord
--display dialog item y of NewWordList as string
set NewWord to ""
get NewWordList
end repeat
end considering
repeat with z from 1 to (count every item of NamList)
try
considering case
set (every word of every text box of document 1 where it is (item z of NamList as text)) ¨
to (item z of NewWordList as text)
end considering
end try
end repeat
end tell
Der considering teil kann rausgenommen werden, da die "every" Funktion wohl hier keine Rücksicht darauf nimmt.
Ich versuche noch andere Lösungswege - muss aber nochmals bei Quark nachsehen, ob es nicht doch eine Möglichkeit gibt - Groß-/Kleinschreibung bei Buchstaben zu unterscheiden.
Happy Filemaking
armin |
|
Nach oben |
|
 |
|
|
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
|
|
|