Jump to content
  • 0

Cijfers in tekstveld verwijderen


johandn

Question

Hallo,

ik heb een tekstveld met straatnaam en huisnummer. Ik wil met een script het huisnummer weghalen en alleen de straatnaam houden.

Voorbeelden:

'Nieuwstraat 1' moet 'Nieuwstraat' worden

'Ter Goten 3' moet 'Ter Goten' worden

 

Ik heb zelf al wat gezocht in functies maar vind geen oplossing

Link to post

5 answers to this question

Recommended Posts

  • 0

Helaas kun je niet eenvoudig een substitute of filter gebruiken omdat in straatnamen zelf ook regelmatig cijfers voorkomen.

Wat je zou kunnen doen is met position de laatste spatie opvragen en dan met trim ( left ( straat ; position )) de rest overhouden. Deze truc is niet waterdicht, maar werkt voor het meeste wel. Als iemand bijvoorbeeld 1 HS gebruikt ga je de mist in. De trim zit erin om de overbodige spatie(s) op ter ruimen aan het eind.

Bij position vraag de de laatste spatie op door Position ( straat ; " " ; length ( straat ) ; -1 ).

Link to post
  • 0

Het probleem van de toevoegingen op de huisnummers zou je eventueel kunnen ondervangen door de while functie te gebruiken.

Uitgaande van een normale Nederlandse adresnotatie: rechts van de spatie moet een nummer staan, of een nummer met een (alfanumerieke) toevoeging. 

While ( 
[
 adres = Trim (adres); 
          i = 1; 
          p = Position ( adres ; " " ; length ( adres)  ; -i );
          probe = Middle ( adres ; p + 1 ; 1 ) 
] ; 

Filter ( probe ; "0123456789" ) ≠ probe ;


[         i = i + 1; 
          p = Position ( adres ; " " ; length ( adres)  ; -i );
          probe = Middle ( adres ; p + 1 ; 1 ) 
] ; 

Left ( adres; p - 1 )
)

De loop stopt als het eerste teken van de 'probe' een cijfer is, en geeft een '?' als er helemaal geen spatie is opgenomen.

Link to post
  • 0

Jaren geleden eens gedaan met diverse loopfuncties:

Als eerste loop alle letters aan het eind weghalen (er van uitgaande dat als laatste een huisnummer overblijft)

als tweede loop als laatste cijfer een 0 is dan weghalen, als laatste cijfer een 1 is dan weghalen, etc., dus 10 keer door de loop.

Dat een aantal keer herhalen totdat als laatste een spatie overblijft, dan die weghalen.

Daarna handmatig de lijst bij langs voor echte afwijkingen, maar dat waren op 2500 adressen maar 1 of 2, bijvoorbeeld Achterstraat 5 hs3 (zoiets was het) 

Dit soort oplossingen krijg je als je net te weinig verstand van Filemaker hebt. Het is niet fraai maar werkt wel.

Link to post

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...