| | |
How to Remove Newline character from a VB String
Please support our Visual Basic 4 / 5 / 6 advertiser: Programming Forums - DaniWeb Sister Site
Thread Solved |
OKay. I managed to, or at least I think I did, to do it with this.
If anyone has a better solution, or it doesnt do what I want, please correct me. Thanks.
Visual Basic 4 / 5 / 6 Syntax (Toggle Plain Text)
SearchString = Replace(SearchString, Chr(13), "")
バルサミコ酢やっぱいらへんで
That is the best way to do it. A couple things I would note on this. One of them, is the use of an empty string in the replace function. I know on small applications, that it doesn't make a serious difference, but an empty string uses memory space (well, more than a null value). A Character holds (I believe it's) 8 bytes. A Null Value holds like 1, or 2. So, in really big VB applications, changing "" to vbnullstring can speed up the app (benchmarks show by 40%) by using vbnullstring instead of "". So, you could redo the function as
The other thing, and I'm not sure if this is the intended result or not, but the above code will remove ALL chr(13's) from the string, not just the trailing one (when reading files, it's usually not a problem, since input will separate lines by newlines as it's read in, but a lot of apps that I have built require reading a file (or from a socket) 1 character at a time). An alternative method, if you are just wanting to remove the trailing newline, would be to use the left function
I'm sure that the replace function is a fine solution for what you are doing, but I wanted to make sure to note the couple of exceptions.
SearchString = Replace(SearchString, Chr(13), vbnullstring) to perform the same action, and save RAM usage. Again, I know this isn't extremely important, especially with modern machines, but it's good to know, and a nice practice to have.The other thing, and I'm not sure if this is the intended result or not, but the above code will remove ALL chr(13's) from the string, not just the trailing one (when reading files, it's usually not a problem, since input will separate lines by newlines as it's read in, but a lot of apps that I have built require reading a file (or from a socket) 1 character at a time). An alternative method, if you are just wanting to remove the trailing newline, would be to use the left function
SearchString = left(SearchString, Len(SearchString) -1). I'm sure that the replace function is a fine solution for what you are doing, but I wanted to make sure to note the couple of exceptions.
Wow. That was some interesting points you made there. Used the vbNullString, as you adviced. And about the second point, yes I want to remove the trailing newspace. But the thing is this is for a Office Macro. I want to remove the newline from the double clicked text the user selected. Depending on the situation, the double clicked text may or may not have a newline. So I can't always be sure that the last character is a newline. So I will have to stick with the Replace function. Keep any additional advice coming. Much appreciated.
バルサミコ酢やっぱいらへんで
Visual Basic 4 / 5 / 6 Syntax (Toggle Plain Text)
if right(SearchString, 1) = chr(13) or right(SearchString, 1) = chr(10) then SearchString = right(SearchString, len(SearchString) -1) end if
hmmm. Looks like there is a problem with your last snippet. When I select it with a newline, I get a completely different character. Mind you that I am working in Japanese, so maybe the fact that unicode characters have 2 bytes comes into play here. So running the above code with the selected text as
Edit.
Checked again. It is the second character in the search string. It was difficult to recognise in the debugger. One of the lines was missing because of the apparent low resolution in the debugger so I thought it was a new character.. Japanese can be subtle sometimes.
障害NL leaves me with a character like (but not exact) this害. I don't even know what character it is. First time i saw something like that. The replace function works fine. :eek:Edit.
Checked again. It is the second character in the search string. It was difficult to recognise in the debugger. One of the lines was missing because of the apparent low resolution in the debugger so I thought it was a new character.. Japanese can be subtle sometimes.
Last edited by WolfPack; Sep 11th, 2006 at 7:12 pm.
バルサミコ酢やっぱいらへんで
It's a problem with my code (BAH):
Visual Basic 4 / 5 / 6 Syntax (Toggle Plain Text)
if right(SearchString, 1) = chr(13) or right(SearchString, 1) = chr(10) then ' /* Should be Left, Not Right */ SearchString = left(SearchString, len(SearchString) -1) end if
Last edited by Comatose; Sep 11th, 2006 at 7:19 pm.
![]() |
Similar Threads
Other Threads in the Visual Basic 4 / 5 / 6 Forum
- Previous Thread: ADO replace value function
- Next Thread: Problem with timer (urgent)
Views: 24323 | Replies: 11
| Thread Tools | Search this Thread |
Tag cloud for Visual Basic 4 / 5 / 6
* 6 429 2007 access activex add age append application basic beginner birth bmp c++ calculator cd cells.find click client code college column component connection connectionproblemusingvb6usingoledb copy creat ctrl+f data database datareport date delete dissertations dissertationthesis dissertationtopic edit error excel excelmacro file filename form hardware header iamthwee image inboxinvb internetfiledownload keypress label listbox listview liveperson login looping machine microsoft movingranges objectinsert open oracle password prime program prompt range-objects readfile reading record refresh remotesqlserverdatabase report retrieve save search sendbyte sites sort sql sql2008 sqlserver struct table tags textbox time timer urldownloadtofile vb vb6 vb6.0 vba visual visualbasic visualbasic6 web window windows






