hogan9111
asked on
vb.net count characters then add a symbol
I am using visual basic and I want to know how I can count so many characters and then add a certain symbol
example that I have is:
L20Tom Brady 12340golf
It needs to be when the code sees the line that starts with L to
make the line look lke this
L:20:Tom:Brady:12340:Golf
Now the line data will never be the same but it will have the same fixed length. The L will be the identifier to signal to do the above,
So
where 20 is would be 2 characters
Tom = 4 five characters
Brady = 10 characters
12340 = 5 chars
Golf= 4 chars
so lets say the next line would be
L40JimmyBrad 123 base
it would do this to the line
L:40:Jimmy:Brad:123:base
striping out the empty spaces.
Is this hard to do????
example that I have is:
L20Tom Brady 12340golf
It needs to be when the code sees the line that starts with L to
make the line look lke this
L:20:Tom:Brady:12340:Golf
Now the line data will never be the same but it will have the same fixed length. The L will be the identifier to signal to do the above,
So
where 20 is would be 2 characters
Tom = 4 five characters
Brady = 10 characters
12340 = 5 chars
Golf= 4 chars
so lets say the next line would be
L40JimmyBrad 123 base
it would do this to the line
L:40:Jimmy:Brad:123:base
striping out the empty spaces.
Is this hard to do????
ASKER
yes the L will never change
and are the other character counts ALWAYS the same
2 characters ('20' in your example) followed by
5 Characters ('Tom ' or 'Jimmy' in you examples) foloowed by
10 Characters ('Brady ' or 'Brad ' in your examples) followed by
5 Characters ('12340' in your example) followed by
4 characteres ('golf' or 'base' in your examples)
AW
2 characters ('20' in your example) followed by
5 Characters ('Tom ' or 'Jimmy' in you examples) foloowed by
10 Characters ('Brady ' or 'Brad ' in your examples) followed by
5 Characters ('12340' in your example) followed by
4 characteres ('golf' or 'base' in your examples)
AW
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Dim mainLine as string = "L40JimmyBrad 123 base "
Dim temp As String
Dim temp1 As String
Dim temp2 As String
Dim temp3 As String
Dim temp4 As String
Dim temp5 As String
temp = mainLine.Substring(0, 1)
temp1 = mainLine.Substring(2, 4)
temp2 = mainLine.Substring(5, 10)
temp3 = mainLine.Substring(11, 21)
temp4 = mainLine.Substring(22, 27)
temp5 = mainLine.Substring(28, 32)
Dim position1 As Int16 = temp1.IndexOf(" ")
Dim position2 As Int16 = temp2.IndexOf(" ")
Dim position3 As Int16 = temp3.IndexOf(" ")
Dim position4 As Int16 = temp4.IndexOf(" ")
Dim position5 As Int16 = temp5.IndexOf(" ")
If position1> 0 Then
temp1 = temp1.substring(0,position 1)
End If
If position2> 0 Then
temp2 = temp2.substring(0,position 2)
End If
If position3> 0 Then
temp3 = temp3.substring(0,position 3)
End If
If position4> 0 Then
temp4 = temp4.substring(0,position 4)
End If
If position5> 0 Then
temp5 = temp5.substring(0,position 5)
End If
Dim resultline as string = temp + ":" + temp1 + ":" + temp2 + ":" + temp3 + ":" + temp4 + ":" + temp5
It might not be the best way to solve this problem... but still this will give you resulting string as you want
Best of luck
Ankit
Dim temp As String
Dim temp1 As String
Dim temp2 As String
Dim temp3 As String
Dim temp4 As String
Dim temp5 As String
temp = mainLine.Substring(0, 1)
temp1 = mainLine.Substring(2, 4)
temp2 = mainLine.Substring(5, 10)
temp3 = mainLine.Substring(11, 21)
temp4 = mainLine.Substring(22, 27)
temp5 = mainLine.Substring(28, 32)
Dim position1 As Int16 = temp1.IndexOf(" ")
Dim position2 As Int16 = temp2.IndexOf(" ")
Dim position3 As Int16 = temp3.IndexOf(" ")
Dim position4 As Int16 = temp4.IndexOf(" ")
Dim position5 As Int16 = temp5.IndexOf(" ")
If position1> 0 Then
temp1 = temp1.substring(0,position
End If
If position2> 0 Then
temp2 = temp2.substring(0,position
End If
If position3> 0 Then
temp3 = temp3.substring(0,position
End If
If position4> 0 Then
temp4 = temp4.substring(0,position
End If
If position5> 0 Then
temp5 = temp5.substring(0,position
End If
Dim resultline as string = temp + ":" + temp1 + ":" + temp2 + ":" + temp3 + ":" + temp4 + ":" + temp5
It might not be the best way to solve this problem... but still this will give you resulting string as you want
Best of luck
Ankit
ASKER
one question though: what is this line actually doing??
StrResult = StrResult.Substring(0, StrResult.Length - 1)
StrResult = StrResult.Substring(0, StrResult.Length - 1)
in the loop, I append a ":" after each substring, so this last statement drops the ":" which would have appeared after the LAST block. It takes the Substring the starts at the first character and extends to the next to last character (Length - 1)
AW
AW
1 Character
2 DIGITS
5 Characters (may have trailing blanks)
10 Characters (may have trailing blanks)
5 Digits
4 characters
Is that correct?
AW