Jump to content
  • 0

Tekst splitsen


EricJ

Question

Posted

Geacht forum,

 

Een bestaande dBase wil ik wat gaan aanpassen. Er is een veld "Naam".

Deze zijn consequent gevuld met namen volgens de volgende schrijfwijze: Achternaam - Voornaam.

bijvoorbeeld: Puk - Pietje

 

Graag wil ik nu de voornaam in een nieuw veld: Voornaam en uiteraard de achternaam in een ander nieuw veld: Achternaam.

 

Hoe splits ik deze data en vul ik de betreffende velden? Uiteraard gaat de dBase daarna ook weer gevuld worden met nieuwe namen dus dan moeten de velden daarvoor ook weer beschikbaar komen.

 

EricJ

10 answers to this question

Recommended Posts

  • 0
Posted

zorg dat je berekent via POSITION waar dat streepje staat.

maak een berekeningsveld naam dat gelijk is aan de meest linkse karakters van jouw originele veld tot aan de positie die je berekent hebt (- de spaties)

maak een berekeningsveld voornaam dat gelijk is aan de meest rechtse karakters van jouw originele veld, waar bij het aantal karakters gelijk is aan de originele lengte min de positie van het streepje (- de spaties)

 

PS : een voorbeeldje zegt meer dan al het bovenstaande (zie download hieronder)

NamenSplitsen.fp5.zip

  • 0
Posted

@Rony

 

Ik vond het verrassend dat je in Position de startpositie op 0 zet, terwijl alle klassieke voorbeelden - ook die van FileMaker on line help en manual - vertrekken van 1, met dit als uitleg:

start - any numeric expression or field containing a number, representing the number of characters from the start of the text string at which to begin the search

Copyright © 1994 - 2002 FileMaker, Inc. All Rights Reserved.

Nog verrassender (?) is dat een copy van dat veld waarin de startwaarde op 1 gezet wordt, precies dezelfde waarde teruggeeft alsof 0 en 1 op dezelfde plaats zouden staan... :?:

  • 0
Posted
Ik vond het verrassend dat je in Position de startpositie op 0 zet

0 lijkt me veel logischer dan 1, ik heb de help er nooit op na geslagen, en ook nog nooit problemen gehad met 0.

In mijn logica is meest links gelijk aan 0, dat is dus links van het eerste karakter, zijnde positie 1.

 

Nog verrassender (?) is dat een copy van dat veld waarin de startwaarde op 1 gezet wordt, precies dezelfde waarde teruggeeft alsof 0 en 1 op dezelfde plaats zouden staan... :?:

 

tja, ik heb er in ieder geval geen uitleg voor. Ik heb hier blijkbaar per toeval een 'bug' gevonden.

  • 0
Posted
:idea: en als je daar een negatieve waarde invult? Als dat *gewoon goed* gaat is die startwaarde kennelijk gedefinieerd als "Alles kleiner dan 2" of zo. Als je een foutmelding krijgt wordt er kennelijk onderscheid gemaakt tussen "het eerste karakter van een textstring" (de waarde 1) en "het begin van een textstring" (de waarde 0). En dan is natuurlijk de vraag "WAAROM?" :?:
  • 0
Posted

Jammer, dan lijkt me dat gewoon slordig programmeerwerk van FM. Zo van, als iemand 2 invult, begin dan bij het 2e character en zo voort, en alles kleiner dan dat is aan het begin beginnen. Maar misschien is dat wel een bewuste actie in het kader van debielen-bestendigheid of iets in die trant.... Dat kan natuurlijk ook.

  • 0
Posted
als iemand 2 invult, begin dan bij het 2e character en zo voort, en alles kleiner dan dat is aan het begin beginnen

 

Pittige opmerking! Misschien - heb geen tijd om het nu te testen - werkt het ook met de hoofdletter O (van Oscar) in plaats van 0 (de nul van ... in de ... regering). Dan zou het misschien ook werken met andere letters, die default gelijk gesteld zouden worden aan 1. Wie weet...

  • 0
Posted
Dan zou het misschien ook werken met andere letters, die default gelijk gesteld zouden worden aan 1. Wie weet...

 

ik heb getest met de letter A en dat werkt, volgens de boerenlogica logisch want A is de eerste letter.

dan maar op naar de volgende proef : de letter Z.

en ook dat werkt.

 

cWaarStaatDatStreepje = Position(tOngesplitst; "-";"Z"; 1)

 

En nu jullie weer :!:

splitsen.jpg.2280786ce6cba0633be85ba8a8396154.jpg

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