Ga naar inhoud
  • 0

Letter-punt-letter-punt


Roger

Vraag

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 naar reactie

17 antwoorden op deze vraag

Aanbevolen berichten

  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...