Visual Basic Explorer
Visual Basic Explorer
 Navigation
 Home


 Coding
 Source Code

 FAQ Center

 VB Tips

 Downloads

 ToolBox

 Tutorials

 VB Games

 VB News

 VB Award

 VB Forums



 Affiliates
 Planet Source Code

 Rent a Coder

 DirectX4VB


 Misc
 Search

 Feedback

 Advertise

 About


Need to hire
a VB coder?

Please support our sponsor:

 Home 
 Site Map 
 Forums 
 News 
 Feedback 

 

'Get text between Start/Stop tags?

 
Can anyone help me?, I am trying to have a file full of all
sorts of information, and I want to be able to read and project
the data on the screen. But I want to say find the text `start`
and read all of the lines underneath this line until the program
finds the word `stop` and then ignore the text under `stop` and
display the text in between start and stop. Is this possible?

 
'--------------------------------------
'Peter Denton 11/01/98
'--------------------------------------

 
If start and stop are on a seperate line on there own you could
use something like:

Sub Command1_Click ()
text1 = ""
Dim tempvar As String
Open "c:\filedir\filename.ext" For Input As #1
Do While Not EOF(1) And LCase(tempvar) <> "start"
Input #1, tempvar
Loop
If Not EOF(1) Then
Do While Not EOF(1) And LCase(tempvar) <> "stop"
Input #1, tempvar
If LCase(tempvar) <> "stop" Then
text1.Text = text1.Text + tempvar + Chr(13) +
Chr(10)
End If
Loop
End If
Close #1
End Sub

Text1 is a text box with it`s multiline property set to true but
you can replace this with another control or the print method.

 
'--------------------------------------
'John F Stendor 11/2/98
'--------------------------------------

 
Try this...

 
'********************************************
' SENT 11/2/98 JFS
'********************************************

 
Sub cmdGatherDataButton()

 
dim sBuffer as String
dim bAddText as integer
dim bReadData as Integer

 
dim sText as string

 
'---------------------------------------------
' Initialize variables for sub-routine ..
' Flush the textbox ....
'---------------------------------------------

 
bReadData = TRUE
sText = "NO ASCII DATA FOUND"

 
Text1.Text = ""

'---------------------------------------------
' Open yopur ASCII text file ...
'---------------------------------------------

 
Open "c:\yourdir\yourname.ext" For Input As #1

 
'---------------------------------------------
' Gather the ASCII test ...
'---------------------------------------------

 
Do While Not EOF(1) And bReadData

 
'---------------------------------------------
' Grab the input text file data an entire line.
'---------------------------------------------

sBuffer = LINE INPUT #1, sBuffer

 
'---------------------------------------------
' Determine what to do ...
'---------------------------------------------

 
Select Case UCase$(Trim$(sBuffer))

 
'-----------------------------------------------------
' If you want to start collecting ASCII text data ...
' then turn on the switch
' Make sure you flush the sText variable
' This excludes the START command
'-----------------------------------------------------

 
Case "START":

 
sText = ""
bAddText = TRUE

 
'---------------------------------------------------
' If you want to STOP collecting ASCII text data ...
' then turn off the switch
' This excludes the STOP command
'---------------------------------------------------

 
Case "STOP":

 
bAddText = FALSE
bReadData = FALSE

 
'---------------------------------------------
' We have another data type, should we collect it
'---------------------------------------------

 
Case Else

 
if bAddText then
sText = sText & sBuffer & Char$(13) & Char$(10)
End If

 
End Select

 
Loop

 
'---------------------------------------------
' Punch the collected data into the TEXTBOX ....
'---------------------------------------------

 
Text1.Text = sText

 
Close #1

 
End Sub

 
Couple of quick points.

 
1) Don`t add to a text box dynamically, while processing, create a
string variable and then punch it into the control when your done. VB
executes faster when it doesn`t have to refresh controls constantly. The
text assignment causes a windows SENDMESSAGE everytime you assign a
value to it.

 

 
2) If you are looking for the START indicator embedded within the text
then all you need to do is modify the code to use INSTR() and your off
and running. This holds true for the STOP indicator also.

 
Just a few MID$ commands and movement of the sTest string concatenation
and you ready to go.

 

 
3) Recommendation make the START and STOP indicators unique in the ASCI
test file.

 
.START.
.STOP.

 
This way you can use the START and STOP as words within the text you
wish to select/display.

 

 
4) I`m not to sure about the Char$(13) & Char$(10) I always use a
listbox when I read ASCII text. It eliminates the memory issues with
64K for a text box and I stay away from textboxs when I have to display
more than 10 lines of text.

 
I use the following....

 
lstMyListBox.additem sBuffer

 
5) Set the Temporary variable to a value "NO ASCII DATA FOUND" so you
know if something went wrong you can trace the code. This is especially
valuable when you have to manage multiple files and multiple
forms/controls.

 

 


Downloads

In IE right-click and select 'Save Target As...' or in Netscape right-click and select 'Save Link As...'

 

View Plain Text View Plain Text
Download Demo Project Not Available
View Code Online Not Available





Home | About | What's New | Source Code | FAQ | Tips & Tricks | Downloads | ToolBox | Tutorials | Game Programming | VB Award | Search | VB Forums | Feedback | VBNews | Copyright & Disclaimer | Advertise | Privacy Policy |

Quick searches: Site Search | Advanced Site Search 

Copyright 2002 by Exhedra Solutions, Inc.
By using this site you agree to its terms and conditions
VB Explorer and VBExplorer.com are trademarks of Exhedra Solutions, Inc.