%STRING(THIS,INIT) ;VCL/SNW-STRING TYPE DEFINITION; 03/09/25 06:23 PM ;0.0;FreeM;****FREEM**;Serena Willis @2025 ; ; $Id: %STRING.m,v 1.2 2025/03/10 00:38:15 snw Exp $ ; String type definition ; ; ; Author: Serena Willis ; Copyright (C) 1998 MUG Deutschland ; Copyright (C) 2023, 2025 Coherent Logic Development LLC ; ; ; This file is part of FreeM. ; ; FreeM is free software: you can redistribute it and/or modify ; it under the terms of the GNU Affero Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; ; FreeM is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU Affero Public License for more details. ; ; You should have received a copy of the GNU Affero Public License ; along with FreeM. If not, see . ; ; $Log: %STRING.m,v $ ; Revision 1.2 2025/03/10 00:38:15 snw ; Phase 3 of REUSE compliance and header reformatting ; ; ; SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC ; SPDX-License-Identifier: AGPL-3.0-or-later S THIS=$G(INIT,"") QUIT ASCII(THIS,POS) N RP S RP=$G(POS,1) Q $A(THIS,RP) ascii(THIS,POS) N RP S RP=$G(POS,1) Q $A(THIS,RP) Ascii(THIS,POS) N RP S RP=$G(POS,1) Q $A(THIS,RP) DATA(THIS) Q $D(THIS) data(THIS) Q $D(THIS) Data(THIS) Q $D(THIS) DISTANCE(THIS,COMP) Q $ZLSD(THIS,COMP) distance(THIS,COMP) Q $ZLSD(THIS,COMP) Distance(THIS,COMP) Q $ZLSD(THIS,COMP) EXTRACT(THIS,START,END) Q $E(THIS,$G(START,1),$G(END,$G(START,1))) extract(THIS,START,END) Q $E(THIS,$G(START,1),$G(END,$G(START,1))) Extract(THIS,START,END) Q $E(THIS,$G(START,1),$G(END,$G(START,1))) FIND(THIS,SUBSTR,START) N RS S RS=$GET(START,1) Q $F(THIS,SUBSTR,RS) find(THIS,SUBSTR,START) N RS S RS=$GET(START,1) Q $F(THIS,SUBSTR,RS) Find(THIS,SUBSTR,START) N RS S RS=$GET(START,1) Q $F(THIS,SUBSTR,RS) FNUMBER(THIS,CODES) Q $FN(THIS,CODES) fnumber(THIS,CODES) Q $FN(THIS,CODES) Fnumber(THIS,CODES) Q $FN(THIS,CODES) JUSTIFY(THIS,COUNT,DIG) Q $J(THIS,COUNT,$GET(DIG,$L(THIS))) justify(THIS,COUNT,DIG) Q $J(THIS,COUNT,$GET(DIG,$L(THIS))) Justify(THIS,COUNT,DIG) Q $J(THIS,COUNT,$GET(DIG,$L(THIS))) LENGTH(THIS) Q $L(THIS) length(THIS) Q $L(THIS) Length(THIS) Q $L(THIS) PIECECOUNT(THIS,DELIM) Q $L(THIS,DELIM) pieceCount(THIS,DELIM) Q $L(THIS,DELIM) PieceCount(THIS,DELIM) Q $L(THIS,DELIM) PIECE(THIS,DELIM,FIRST,LAST) N RF S RF=$G(FIRST,1) N RL S RL=$G(LAST,RF) Q $P(THIS,DELIM,RF,RL) piece(THIS,DELIM,FIRST,LAST) N RF S RF=$G(FIRST,1) N RL S RL=$G(LAST,RF) Q $P(THIS,DELIM,RF,RL) Piece(THIS,DELIM,FIRST,LAST) N RF S RF=$G(FIRST,1) N RL S RL=$G(LAST,RF) Q $P(THIS,DELIM,RF,RL) REPLACE(THIS,SEARCH,REPLACE) Q $ZREPLACE(THIS,SEARCH,REPLACE) replace(THIS,SEARCH,REPLACE) Q $ZREPLACE(THIS,SEARCH,REPLACE) Replace(THIS,SEARCH,REPLACE) Q $ZREPLACE(THIS,SEARCH,REPLACE) REVERSE(THIS) Q $RE(THIS) reverse(THIS) Q $RE(THIS) Reverse(THIS) Q $RE(THIS) TOLOWER(THIS) Q $TR(THIS,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz") toLower(THIS) Q $TR(THIS,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz") ToLower(THIS) Q $TR(THIS,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz") TOUPPER(THIS) Q $TR(THIS,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") toUpper(THIS) Q $TR(THIS,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") ToUpper(THIS) Q $TR(THIS,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") TRANSLATE(THIS,SEARCH,REPLACE) N RR S RR=$G(REPLACE,"") Q $TR(THIS,SEARCH,RR) translate(THIS,SEARCH,REPLACE) N RR S RR=$G(REPLACE,"") Q $TR(THIS,SEARCH,RR) Translate(THIS,SEARCH,REPLACE) N RR S RR=$G(REPLACE,"") Q $TR(THIS,SEARCH,RR)