?
Solved

VBScript Function to process file in -> file out

Posted on 2008-06-11
3
Medium Priority
?
344 Views
Last Modified: 2010-04-16
I need a function in VBScript that accepts 3 parameters, an input filename, an output filename and a string.
I want the function to open the input file for reading and the output file for appending.
I want to write each line of the input file to the output file with the string prepended to the data, then close the files and return the number of lines written (or read)
Here is an example:
calling the function:
  lc = WriteOutput("c:\mydata\myfilein.txt", "c:\mydata\myfileout.txt", "123456,")
  MsgBox cstr(lc) & " lines written"

If the contents of c:\mydata\myfilein.txt was:
abc,def,xyz
tuv,mno,rts

the file c:\mydata\myfileout.txt would contain (after the call):
123456,abc,def,xyz
123456,tuv,mno,rts

IMPORTANT: If c:\mydata\myfileout.txt already contains data, I want the additional data appended to the file. Thus, if I called the function a second time, with a different input filename and string but same output file, the contents of the string + input file  would be added to the output file.
0
Comment
Question by:dbbishop
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 21761647
Please refine what you mean by "VBScript" as it is often used to refer to any code snippet in one of many VB environments...

VBScript (.vbs)
VBA (Office App)
VB6 (or below)
VB.Net 2003 (or below)
VB.Net 2005 (or above)
0
 
LVL 15

Author Comment

by:dbbishop
ID: 21761759
VBScript. Not VBA; not VB6; not VB.Net. VBScript.
0
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 2000 total points
ID: 21762428
Something like this should work...
Const ForReading = 1, ForWriting = 2, ForAppending = 8
 
Function WriteOut(inFile, outFile, prepend)
    Dim fso, f, f2
    Dim inputLine, lineCount
    lineCount = 0
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FileExists(inFile) Then
        Set f = fso.OpenTextFile(inFile, ForReading, False)
        Set f2 = fso.OpenTextFile(outFile, ForAppending, True)
        While Not f.AtEndOfStream
            inputLine= f.ReadLine
            lineCount = lineCount + 1
            f2.WriteLine prepend & inputLine
        Wend
        f.Close
        Set f = Nothing
        f2.Close
        Set f2 = Nothing
    Else
        MsgBox inFile, vbOKOnly, "inFile Not Found"
    End If
    Set fso = Nothing
    WriteOut = lineCount
End Function

Open in new window

0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

In this article we want to have a look at the directory attributes which are used by Microsoft to store the so called Security Identifiers (SID). These SIDs plays an important role in delegating and granting permissions and in authentication of trus…
I met Paul Devereux (@pdevereux) today when I responded to his tweet asking “Anybody know how to automate adding files from disk to a folder in #outlook  ?”.  I replied back and told Paul that using automation, in this case scripting, to add files t…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…

801 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