André1517653054 Posted March 1, 2010 Posted March 1, 2010 Ik wil de kleine letter in een string met een punt (.)=Char(46) daar direct achter, vervangen door een hoofdletter. Daarvoor had ik het volgende script bedacht voor een veld Veld::Naam: Variabele instellen[$a; Waarde:PatternCount ( Veld::Naam ; Char(46))] //Stelt aantal te wijzigen letters vast Loop Berekend Resultaat Invoegen[selecteren:Veld::Naam;Substitute ( Veld::Naam ; Middle ( Veld::Naam ; Position ( Veld::Naam ; Char(46) ; 1 ; $a )-1 ; 1) ; Upper ( Middle ( Veld::Naam ; Position ( Veld::Naam ; Char(46) ; 1 ; $a )-1 ; 1)))] // Bovenstaand ziet er ingewikkeld uit maar is een 'gewone' functie: Substitute ( Veld ; zoekreeks ; vervangreeks) Exit Loop IF [$a=0] Variabele instellen[$a; Waarde:$a-1] End Loop Ik ben een beginneling dus ik zal wel iets niet goed doen. Als er in het betreffende veld naast punten alleen letters voorkomen, dan werkt het script goed. Maar als er een ampersand (&) in het veld voorkomt, of andere 'vreemde' tekens zoals - of #, dan levert dat onverwachte resultaten op. Bv: A.l.t. & Last Civilization (3 punten, 2 kleine letters die hoofdletter moeten worden) levert als resultaat: A.L.T. & LasT CiviLizaTion (T in Last en L en T in Civilization is niet de bedoeling) Zoals gezegd, ik ben een beginneling Kan iemand zien wat ik niet goed doe? Vast bedankt. André Quote
0 fmwebshop Posted March 2, 2010 Posted March 2, 2010 Substitute(Proper ( Substitute ( veld 1 ; "." ; ". "));". ";".") Je zou deze, of een andere formule, ook kunnen invoeren bij veld opties, automatisch invoeren berekening, van het invoerveld zelf. Na het invoeren van de onbewerkte informatie wordt deze automatisch omgezet als je het veld verlaat. Voorkomt een loop. GR Harry Quote
0 André1517653054 Posted March 2, 2010 Author Posted March 2, 2010 Dat werkt inderdaad prima. Je moet klaarblijkelijk een beetje creatief kunnen denken. Bedankt voor je snelle reactie. André Quote
0 fmwebshop Posted March 2, 2010 Posted March 2, 2010 Dat is het mooie van Filemaker! Het is als een doos met honderden verschillende onderdelen. Je kunt er van alles van maken, hoe creativer hoe leuker. groet Quote
Question
André1517653054
Ik wil de kleine letter in een string met een punt (.)=Char(46) daar direct achter, vervangen door een hoofdletter.
Daarvoor had ik het volgende script bedacht voor een veld Veld::Naam:
Variabele instellen[$a; Waarde:PatternCount ( Veld::Naam ; Char(46))]
//Stelt aantal te wijzigen letters vast
Loop
Berekend Resultaat Invoegen[selecteren:Veld::Naam;Substitute ( Veld::Naam ; Middle ( Veld::Naam ; Position ( Veld::Naam ; Char(46) ; 1 ; $a )-1 ; 1) ; Upper ( Middle ( Veld::Naam ; Position ( Veld::Naam ; Char(46) ; 1 ; $a )-1 ; 1)))]
// Bovenstaand ziet er ingewikkeld uit maar is een 'gewone' functie: Substitute ( Veld ; zoekreeks ; vervangreeks)
Exit Loop IF [$a=0]
Variabele instellen[$a; Waarde:$a-1]
End Loop
Ik ben een beginneling dus ik zal wel iets niet goed doen.
Als er in het betreffende veld naast punten alleen letters voorkomen, dan werkt het script goed.
Maar als er een ampersand (&) in het veld voorkomt, of andere 'vreemde' tekens zoals - of #, dan levert dat onverwachte resultaten op.
Bv:
A.l.t. & Last Civilization (3 punten, 2 kleine letters die hoofdletter moeten worden)
levert als resultaat:
A.L.T. & LasT CiviLizaTion (T in Last en L en T in Civilization is niet de bedoeling)
Zoals gezegd, ik ben een beginneling
Kan iemand zien wat ik niet goed doe?
Vast bedankt.
André
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.