Jump to content
  • 0

Letter-punt-letter-punt


Roger

Question

Heeft iemand een formule 'op de plank' die het volgende resultaat geeft:

 

ABC = A.B.C.

A.B.C = A.B.C.

A B C = A.B.C.

A.. B. C. = A.B.C.

A,B,C, = A.B.C.

 

Oftewel: spaties, punten en komma's verwijderen. Letters overhouden en na iedere letter één punt invoegen. Het zou moeten werken ongeacht het aantal letters.

 

Spaties verwijderen lukt met TrimAll. Maar hoe dan verder...?

Link to comment

17 answers to this question

Recommended Posts

  • 0

Je kunt de lengte van de lettercombinatie bepalen en dan met een loop overal puntjes tussen zetten.

Left(lettercombinatie;1) &".") , Left(lettercombinatie;3) &".") , etc.

De letters komen altijd op de oneven plaatsen, de punten op de even plaatsen.

 

Misschien niet de meest elegante oplossing, maar het werkt wel.

Link to comment
  • 0
Wat ik me dan afvraag is: Als je bijv. 'appelpeerbanaan' hebt hoe je dan weet waar je de punten moet zettten...

 

Burggraaf, waarom vraag je je dat af?

 

Hiker en Greg, bedankt voor het meedenken. Ik wil het alleen scriptloos, dus in een (automatische invoer) berekening. Spaties verwijderen en alleen letters overhouden lukt al. Nu nog die puntjes...... :evil:

Link to comment
  • 0

Ik ga hier niet uitkomen :? Onderstaande custom function wordt niet door FileMaker 9 Adv geaccepteerd:

 

Let(

[

addText = Left ( inText ; atInterval);

nextText = Right ( inText ; Length ( inText ) - atInterval );

outText = outText & Case ( Length ( outText ) > 0 ; insertChar ) & addText

]

;

Case ( Length ( nextText ) > 0 ; InsertChar ( nextText ; insertChar ; atInterval ; outText ) ; outText)

)

 

Ik begrijp niet waarom. Alle parameters zijn netjes aangemaakt. Heeft iemand een idee wat er aan de hand kan zijn? FM zegt dat er in de onderste regel op de plaats van de 3e openingshaak een operator wordt verwacht.

Link to comment
  • 0

Probleem met de custom function InsertChar is dat hij eenzelfde parameter naam heeft als zijn functienaam. Dit werkt niet in FileMaker blijkbaar.

Let(
[
_addText = Left ( _inText ; _atInterval);
_nextText = Right ( _inText ; Length ( _inText ) - _atInterval );
_outText = _outText & Case ( Length ( _outText ) > 0 ; _insertChar ) & _addText
]
;
Case ( Length ( _nextText ) > 0 ; InsertChar ( _nextText ; _insertChar ; _atInterval ; _outText ) ; _outText)
)

 

deze werkt wel met volgende parameters dan: InserChar ( _inText ; _insertChar ; _atInterval ; _outText )

Link to comment
  • 0

Geweldig!!

 

Wat kunnen we nu?

 

Een database met contactgegevens kan worden voorzien van een veld genaamd [voorletters] waar, ongeacht hoe de voorletters worden ingevoerd; - kleine letters, hoofdletters, wel puntjes, geen puntjes of in de mix - de waarden altijd op consistente wijze worden neergezet. We doen dit met een automatische invoer berekening die de bestaande waarde van [voorletters] vervangt.

 

De formule: InsertChar ( Upper ( TrimAll ( Filter ( voorletters ; "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ; 3 ; 3 )) ; "." ; 1 ; "") & "."

 

Iedereen die mee heeft gedacht enorm bedankt.

Link to comment
  • 0

En wat kunnen we nu niet?

 

Wat doe je bij voorletters als "J.W.Chr." en "Th.M.", twee voorbeelden die ik zo uit mijn adresbestand haal?

Met de berekening wordt dat dus: " J.W.C.H.R." en "T.H.M." en dat klopt dus niet met datgene wat bedoeld wordt.

 

Hoe ga je dit probleem oplossen?

Link to comment
  • 0

Ach so!

 

Tsja... die voorletter-lettercombinaties maken het niet eenvoudig. Misschien is een constructie mogelijk waarbij je de meest voorkomende voorletter-lettercombinaties eruit destilleert, waarna de gebruiker de verschillende opties krijgt voorgeschoteld om daar een keuze uit te maken. Een extra veldje en wat scripting zal echter wel niet te vermijden zijn.

 

Adr. voor Adriaan, Adrianus, Adriana

Chr. voor Chris, Christiaan, Christoffel, Christo, Christophe, Christa, Christa, Christel, Christi, Christiane, Christianne, Christina, Christine, etc

IJ. voor IJsbrand

Jac. (ook Jacq.) voor Jacques, zoals bij Jac. P. Thijsse

Joh. voor Johan, Johann, Johannes, Johanna, etc. zoals in Joh. Enschedé

Ph. voor Philip, Phillip, Philippus, Phillippine, Philippa, Phebe, Philicia, etc.

Th. voor Theo, Theodoor, Theodorus, Theofiel, Theunis, Thibaut, Thieu, Thijs, Thom, Thomas, Thoon, Thor, Thorben, Thaïs, Thalia, Thea, Theodora, Thera, Thérèse, Theresia, Thessa, Thirza, etc.

Tj. voor Tjalling, Tjalle, Tjeerd, Tjerk, Tjitske, Tjor, enz.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...