?
Solved

Replace unknown text in text file by line number

Posted on 2008-06-21
4
Medium Priority
?
543 Views
Last Modified: 2008-06-23
I know the line number of the text in the text file. I don't know what the text is but I want to replace it with new text. How can I do this?
0
Comment
Question by:glasairguy
4 Comments
 
LVL 15

Expert Comment

by:dosth
ID: 21836822
try some think like this


<%
Public Function ReplaceLine(fName As String,sText As String, LineNumber As Long) _
     As Boolean
'Purpose: Replace a Line from a text file
 
'Parameters: fName = FullPath to File
'            LineNumber = LineToDelete
 
'Returns:    True if Successful, false otherwise
 
'Requires:   Reference to Microsoft Scripting Runtime
 
'Example: ReplaceLine("C:\Myfile.txt", "TEST Replace", 3)
'           Replace third line of Myfile.txt
'______________________________________________________________
                       
 
  Dim oFSO As New FileSystemObject
  Dim oFSTR As Scripting.TextStream
  Dim ret As Long
  Dim lCtr As Long
  Dim sTemp As String, sLine As String
  Dim bLineFound As Boolean
  
  On Error GoTo ErrorHandler
  If oFSO.FileExists(fName) Then
     Set oFSTR = oFSO.OpenTextFile(fName)
    lCtr = 1
     Do While Not oFSTR.AtEndOfStream
        sLine = oFSTR.ReadLine
        If lCtr <> LineNumber Then
            sTemp = sTemp & sLine & vbCrLf
        Else
            bLineFound = True
            sTemp = sTemp & sText & vbCrLf
        End If
        lCtr = lCtr + 1
    Loop
   
     oFSTR.Close
     Set oFSTR = oFSO.CreateTextFile(fName, True)
     oFSTR.Write sTemp
  
    ReplaceLine = bLineFound
   End If
   
 
ErrorHandler:
On Error Resume Next
oFSTR.Close
Set oFSTR = Nothing
Set oFSO = Nothing
 
End Function
%>

Open in new window

0
 

Author Comment

by:glasairguy
ID: 21838012
My Visual Studio 8, Visual Basic doesn't like the terms "FileSystemObject" & "Scripting.TextStream".
Perhaps I selected the incorrect language I am using when I submitted my question...

Andy
0
 
LVL 15

Expert Comment

by:sr75
ID: 21839353
Are you writing a program, or just need a script?  You shouldn't need a compiler to run a script and that is what dotsh provided.  You just need to save it as a text document with the .vbs extension instead of .txt.
0
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 2000 total points
ID: 21839757
Here ya go...
        Dim fileName As String = "c:\someFile.txt"
        Dim lineNumber As Integer = 2 ' 1 (one) based line number!
        Dim lineText As String = "this is the line I want to insert"
 
        Dim lines() As String = Microsoft.VisualBasic.Split(My.Computer.FileSystem.ReadAllText(fileName), vbCrLf)
        If lines.Length >= linenumber Then
            lines(lineNumber - 1) = lineText
        End If
        My.Computer.FileSystem.WriteAllText(fileName, String.Join(vbCrLf, lines), False)

Open in new window

0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Hello again, all.  For those of you that have been following along, you'll know that this is my third article on this topic (though it is not Part III).  This article is sort of remedial, and probably the topic with which I should have started the s…
This is pretty cool.  The purpose of this VB Script is to help you document where JAR (Java ARchive) files and specifically java class files are located so that you can address issues seen with a client or that you can speak intelligently with a dev…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…
This video tutorial shows you the steps to go through to set up what I believe to be the best email app on the android platform to read Exchange mail.  Get the app on your phone: The first step is to make sure you have the Samsung Email app on your …
Suggested Courses
Course of the Month7 days, 2 hours left to enroll

593 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