Jump to content
  • 0

Tekstmanipulatie


JeanWM

Question

Ik kom er even niet uit...

 

Een veld (name) met data zoals:

1. "a case of mistaken identity" of

2. "an ounce of prevention is worth a pound of cure" of nog

3. "at (someone's) earliest convenience" of

4. "the other side of the tracks"

 

Bij het sorteren (of zoeken per eerste letter) geeft dit problemen vermits deze waarden allemaal bij de "a" terecht komen of bij de "t".

 

Met

 

Case(

 

PatternCount("ATheAn"; LeftWords(name; 1));

 

MiddleWords(name; 2; WordCount(name) -1) &", " & LeftWords(name; 1);

 

name),

 

krijg ik "a", "an", "at" en "the" op het einde maar zit vast voor de waarden tussen haakjes, zoals (someone's), (someone or something), (doing something), (something) en (someone).

 

Ik slaag er niet in om in alle voorkomende gevallen die waarden te verplaatsen.

 

Iemand een idee, of bestaat er een andere methode ?

Link to comment

7 answers to this question

Recommended Posts

  • 0

Ik zou zeggen ja voor 5896 van de 6000+ gevallen.

Dus het antwoord is in feite neen....

 

Ik heb al pogingen gedaan om de eerste "(" te lokaliseren en vandaaruit verder te werken...maar dat liep falikant uit....

 

Ik zou al blij zijn indien de eerste "(waarde)" naar het einde zou verhuizen...

 

Bedankt Koen

Link to comment
  • 0

Wel Koen, het lange antwoord is 'Ja' en het korte antwoord is 'Neen' :D

 

Ik kan een opsplitsing doen waar het nodig is om alle (some....) eruit te halen - indien je jouw gedachte hierover zou willen delen...

 

Ik kan misschien de invoer aanpassen zodat inderdaad alles voor de eerste ')' naar achter gaat - dus dat is ook welkom.

 

Ik zeg wel eerste, omdat soms een ander '(' en ')' wat verderop staat, en die moet blijven :roll:

Link to comment
  • 0

Helpt dit je?

 

Let
(
[
check =  patterncount(name; "(someone's)") + patterncount(name; "(someone or something)") + patterncount(name; "(doing something)") + patterncount(name;  "(something)") + patterncount(name;  "(someone)") 
;
posbreak = if(check ; Position ( name ; ")" ; 1; 1 ) ;0)
;
check2 = PatternCount("ATheAn"; LeftWords(name; 1))
;
result = Case(check ; Right(name; Length(name) -  posbreak) & ", " & left(name; posbreak) ; check2 ; MiddleWords(name; 2; WordCount(name) -1) &", " & LeftWords(name; 1) ; name )
]
;
result
)

 

 

Koen

Link to comment
  • 0

Inderdaad, Koen we komen in de buurt.

 

Een beetje tweaken schijnt nodig te zijn:

 

gear up for (something) wordt: ", gear up for (something)"

Er verschijnt een komma vooraan.

 

get (someone or something) out of one's mind/head wordt :

out of one's mind/head, get (someone or something)

De basis uitdrukking is : get out of one's mind/head, dus hier zou de "get" niet mogen verplaatst worden, vermits de uitdrukking met een "g" begint

 

at (someone's) service wordt: service, at (someone's)

Dit doet het dan weer prachtig, net zoals:

at (someone's) earliest convenience, dat " earliest convenience, at (someone's)" wordt

 

Dat is wat ik bedoelde in mijn eerste post, ik slaag er niet om het in alle omstandigheden goed te krijgen.

 

Dit is echt FileMakerees, beide hebben we hetzelfde resultaat via een verschillende weg....

Link to comment

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