2007

Apr

28

Av

Med egna funktioner kan man göra loopar, t.ex. söka genom ett textfält och ersätta två eller flera mellanslag med ett enda, fyra eller fler mellanslag med tab-tecken. Jag ska visa hur man enkelt byter ut två eller fler punkter till ett tab-tecken (eller annat valfritt tecken, jag använder ofta liknande beräkningar för att t.ex. sätta in Indesigns kod för tab-tecken).

Antag att vi har följande text “1. Första kapitlet …….. 7″ och vill ersätta punkterna med ett enda tab-tecken. 

Enklast är att kontrollera om det finns “…” i texten och byta ut det mot “..” (dvs. en punkt mindre) tills det inte längre finns tre punkter efter varandra i texten. För det behöver jag göra en loop och det gör jag med en egen funktion.

ReplaceRuns (textfält) =
If (Position(textfält;"...";1;1) > 0;
ReplaceRuns(Substitute(textfält;"...";".."));textfält)

Funktionen anropar sig själv rekursivt, varje gång med en punkt mindre. Till sist finns det inte tre punkter efter varandra i fältet, som mest finns det två punkter i följd. Avslutningsvis ersätter jag de två punkterna med mitt tab-tecken.

Beräknat fält =
Substitute(ReplaceRuns(textfält);"..";"tab-tecken")

Koden för tab-tecken till Indesign är “<0×0009>” men du kan också sätta in en “vanlig” tab, tryck Ctrl+Tab i beräkningsfältet.

Skriv en kommentar

  • (will not be published)
  • 9 − = two

Läs också: