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

exakte suche im Filemaker mit applescript?

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Raimo
•-->
•-->


Anmeldedatum: 20.08.2003
Beiträge: 111

BeitragVerfasst am: 30.09.2003 - 14:14    Titel: exakte suche im Filemaker mit applescript? Antworten mit Zitat

ich möchte, das filemaker nur genau die einträge findet, die im feld Ursprungssprache den EXAKT(jedes zeichen genau gleich) gleichen inhalt hat wie er text in der variable gesuchterText.

tell database "Wort DB"
set gefundenerEintrag to cell "TextNr" of (every record whose cell Ursprungssprache is equal to gesuchterText)
end tell

so gesucht, werden alle einträge gefunden, die ähnlich sind.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Raimo
•-->
•-->


Anmeldedatum: 20.08.2003
Beiträge: 111

BeitragVerfasst am: 30.09.2003 - 15:01    Titel: Antworten mit Zitat

so ginge es:

set Ursprungssprache to "Text_DE"
set gesuchterText to "Gerät ziehen Netzstecker."
set Nummer to {}

tell application "FileMaker Pro"
activate
tell database "Wort DB"

-- Nummern aller gefundener record spreichern
set gefundenerEintrag to cell "TextNr" of (every record whose cell Ursprungssprache is equal to gesuchterText)

--Nur die Nummern behalten, die gleich lang sind wie gesuchterText
repeat with EinItem in (gefundenerEintrag as list)
set a to (cell Ursprungssprache of (every record whose cell "TextNr" is equal to EinItem))

if (count (a as string)) is equal to (count (gesuchterText as string)) then
set Nummer to Nummer & EinItem
end if
end repeat

-- Mit den noch übrigen eine Exakte(Zeichen für Zeichen) prüfung durchführen
set exaktheit to {}
set tempNummer to {}

if Nummer is not equal to {} then
repeat with eineNummer in Nummer
-- Inhalt des Records lesen
set einSatz to (cell Ursprungssprache of (every record whose cell "TextNr" is equal to eineNummer))

repeat with einBuchstabe from 1 to (count (einSatz as string))
--Jedes Zeichen prüfen
if item einBuchstabe of (einSatz as string) is equal to item einBuchstabe of (gesuchterText as string) then
set exaktheit to exaktheit & "Ja"
else
set exaktheit to exaktheit & "Nein"
end if
--Beim letzten Buchstaben eines Satzes bestimmen, ob exakt oder nicht
if einBuchstabe is equal to (count (einSatz as string)) then

if exaktheit does not contain "Nein" then
set tempNummer to tempNummer & eineNummer
end if

set exaktheit to {}
end if
end repeat
end repeat

set Nummer to tempNummer

--Wenn Nummer nun leer
if Nummer = {} then
display dialog "Kein Exakt gleichen Eintrag gefunden!" buttons {"Abbruch"} default button {"Abbruch"} with icon stop
end if

--Wenn immer noch mehr als ein Eintrag vorhanden, heisst dies.....(siehe display dialog)
if (count (Nummer)) > 1 then
set altDelimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to " "
set Nummer to Nummer as string
set AppleScript's text item delimiters to altDelimiter
display dialog "Die DB enthält 2 oder mehr exakt gleiche Einträge. Sie müssen dies bereinigen bevor Sie weiterfahren können! Es sind die Einträge " & Nummer buttons {"Abbruch"} default button {"Abbruch"} with icon stop
end if
end if
end tell
end tell



Arrow aber sagt mir bitte, dass es einfacher geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 30.09.2003 - 18:24    Titel: Antworten mit Zitat

Hallo Raimo,

FileMaker sucht den exakten Text, wenn dieser zwischen Anführungszeichen steht. Du brauchst also nur die Anführungszeichen bei der Suche mit zu übergeben, dann sollte es klappen.

set gesuchterText to "\"Gerät ziehen Netzstecker.\""

Und dann am besten eine FileMaker-Suche per Skript starten.
Ich weiß ja nicht, welche Version von FileMaker du hast. Ich habe hier die Developer 5.5 und kann damit für OS X kein Skript schreiben, das "whose" verwendet. Das führt nämlich sofort zum Beenden von FileMaker.

Wenn exakte Übereinstimmung gefragt ist, wäre es auch nicht schlecht, solche Suchabfragen in einen considering-Block zu stecken.

considering case
-- Vergleich
end considering


So wird zum Beispiel die Groß-/Kleinschreibung auch unterschieden.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 01.10.2003 - 09:45    Titel: Antworten mit Zitat

Aber so wie ich Deine Frage verstehe, suchst Du nicht Text Exakt (der Terminus bezieht sich auf ganze Worte, d.h. Text Exakt findet "Hinz" im Feldwert "Hinz und Kunz") sondern "Feldinhaltsübereinstimmung". Dazu nutzt FMP den Operator ==. Und ohne FMP Suchabfrage geht es leider nicht (new request)! Der AS-Terminus "every record whose cell usw. funzt da nicht.

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Raimo
•-->
•-->


Anmeldedatum: 20.08.2003
Beiträge: 111

BeitragVerfasst am: 01.10.2003 - 10:47    Titel: Antworten mit Zitat

wie komme ich den mit einem request auf die einträge die gefunden wurden? so funktionierts nicht

tell application "FileMaker Pro"
activate
tell database "Wort DB"
delete every request
create new request
set cell Ursprungssprache of request 1 to "==" & gesuchterText
find
Arrow set gefundenerEintrag to cell "TextNr" of every record of request 1
end tell
end tell
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Raimo
•-->
•-->


Anmeldedatum: 20.08.2003
Beiträge: 111

BeitragVerfasst am: 01.10.2003 - 10:52    Titel: Antworten mit Zitat

habs selbst herausgefunden Smile

tell application "FileMaker Pro"
activate
tell database "Wort DB"
delete every request
create new request
set cell Ursprungssprache of request 1 to "==" & gesuchterText
find
Arrow von hier nach unten verschoben & of request 1 entfernt
end tell
Arrow set gefundenerEintrag to cell "TextNr" of every record
end tell
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Raimo
•-->
•-->


Anmeldedatum: 20.08.2003
Beiträge: 111

BeitragVerfasst am: 01.10.2003 - 10:59    Titel: Antworten mit Zitat

@ Folker und Snow
THX vielmals Smile
diese lösung ist doch viiiel schöner und einfacher (ich versuche auch immer das rad neu zu erfinden Rolling Eyes )

Question noch ne keine frage, was ist den nun besser "\"Gerät ziehen Netzstecker.\"" oder == ? es sollen nur die EXAKTEN (gleich lang/ gleicher buchstabe am selben ort/ jedoch ist die gross kleinschreibung egal) gefunden werden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 01.10.2003 - 12:38    Titel: Antworten mit Zitat

Wie ich schon schrieb: Die Anführungszeichen finden Text Exakt, d.h. "Hinz" wird im Feldwert Hinz und Kunz fündig, nicht aber im Feldwert Hinze und Kohl! Das hat mit den indizierten 20 Zeichen je Wort was zu tun.
Feldinhaltsübereinstimmung findet nur Felder mit identischem Inhalt, wobei Groß- und Kleinschreibung keinerlei Einfluss hat: ==a findet auch A.

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum 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