Solved

Search for characters in a string (VBScript)

Posted on 2008-10-21
6
2,595 Views
Last Modified: 2012-05-05
I am trying to search for a word within a string. For example the string "This is a test string". I want to find the word "test" within this string and then remove all the text before "test". The result of the string should be "test string". How would I do this using vbscript?
0
Comment
Question by:illfusion82
6 Comments
 
LVL 38

Accepted Solution

by:
Shift-3 earned 500 total points
ID: 22769987
You can get the position of the substring using the InStr function, then get all characters from that point on by using Mid.
http://www.w3schools.com/vbscript/func_instr.asp
http://www.w3schools.com/vbscript/func_mid.asp


strOld = "This is a test string"
strToFind = "test"
 
intPos = InStr(strOld, strToFind)
strNew = Mid(strBase, intPos)

Open in new window

0
 
LVL 3

Expert Comment

by:DrunkenELF
ID: 22770000
Dear IllFusion,
Try the attached code.
Cheers!
D-ELF

MyVar = "This is a test string"
Right(MyVar ,InStr (MyVar,test))

Open in new window

0
 
LVL 38

Expert Comment

by:Shift-3
ID: 22770007
Correction to mine.


strOld = "This is a test string"
strToFind = "test"
 
intPos = InStr(strOld, strToFind)
strNew = Mid(strOld, intPos)
 
WScript.Echo strNew

Open in new window

0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 3

Expert Comment

by:DrunkenELF
ID: 22770032
Correction to mine too
MyVar = "This is a test string"
Result = Right(MyVar ,InStr (MyVar,test))
0
 
LVL 65

Expert Comment

by:RobSampson
ID: 22771162
Hi, as an addition to Shift-3's code, this will tell you whether the string was found or not as well, and also has the option of a case sensitive find.

Regards,

Rob.
strOriginalString = "This is a test string"
strStringToFind = "test"
 
boolCaseSensitive = True
 
If boolCaseSensitive = True Then
	intPos = InStr(strOriginalString, strStringToFind)
Else
	intPos = InStr(LCase(strOriginalString), LCase(strStringToFind))
End If
 
If intPos > 0 Then
	strNewString = Mid(strOriginalString, intPos)
	WScript.Echo "The new string is" & VbCrLf & strNewString
Else
	WScript.Echo strStringToFind & VbCrLf & "was not found in" & VbCrLf & strOriginalString & _
		VbCrLf & VbCrLf & "Case Sensitive: " & boolCaseSensitive
End If

Open in new window

0
 
LVL 1

Author Closing Comment

by:illfusion82
ID: 31508435
Thanks shift-3 and everyone that posted a response. I tried shift-3's resolution and it worked perfectly!
0

Featured Post

ScreenConnect 6.0 Free Trial

Check out the updates in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI that improves session organization and overall user experience. See the enhancements for yourself!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is the result of a quest to better understand Task Scheduler 2.0 and all the newer objects available in vbscript in this version over  the limited options we had scripting in Task Scheduler 1.0.  As I started my journey of knowledge I f…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question