Ga naar inhoud
  • 0

Cijfers in tekstveld verwijderen


johandn

Vraag

Geplaatst:

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

5 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

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

  • 0
Geplaatst:

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.

  • 0
Geplaatst:

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.

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