writing to a specific column in a text file

I want to write to a text file.
I would want data to be written to specific columns because i will need to read it later with a data dictionary.

eg Staff id - starts at column 1
staff name - starts at column 10
staff salary - starts at column 50.

I am using vb6

regards

anthony
LVL 1
Anthony MatovuBusiness Analyst, MTN UgandaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

JackOfPHCommented:
Here is a sample:
 Public Sub WruteToText()
 
 
        Dim Column1 As String = "Column1"
        Dim Column2 As String = "Column2"
        Dim Column3 As String = "Column3"
        Dim Column4 As String = "Column4"
        Dim Column5 As String = "Column5"
 
        Using textFile As IO.TextWriter = IO.File.CreateText("D:\MyTextFile.txt")
            'Set a delimeter for the textfile to separate the each column.
            'The delimeter for this example is ||.
            textFile.WriteLine("{0}||{1}||{2}||{3}||{5}", Column1, Column2, Column1, Column2, Column1)
            textFile.WriteLine("{0}||{1}||{2}||{3}||{5}", Column1, Column2, Column1, Column2, Column1)
 
            'Save the data to the textfile.
            textFile.Flush()
            textFile.Close()
        End Using
 
    End Sub
 
    Private Sub ReadText()
 
 
        Dim textFile As IO.TextReader = IO.File.OpenText("D:\MyTextFile.txt")
        Dim value As String
        Dim charge As String = ""
 
        Do
            'Read each line in the text file.
            value = textFile.ReadLine
 
            If value Is Nothing Then
                Exit Do
            End If
 
            'This will split the columns in the given line
            Dim Columns() As String = value.Split("||")
 
            'Read each column in the current line in the text file.
            For Each column As String In Columns
                MsgBox(column)
            Next
 
        Loop
 
        textFile.Close()
 
    End Sub

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
CodeCruiserCommented:
@JackofPH
"I am using vb6" is the third last line!
0
Robberbaron (robr)Commented:
this function is from a while ago but still in my toolbox.... havent checked the method of formating strings recently.
  uses VB6 format function and pads front and back as necessary


for each line
   sOut = ""
   sOut = sOut & Fmt$(staffid,"     00000","R")   'staffid right justified in 10 char
   sOut = sOut & Fmt$(staffname,space$(40),"L")   'name left justified in 40 char
   sOut = sOut & Fmt$(salary,"###########0.00","R")   'salary in 15 char
 
print #1,sOut
 
next line
 
'-------------------------------------------
Function Fmt$(txt As String, field$, justification$)
    'formats txt in specified field  width
    Dim a As String, x As Integer, y As Integer, totlen As Integer
    
    'Determine length of field
    x = InStr(field$, ";")   'search for separator
    If x = 0 Then x = Len(field$) Else x = x - 1
    totlen = x
 
    a = Trim$(left$(Format(txt, field$), totlen))
    
    Select Case LCase$(justification$)
        Case "L"
            x = 0: y = totlen - Len(a)
        Case "R"
            x = totlen - Len(a): y = 0
        Case "C"
            x = (totlen - Len(a)) / 2
            y = totlen - Len(a) - x
        Case Else
            'use left
            x = 0: y = totlen - Len(a): y = 0
    End Select
 
    Fmt$ = Space$(x) + a + Space$(y)
 
End Function

Open in new window

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.

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.