V programovacích prostrediach kompatibilných s IEC 61131-3 má manipulácia s reťazcami mnoho vstavaných funkcií. Žiaľ, niekedy je tieto rutiny trochu ťažké nájsť. Aj keď je možné vyhľadávať v dostupných funkciách, samotné hľadanie podľa názvu niekedy nestačí.
Hľadanie funkcie pre podreťazec pomocou výrazov string, substr alebo
len sub nevrátilo žiadne relevantné výsledky. Našťastie žijeme vo svete,
kde je internet takmer všade prítomný a je možné siahnuť po vedomostiach
tam uložených – za predpokladu, že ich tam niekto iný už zdieľal.
Na získanie krajných N znakov zľava sa používa funkcia LEFT s podpisom:
STRING LEFT(STRING STR, INT SIZE)
Podobne, na získanie krajných N znakov zprava reťazca, napríklad na
skrátenie štvorznakového roka na dva znaky, možno použiť funkciu RIGHT:
STRING RIGHT(STRING STR, INT SIZE)
Na získanie skutočného podreťazca je možné tieto dve funkcie reťaziť,
orezávajúc reťazec z oboch strán. Existuje však ešte kratší spôsob, nazvaný
MID, čo znamená, že funkcia vracia strednú časť reťazca, teda podreťazec:
STRING MID(STRING STR, INT LEN, INT POS)
Neviem, kto tieto názvy vytváral, ale podľa môjho chápania je stred bod na
úsečke, ktorý má rovnakú vzdialenosť od oboch jej koncov – čo pre funkciu
MID zjavne neplatí, keďže začína na zadanej POZícii a berie zadanú DĹŽku
znakov. Dúfam, že si teraz konečne zapamätám túto neintuítívnu sadu
funkcií, keďže som sa o nej podelil.
Toto je 66. príspevok série #100daystooffload.