FileMaker - Tip 105

 

Klik op om terug te keren naar het selectiemenu.

Tip 105 - Een e-mailadres uit een tekst isoleren

Iemand krijgt geregeld e-mailadressen toegezonden die midden in een doorlopende tekst staan. Hij haalt die adressen daar manueel uit via copy en plakt ze daarna in een veld E-Mail via paste. Nu wordt gevraagd: kan dit niet automatisch? Met andere woorden: kan ik een e-mailadres uit een doorlopende tekst filteren?

Gelukkig is het antwoord weer "ja", en we gebruiken hiertoe nog maar eens de Middle- en de Position-functie. Het volstaat eigenlijk het hoofdkenmerk van een e-mailadres te vinden, namelijk het @-teken en dan alle tekst vlak ervoor en vlak erna te nemen. Dat geeft een mooi e-mailadres. We moeten dus dat @-teken vinden, en dan de spatie ervoor en de spatie erna. Wat tussen die spaties staat is het e-mailadres. Zo eenvoudig is dat.

Eerst leggen we de functie Position uit. We gaan die immers gebruiken om ons @-teken op te sporen. Deze functie zoekt immers de positie, dus de plaats, waarop een bepaald teken of een bepaalde tekenreeks voor de eerste of zoveelste keer voorkomt geteld vanaf een bepaalde positie. Het FileMaker-voorbeeld is hier wel erg duidelijk: in de online help vertrekt men van het woord Mississippi.

Position(Mississippi,"is",1,1)

Dit geeft 2.

Waarom? Omdat de gezochte groep "is", als we beginnen te kijken vanaf positie 1 de eerste keer voorkomt op positie 2.

Position(Mississippi,"is",3,1)

Dit geeft 5.

Waarom? Omdat de gezochte groep "is", als we beginnen te kijken vanaf positie 3 de eerste keer voorkomt op positie 5.

Nu zoeken we naar de "s" wanneer die de tweede keer voorkomt vanaf positie 4:

Position(Mississippi, "s", 4, 2)

Dit geeft 7.

Waarom? Omdat de gezochte letter "s", als we beginnen te kijken vanaf positie 4 de tweede keer voorkomt op positie 7.

We zullen dus de functie Position gebruiken om de plaats van het @-teken te vinden.

 

Nu leggen we Middle nog eens uit: deze functie haalt een stukje tekst uit een woord (een letter-reeks eigenlijk), en wel een bepaald aantal letters vanaf een bepaalde positie. We zullen Middle gebruiken om het e-mail-gedeelte voor het @-teken te vinden, en daarna het e-mail-gedeelte na het @-teken.

Enkele voorbeelden (let op: Middle werkt zowel met tekst als met velden):

Middle("schandelijk";6;3)

De functie wordt hier gebruikt met een tekst (daarom de aanhalingstekens) en geeft als resultaat del (drie letters lang en te beginnen vanaf de zesde positie).

In het volgende geval wordt Middle gebruikt met een veld (geen aanhalingstekens voor en achter de veldnaam):

Middle(Voornaam;3;2)

Dit geeft als resultaat dr wanneer in het veld Voornaam de voornaam André ingevuld is: twee letters lang en vanaf de derde positie.

Als we dit nu allemaal combineren, dan kunnen we de volgende formule gebruiken om alle letters te vinden die vlak voor en vlak na het eerste @-teken staan in een veld dat we Brieftekst noemen:

Middle(Brieftekst;
Position(Brieftekst;" ";Position(Brieftekst;"@";0;1);-1)+1;
Position(Brieftekst;" ";Position(Brieftekst;"@";0;1);1)-
Position(Brieftekst;" ";Position(Brieftekst;"@";0;1);-1)-1)

 
avd@avd-ci.be - contactformulier