Snippet Add/Remove Delimiters To/From String

Nestharus

o-o
Reaction score
83
JASS:

library AddRepeatedString
    //adds a string to another string in spaced intervals
    //call AddRepeatedString(1234567,"-",3,0) -> 123-456-7
    function AddRepeatedString takes string s, string str, integer spacing, integer start returns string
        local integer i = StringLength(s)
        local integer p = 1
        loop
            exitwhen p*spacing+start>=i
            set s = SubString(s,0,p*spacing+p+start-1)+str+SubString(s,p*spacing+p+start-1,StringLength(s))
            set p=p+1
        endloop
        return s
    endfunction
endlibrary


JASS:

library RemoveString
    //removes all traces of a string from another string
    //0 means remove all
    //call RemoveString("123123","12",0,0) -> 33
    //call RemoveString("123-123","-",0,0) -> 123123
    
    //maxRemove is useful for removing an instance of a string once
    //call RemoveString("-load mau3-load -ffff","-load ",1,0) -> "mau3-load -ffff"
    function RemoveString takes string s, string str, integer maxRemove, integer start returns string
        local integer p = StringLength(str)
        local integer i = StringLength(s)
        local integer m = start
        if (0<i) then
            if (0==maxRemove) then
                set maxRemove=-1
            endif
            loop
                exitwhen m==i or 0==maxRemove
                if (str==SubString(s,m,m+p)) then
                    set maxRemove = maxRemove - 1
                    set s=SubString(s,0,m)+SubString(s,m+p,StringLength(s))
                    set i=i-1
                else
                    set m=m+1
                endif
            endloop
        endif
        return s
    endfunction
endlibrary


JASS:

call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,60,"|"+RemoveString("-load mau3-load -ffff","-load ",1,0)+"|")
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,60,"|"+RemoveString("-123-456-","-",0,0)+"|")
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,60,AddRepeatedString("123456712345671234567","-",4,0))
 

Nestharus

o-o
Reaction score
83
I suppose so. Really, it should be add repeated string and remove string, and they should be two separate resources. I just put them together and named them how I did with save/load in mind =).


Why I say string instead of char is because you can just as easily pass in a string ; P. One good example would be passing in "-load" for removing it from the save/load code and passing in " " for removing any spaces (not including in -load as there may be multiple spaces after load). From there you can pass in the delimiter "-" to remove those.


Is there already a script that removes strings like this and adds repeated strings?
 

Darthfett

Aerospace/Cybersecurity Software Engineer
Reaction score
615
I suppose so. Really, it should be add repeated string and remove string, and they should be two separate resources. I just put them together and named them how I did with save/load in mind =).
I think it would be a good idea to group a lot of save/load code string functions together for a library. Possibly to even generalize it to functions that display readable strings to an actual player. As a mapper, I would hardly find it useful to look for it as a resource (in its current state), and I may simply decide to write my own.

Why I say string instead of char is because you can just as easily pass in a string ; P.
Ah, I thought I glanced at the code and thought I saw something that indicated a limitation to characters.

Is there already a script that removes strings like this and adds repeated strings?
My stringFilter's ReplaceString function was originally a RemoveChar/RemoveString function. It has some added functionality with little to no loss in efficiency. Romek's Explode String function was also intended for splitting delimited strings. Neither has a delimiting function.
 

Nestharus

o-o
Reaction score
83
Ah, no max remove argument ; P.


max remove is hella useful for things like this = )
[ljass]call RemoveString("-load abcd-load -efgh","load -",1)[/ljass]

That'll remove only the "-load " at the front ;D.
 

tooltiperror

Super Moderator
Reaction score
231
Please read the submission rules.

Graveyarded.
 

Dirac

22710180
Reaction score
147
This should go from right to left in order to support numeric separations:
AddRepeatedString(6004153,"-",3,0) -> 6,004,153
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
Reaction score
62
Dirac:
1.This should go from right to left in order to support numeric separations:
AddRepeatedString(6004153,"-",3,0) -> 6,004,153

Nestharus:
1.don't use this for numeric commas >.>, use this instead

http://www.hiveworkshop.com/forums/1875400-post370.html


1. Guys actually the thousands separator should be a space " " not a comma "," nor a dot ".".
The dot should be used as a decimal mark.

So:
1,234 -> 1 234
1,234,567,890 -> 1 234 567 890
1,234.567890 -> 1 234.567 890 or
1,234.567,890 -> 1 234.567 890
3,14159 -> ~PI -> 3.14159

This is SI style.

And btw I think the multiplication in mathematics when not used implicitly as in (4x) should use the programming equivalent "*" and save the dot "." for the decimal mark and the middle dot (a "." pushed a little but up) for lets say the dot product of 2 vectors.
 

Nestharus

o-o
Reaction score
83
I prefer commas >.>.


I've never even seen the SI style until you mentioned it. Who knows, maybe the US is weird, but I haven't seen it in international games either, so...
 

Bribe

vJass errors are legion
Reaction score
67
The English way is to use 6,859.6923490.

In Germany you use 6.859,6923490 which really f*cks my mind I must say.

For this S.I. format, I have never heard of it.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • jonas jonas:
    where did you go?
  • The Helper The Helper:
    Jefferson TX on a Paranormal Investigation of a haunted bed and breakfast - I got some friends that are paranormal investigators and they have an RV and do YouTubes
    +1
  • The Helper The Helper:
    It was a lot of fun. The RV was bad ass
  • jonas jonas:
    That sounds like fun!
    +1
  • The Helper The Helper:
    it was a blast!
  • The Helper The Helper:
    I am going to post the Youtube of the investigation in the forums when it is ready
    +1
  • jonas jonas:
    cool!
  • vypur85 vypur85:
    Sounds cool TH.
  • tom_mai78101 tom_mai78101:
    I was on a Legend of Zelda marathon...
  • tom_mai78101 tom_mai78101:
    Am still doing it now
    +1
  • jonas jonas:
    which one(s) are you playing?
  • jonas jonas:
    I played a little bit of the switch title two weeks ago and found it quite boring
  • The Helper The Helper:
    just got back from San Antonio this weekend had the best Buffalo Chicken Cheesesteak sandwhich in Universal City, TX - place was called Yous Guys freaking awesome! Hope everyone had a fantastic weekend!
    +1
  • The Helper The Helper:
    Happy Tuesday!
  • The Helper The Helper:
    We have been getting crazy numbers reported by the forum of people online the bots are going crazy on us I think it is AI training bots going at it at least that is what it looks like to me.
  • The Helper The Helper:
    Most legit traffic is tracked on multiple Analytics and we have Cloud Flare setup to block a ton of stuff but still there is large amount of bots that seem to escape detection and show up in the user list of the forum. I have been watching this bullshit for a year and still cannot figure it out it is drving me crazy lol.
    +1
  • Ghan Ghan:
    Beep boop
    +1
  • The Helper The Helper:
    hears robot sounds while 250 bots are on the forum lol
  • The Helper The Helper:
    Happy Saturday!
    +1
  • The Helper The Helper:
    and then it was Thursday...
    +2
  • tom_mai78101 tom_mai78101:
    And then Monday
    +1
  • The Helper The Helper:
    I got the day off today!
    +1
  • tom_mai78101 tom_mai78101:
    How...? (T-T)
  • The Helper The Helper:
    I took the day off. I work for myself so I can do that.
    +1
  • Varine Varine:
    Well I'm already over summer

    The Helper Discord

    Members online

    No members online now.

    Affiliates

    Hive Workshop NUON Dome World Editor Tutorials

    Network Sponsors

    Apex Steel Pipe - Buys and sells Steel Pipe.
    Top