Page 1 of 1

UnLeft() and UnRight() Command

Posted: Thu Apr 20, 2006 11:21 pm
by Booster698
It could be usefull to have these commands for strings manipulations :

Example:

Code: Select all

Result.s = UnLeft("GoodBye" , 3)  ; Result will be "Good"
Result.s = UnRight("GoodBye" , 4) ; Result will be "Bye"
It can produce a better method than :

Code: Select all

Result.s = Left(Result, Len(Result) - 3)
Would be nice :)

Posted: Thu Apr 20, 2006 11:30 pm
by Flype
you can do it easily with macro

Code: Select all

Macro UnLeft(string,length)
  Left(string, Len(string) - length)
EndMacro
Macro UnRight(string,length)
  Right(string, Len(string) - length)
EndMacro

Debug UnLeft("GoodBye" , 3)  ; Result will be "Good"
Debug UnRight("GoodBye" , 4) ; Result will be "Bye"

Posted: Thu Apr 20, 2006 11:53 pm
by Booster698
Thanx i've already coded my own but i just give an idea to improve purebasic :)

Code: Select all

Procedure.s UnLeft(String.s, Length)
  ProcedureReturn Left(String, Len(String) - Length)
EndProcedure

Procedure.s UnRight(String.s, Length)
  ProcedureReturn Right(String, Len(String) - Length)
EndProcedure

Posted: Fri Apr 21, 2006 12:15 am
by USCode
Are those commands that are common in other Basic dialects? I'd hate to see the language become cluttered with functionality that can be easily accomplished with existing, well-known and understood commands.

I'm all for constructively evolving the language but respectfully put me down for NO on this one.

Re: UnLeft() and UnRight() Command

Posted: Fri Apr 21, 2006 12:41 am
by blueznl
Booster698 wrote: Result.s = UnLeft("GoodBye" , 3) ; Result will be "Good"
Result.s = UnRight("GoodBye" , 4) ; Result will be "Bye"

Result.s = Left(Result, Len(Result) - 3)
don't see much use... doesn't this do the same?

result.s = left("GoodBye",4)
result.s = mid("GoodBye",5,1000)

but if you really want it, i admit i use a small sub sometimes :-)

Code: Select all

Procedure.s x_chop(string.s,left.l,right.l)                          ; chop a bit of the left and right side of a string
  ; *** chop 'n' characters from the left or right of a string
  ;
  l = Len(string)
  If right > 0
    string = Left(string,l-right)
  EndIf
  If left > 0
    string = Mid(string,left+1,l)
  EndIf
  ;
  ProcedureReturn string
  ;
EndProcedure

Posted: Fri Apr 21, 2006 10:20 am
by maw
To be honest, if I really could make a wish I would wish for a return to SuperBASIC on the Sinclair QL. In a sence, PB already has alot in common with it, but there is one thing I really miss and that is it's string manipulation. It had neither Left, Right nor Mid. Instead...

Code: Select all

a$ = "ABCDEFG"
b$ = a$(1 To 4) ; would return ABCD
b$ = a$(To 4) ; would return ABCD
b$ = a$(-4 to -7) ; would return ABCD
b$ = a$(-1 To -3) ; would return EFG
b$ = a$(-3 To 7) ; would return EFG
b$ = a$(5 To) ; would return EFG
b$ = a$ ; would return the whole string
This brings back memories.. How I miss that computer! Almost as much as my Amiga...

Re: UnLeft() and UnRight() Command

Posted: Fri Apr 21, 2006 10:41 am
by freedimension
Booster698 wrote:It could be usefull to have these commands for strings manipulations :

Example:

Code: Select all

Result.s = UnLeft("GoodBye" , 3)  ; Result will be "Good"
Result.s = UnRight("GoodBye" , 4) ; Result will be "Bye"
I would rather like to see the existing commands enhanced:

Code: Select all

Result.s = Left("GoodBye" , -3)  ; Result will be "Good"
Result.s = Right("GoodBye" , -4) ; Result will be "Bye"