Right justify a string

R

Robert Crandal

Suppose I have the following string variables:

s1 = "0000"
s2 = "13"

I would like to copy the contents of s2 and insert it
into s1 in a right justified manner. So, the final
result of s1 would be:

s1 = "0013"

Does anyone have any generalized solutions for this?

Thanks again!
 
C

Claus Busch

Hi Robert,

Am Fri, 8 Mar 2013 12:18:13 -0700 schrieb Robert Crandal:
s1 = "0000"
s2 = "13"

I would like to copy the contents of s2 and insert it
into s1 in a right justified manner. So, the final
result of s1 would be:

s1 = "0013"

try:
s1 = "0000"
s2 = "13"
s2 = Format(CInt(s2), s1)
MsgBox s2


Regards
Claus Busch
 
R

Robert Crandal

Claus Busch said:
try:
s1 = "0000"
s2 = "13"
s2 = Format(CInt(s2), s1)
MsgBox s2

Hi Claus,

Thanks, that worked okay. But I overlooked a few situations.

Suppose that the s1 variable contains 4 space character (or ANY
characters, for that matter):

s1 = " " ' string with 4 spaces
s2 = "13"

Now, I would want s1 to look like:

s1 = " 13"

Do you have any ideas for this situation??
 
C

Claus Busch

Hi Robert,

Am Fri, 8 Mar 2013 13:27:47 -0700 schrieb Robert Crandal:
s1 = " " ' string with 4 spaces
s2 = "13"

Now, I would want s1 to look like:

s1 = " 13"

in sheet try:

=LEFT(A1,2)&A2
or with VBA:

s1 = " "
s2 = "13"
s3 = Left(s1, 2) & s2


Regards
Claus Busch
 
J

joeu2004

Robert Crandal said:
Suppose I have the following string variables:
s1 = "0000"
s2 = "13"
I would like to copy the contents of s2 and insert it
into s1 in a right justified manner. So, the final
result of s1 would be:
s1 = "0013"


Robert Crandal said:
I overlooked a few situations.
Suppose that the s1 variable contains 4 space character
(or ANY characters, for that matter):
s1 = " " ' string with 4 spaces
s2 = "13"
Now, I would want s1 to look like:
s1 = " 13"

Generally:

s1 = Left(s1,Len(s1)-Len(s2)) & s2

or

s1 = IIf(Len(s1)<Len(s2),s2,Left(s1,Len(s1)-Len(s2)) & s2)

But you might not need to "preload" s1 at all, if that is what you are
doing.

Suppose n is the total length. Then:

s1 = String(n - Len(s2),fillCharacter) & s2
 
R

Robert Crandal

Claus Busch said:
s1 = " "
s2 = "13"
s3 = Left(s1, 2) & s2

Hi Claus.... This solution ALMOST worked.

Here's another example:

s1 = "--------" ' 8 dash characters
s2 = "13"

After applying your functions, the result of s3
shoud be:

s3 = "------13" ' 6 dashes + '13' string

Basically, the final length of s3 should be the
same as the length of s1. Also, I need to
cut out the rightmost characters of s1, just to
make room for s2 to be right justified.
I hope that makes sense.
 
G

GS

Try...

Dim s2$, vS1, n%
vS1 = Split("0000| |--------", "|")
s2 = "13"
For n = LBound(vS1) To UBound(vS1)
Debug.Print Left$(vS1(n), Len(vS1(n)) - Len(s2)) + s2
Next

--
Garry

Free usenet access at http://www.eternal-september.org
Classic VB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion
 
C

Claus Busch

Hi Robert,

Am Fri, 8 Mar 2013 14:53:14 -0700 schrieb Robert Crandal:
s1 = "--------" ' 8 dash characters
s2 = "13"

After applying your functions, the result of s3
shoud be:

s3 = "------13" ' 6 dashes + '13' string

then you have to work with len(s1):
s1 = "--------"
s2 = "13"
s3 = Left(s1, Len(s1) - 2) & s2


Regards
Claus Busch
 
C

Claus Busch

Hi Robert,

Am Sat, 9 Mar 2013 08:40:07 +0100 schrieb Claus Busch:
s1 = "--------"
s2 = "13"
s3 = Left(s1, Len(s1) - 2) & s2

if s2 is also variable in length better try:
s1 = "--------"
s2 = "13"
s3 = Left(s1, Len(s1) - Len(s2)) & s2


Regards
Claus Busch
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top