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.