• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 273
  • Last Modified:

Extracting text from a text file

I need to extract certain strings of text from a formatted text file (web addresses). I need to open an existing file extract the info and save into a comma delimeted form. Basically just outputting any web addresses it finds into a text file with quotes around them.
0
cliff_martin
Asked:
cliff_martin
  • 4
1 Solution
 
percosolatorCommented:
you haven't specified your problem.
0
 
a111a111a111Commented:
Hi, Here is a working code that I made for you.
I you want the completed project you can download it from:
http://www.hili.com/~shay/htmlfile.zip

'============ start  ==========

Option Explicit

Private Sub Command1_Click()
Dim a$
Dim Start As Long
Dim st As Long
Dim ere As Long
Dim f$
Dim Str1$, Str2$
Dim StartTime
Dim EndTime
Dim Rc As RichTextBox
Dim SSS
Set Rc = Rtb    ' Create valid object reference.
Dim OneLine$
Dim AllLines
Dim Wrap

Wrap = Chr$(13) & Chr(10)

Rc = Rtb
f = FreeFile
CommonDialog1.ShowOpen
Open CommonDialog1.filename For Input As f
Rc.Text = Input(LOF(f), f)
Close f

a = Rc.Text
Start = 1
Rc.SelStart = 0
Rc.SelLength = Len(Rtb)
Rc.SelColor = RGB(0, 0, 0)
Rc.SelLength = 0
Rc.Visible = False ' hide richtextbox
Screen.MousePointer = vbHourglass

StartTime = Timer
Do
Str1 = "<A HREF=" & Chr$(34)
Str2 = Chr(34) & ">"
  ere = InStr(Start, a, Str1)
  If ere Then
    Start = ere
  Else
        Exit Do
  End If
   SSS = Chr(34)
  ere = InStr(Start, a, Str2)
  If ere Then
    st = ere
    Rc.SelStart = Start - 1
    Rc.SelLength = st - Start + 1
    Rc.SelColor = QBColor(9)
    If Len(Rc.SelText) > 2 Then
        OneLine = Right(Rc.SelText, Rc.SelLength - 8)
        AllLines = AllLines & OneLine & Wrap
    End If
  Else
    Exit Do
  End If
 
  Start = Start + 1
Loop

Close #1
Text1.Text = AllLines
Screen.MousePointer = vbArrow
Rc.Visible = True
EndTime = Timer
MsgBox "Done  " & EndTime - StartTime

End Sub

' ========== end ===========

shay@hili.com
0
 
cliff_martinAuthor Commented:
This Looks Like it will work. Forgive me for not stating my problem. Problem: I'm Dumb. Actuall I am a VB newbie and I was just looking for a sample that I can learn from while accomplishing my task. Thanks...
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
a111a111a111Commented:
Additions.

Hi,
I add 2 more functions to the "Project".
1. Auto save in case you overwrite the original file (HTML or so.)
2. Create a new file with the results (You specify the file name.)

'=========== Start ============

Option Explicit

Private Sub Command1_Click()
Dim a$
Dim Start As Long
Dim st As Long
Dim ere As Long
Dim f$
Dim Str1$, Str2$
Dim StartTime
Dim EndTime
Dim Rc As RichTextBox

Set Rc = Rtb    ' Create valid object reference.
Dim OneLine$
Dim AllLines
Dim Wrap
On Error Resume Next

Wrap = Chr$(13) & Chr(10)

Rc = Rtb
f = FreeFile
CommonDialog1.ShowOpen
Open CommonDialog1.filename For Input As f

FileCopy CommonDialog1.filename, "Autosave.txt" ' this is auto save in case you made a mistake and overwrite your original file.

Rc.Text = Input(LOF(f), f)
Close f

a = Rc.Text
Start = 1
Rc.SelStart = 0
Rc.SelLength = Len(Rtb)
Rc.SelColor = RGB(0, 0, 0)
Rc.SelLength = 0
Rc.Visible = False ' hide richtextbox
Screen.MousePointer = vbHourglass

StartTime = Timer
Do
Str1 = "<A HREF=" & Chr$(34)
Str2 = Chr(34) & ">"
  ere = InStr(Start, a, Str1)
  If ere Then
    Start = ere
  Else
        Exit Do
  End If
 
  ere = InStr(Start, a, Str2)
  If ere Then
    st = ere
    Rc.SelStart = Start - 1
    Rc.SelLength = st - Start + 1
    Rc.SelColor = QBColor(9)
   
    If Len(Rc.SelText) > 2 Then
        OneLine = Right(Rc.SelText, Rc.SelLength - 8)
        AllLines = AllLines & OneLine & Wrap
    End If
  Else
    Exit Do
  End If
 
  Start = Start + 1
Loop

Close
Text1.Text = AllLines
Screen.MousePointer = vbArrow
Rc.Visible = True
EndTime = Timer
MsgBox "Click OK now and then type the name of the file you want to Save As"
CommonDialog1.ShowOpen
Open CommonDialog1.filename For Output As f
Print #f, Text1.Text
Close
MsgBox "Done  " & EndTime - StartTime & "  In Seconds"
End Sub

'============End =============

Also the complete Project is at: www.hili.com/~shay/htmlfile.zip

The zip file contained an EXE file for use to any user/Programmer that not having VB 5.0 compiler.

Shay@hili.com

0
 
a111a111a111Commented:
OKay well I just add a comment and I saw you gave me the points and some of "your comments"

In any case I'll be happy to assist you at any time.
Just Email to shay@hili.com with your question/s.

Thanks again.

BTW is was fun.

0
 
a111a111a111Commented:
Hi again.

Well for a newbie I will recommend for you to make a function from the selected
code that I posted here.

Remember backup your code every time you made a big modification.

The project is as an example only i.e. "Form1" , "Project1" and so.
It is NOT the way to write programs, But it is as is in order to give you a chance to change it name and make it clear.

Shay
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now