SphereCommunity
STRREPLACE - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Submissions (/Forum-Script-Submissions)
+--- Thread: STRREPLACE (/Thread-STRREPLACE--3734)



STRREPLACE - Crusader - 09-04-2014 06:07 PM

oh no another one!
yes, that's mine. takes into account commas too....but ofc might be improved, feel free to post improvements below =)

Code:
[FUNCTION STRREPLACE]
// OldWord, NewWord, String
LOCAL.OLDWORD=<ARGV[0]>
LOCAL.NEWORD=<ARGV[1]>
LOCAL.EATFIRST=<STREAT <ARGS>>
LOCAL.STRCLEAN=<STREAT <LOCAL.EATFIRST>>
LOCAL.DONE=1
WHILE (STRCMPI(<LOCAL.STRCLEAN>,0)!=0)
    LOCAL.COMADD=
    LOCAL.COMACHECK=<EVAL STRLEN(<LOCAL.STRCLEAN>)>
    LOCAL.START=<STRARG <LOCAL.STRCLEAN>>
    LOCAL.STOP=<STREAT <LOCAL.STRCLEAN>>
    LOCAL.COMACHECK2=<EVAL STRLEN(<LOCAL.START>) + STRLEN(<LOCAL.STOP>)>
        IF (STRCMP(<LOCAL.START>,<LOCAL.OLDWORD>))==0
            LOCAL.START =<LOCAL.NEWORD>
        ENDIF
        IF (STRCMPI(<LOCAL.STOP>,0)==0)
            LOCAL.STRCLEAN=
        ELSE
            LOCAL.STRCLEAN=<LOCAL.STOP>
        ENDIF
        IF <DLOCAL.COMACHECK> > <EVAL <LOCAL.COMACHECK2>+1>
            LOCAL.COMADD=1
        ENDIF
        IF (<DLOCAL.DONE> == 1)
            IF <DLOCAL.COMADD>==1
                LOCAL.DONE ="<LOCAL.START>,"
            ELSE
                LOCAL.DONE ="<LOCAL.START>"
            ENDIF
        ELSE
            IF <DLOCAL.COMADD>==1
                LOCAL.DONE .= " <LOCAL.START>,"
            ELSE
                LOCAL.DONE .= " <LOCAL.START>"
            ENDIF
        ENDIF
ENDWHILE
RETURN <LOCAL.DONE>


edit oh right, commas, thx mordy.


RE: STRREPLACE - Mordaunt - 09-05-2014 04:28 AM

comas huh... interesting.. not sure how one would type while in a coma but still.....


Oh I'm sorry did you mean commas? Big Grin


RE: STRREPLACE - Extreme - 09-05-2014 06:08 AM

Hahhahahahha don't fuck mordaunt..


RE: STRREPLACE - Extreme - 09-05-2014 12:11 PM

Here is my STR custom functions.

STRSTR WORD,PHRASE
RETURN the position of the first WORD found on PHRASE, -1 if don't find.
PHP Code:
[FUNCTION STRSTR]
LOCAL.WORD <STRTOLOWER <ARGV[0]>>
ARGS <STRTOLOWER <STREAT <ARGS>>>
IF !
STRMATCH(*<LOCAL.WORD>*,*<ARGS>*)
 RETURN -
1
ELSE
 
LOCAL.P 0
 
WHILE <dLOCAL.CNT> != <EVAL STRLEN(<LOCAL.WORD>)>
  
LOCAL.POS <STRPOS <dLOCAL.P> <STRSUB 0 1 <LOCAL.WORD>> <ARGS>>
  
LOCAL.CNT 0
  
FOR C 0 <EVAL STRLEN(<LOCAL.WORD>)-1>
   IF 
STRMATCH(*<STRSUB <EVAL <dLOCAL.POS>+<dLOCAL.C>> <ARGS>>*,*<STRSUB <dLOCAL.C<LOCAL.WORD>>*)
    
LOCAL.CNT ++
   ELSE
    
LOCAL.++
    BREAK
   ENDIF
  ENDFOR
 ENDWHILE
 RETURN <
dLOCAL.POS>
ENDIF 

STRREPLACE OLDWORD,NEWWORD,PHRASE
RETURN PHRASE with ALL found OLDWORD's changed to NEWWORLD's
PHP Code:
[FUNCTION STRREPLACE]
LOCAL.OLDWORD <ARGV[0]>
LOCAL.WORD <ARGV[1]>
ARGS <STREAT <STREAT <ARGS>>>
WHILE 
STRMATCH(*<STRTOLOWER <LOCAL.OLDWORD>>*,*<STRTOLOWER <ARGS>>*)
 
LOCAL.<STRSTR <LOCAL.OLDWORD>,<ARGS>>
 IF <
dLOCAL.P>
  
ARGS <STRSUB 0 <EVAL <dLOCAL.P>> <ARGS>><LOCAL.WORD><STRSUB <EVAL <dLOCAL.P>+STRLEN(<LOCAL.OLDWORD>)> <EVAL STRLEN(<ARGS>)> <ARGS>>
 ELSE
  
ARGS <LOCAL.WORD><STRSUB <EVAL <dLOCAL.P>+STRLEN(<LOCAL.OLDWORD>)> <EVAL STRLEN(<ARGS>)> <ARGS>>
 ENDIF
ENDWHILE
RETURN <
ARGS

STRREPLACEONCE OLDWORD,NEWWORD,PHRASE
RETURN PHRASE with only one OLDWORD changed to NEWWORD
PHP Code:
[FUNCTION STRREPLACEONCE]
LOCAL.OLDWORD <ARGV[0]>
LOCAL.WORD <ARGV[1]>
ARGS <STREAT <STREAT <ARGS>>>
LOCAL.<STRSTR <LOCAL.OLDWORD>,<ARGS>>
IF <
dLOCAL.P>
 
ARGS <STRSUB 0 <EVAL <dLOCAL.P>> <ARGS>><LOCAL.WORD><STRSUB <EVAL <dLOCAL.P>+STRLEN(<LOCAL.OLDWORD>)> <EVAL STRLEN(<ARGS>)> <ARGS>>
ELSE
 
ARGS <LOCAL.WORD><STRSUB <EVAL <dLOCAL.P>+STRLEN(<LOCAL.OLDWORD>)> <EVAL STRLEN(<ARGS>)> <ARGS>>
ENDIF
RETURN <
ARGS

PS: both STRREPLACE and STRREPLACEONCE needs the function STRSTR!


RE: STRREPLACE - Extreme - 09-06-2014 05:35 AM

Well...
[FUNCTION ISPAIR]
RETURN <QVAL <EVAL <ARGS>%2>?0:1>


RE: STRREPLACE - kn4tseb - 09-06-2014 05:47 AM

never tried the qval operarator... ;]
nice btw, ty

whats the "%" for?
is it too long to explain?


RE: STRREPLACE - XuN - 09-06-2014 11:05 PM

http://en.wikipedia.org/wiki/Modulo_operation


RE: STRREPLACE - kn4tseb - 09-07-2014 03:03 AM

ohhh .. understood, thanks XuN