Butch
Butch

Reputation: 3

Modify data in a text file

Have created a file that stores records with data separated by "," and ending with ";".

So far I have been able to append to the file, but now I need to update specific elements in a record. Each record starts with a unique identifier.

Below is a sample of how the file is opened and each unique ID is read into an array:

DataInputStream fin = new DataInputStream(openFileInput("Updates.txt"));
try {
    for (;;) {
    String record = fin.readUTF();
    Log.d(DEBUG_TAG, "Record "+record);
    elements = record.split(",");
    String trackingNo = elements[0];
    UpdateRecord item = new UpdateRecord(trackingNo);
    }
}
catch (EOFException e) {
    Log.i("Data Input Sample", "End of file reached");
}
fin.close();

Upvotes: 0

Views: 865

Answers (1)

vijaykumar1981
vijaykumar1981

Reputation: 11

Sub example1()
Dim strFinal As String
Dim strline As String

Open "D:\textfile.txt" For Input As #1
    While EOF(1) = False
        Line Input #1, strline
        If Len(strline) > 24 Then
            strFinal = strFinal + ModifyColumn(strline)
            Else
            strFinal = strFinal + strline + vbCrLf
        End If
    Wend
    strFinal = strFinal
Close #1

Open "D:\textfile.txt" For Output As #1
    Print #1, strFinal
Close #1
End Sub


Function ModifyColumn(ByVal strInput As String) As String
    Dim arrString() As String
    Dim strOutput As String
    'split the columns
    arrString = Split(strInput, vbTab)
    'concatenate the first 2 column as they are
    strOutput = arrString(0) + vbTab + arrString(1) + vbTab + arrString(2)
    'add 100$ to column3
    requirevalue = Left(arrString(3), InStr(1, arrString(3), "|") - 1)
    last3Digit = Right(requirevalue, 3)
    If Left(requirevalue, 3) = "max" Then
        Newvalue = vbTab + "OTPxxxxxx" & last3Digit & "|" & Right(arrString(3), Len(arrString(3)) - InStr(1, arrString(3), "|")) + vbCrLf
    Else
        Newvalue = vbTab + arrString(3) + vbCrLf
    End If
    strOutput = strOutput & Newvalue
    'strOutput = strOutput + Strings.Trim(Str(CDbl(Left(arrString(3), Len(arrString(2)) - 1)) + 100)) + "$" + vbCrLf
    ModifyColumn = strOutput
End Function`enter code here`

Upvotes: 1

Related Questions