Home |
Search |
Today's Posts |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
this worked for me with the test data you supplied:
copy your files to a test directory and test it on these copies of your files: Sub ReadStraightTextFile() Dim sStr As String Dim LineofText As String Dim rw As Long, pay As Double Dim v As Variant, s As String Dim v1() As Variant Dim v2() As Variant Dim lPmt As Long, tot As Double Dim i As Long, j As Long ReDim v1(1 To 1) ReDim v2(1 To 1) Open "C:\MYFILES\ES_EF_AIG_20141440_105708_d.txt" _ For Input As #1 Do While Not EOF(1) Line Input #1, LineofText v = Split(LineofText, ",") v1(UBound(v1)) = v ReDim Preserve v1(1 To UBound(v1) + 1) Loop 'Close the file Close #1 ReDim Preserve v1(1 To UBound(v1) - 1) Open "C:\MYFILES\ES_FE_AIG_20143416_142901_d.txt" _ For Input As #1 Do While Not EOF(1) Line Input #1, LineofText v = Split(LineofText, ",") v2(UBound(v2)) = v ReDim Preserve v2(1 To UBound(v2) + 1) Loop 'Close the file Close #1 ReDim Preserve v2(1 To UBound(v2) - 1) For i = LBound(v1) To UBound(v1) For j = LBound(v2) To UBound(v2) Debug.Print v1(i)(0), v2(j)(0) If v1(i)(0) = v2(j)(0) Then s = v2(j)(49) s = Replace(s, """", "") If Abs(CDbl(s) - _ CDbl(v1(i)(53) / 100#)) < 0.0001 Then tot = CDbl(v1(i)(54) / 100#) pay = CDbl(s) lPmt = CLng(v1(i)(55)) lPmt = lPmt - 1 tot = tot - pay Debug.Print tot, pay, lPmt v1(i)(54) = Format(Application.Round(tot * 100#, 0), "00000000000") v1(i)(55) = Format(lPmt, "000") Else MsgBox "Payment Mismatch - stop processing" Exit Sub End If End If Next j Next i Open "C:\MYFILES\ES_EF_AIG_20141440_105708_d.txt" _ For Output As #1 For i = LBound(v1) To UBound(v1) v = v1(i) sStr = Join(v, ",") Print #1, sStr Next i 'Close the file Close #1 End Sub -- Regards, Tom Ogilvy "BristolBloos" wrote: Hello All, I need some help on comma separated text files, changing them and saving them. I have got two text files. The first file "ES_EF_AIG_20141440_105708_d.txt" has employee payment record exactly like below: "C0000000519","","","MR STEPHEN AGUTTER","10 COLCOKES ROAD","BANSTEAD","SURREY","","","","","","SM7 2EW","MAL","AGUTTER","NS686159A","0000153363","CDN ","E","EMPLOYEE","29/10/2001","","","","","","","","","AIG EUROPE (UK) LTD","AIG CLAIMS EXECUTIVE","","","","","","","","EEE","","GBR","GB R","","","SSS","23B","20030601ES","01/06/2003","01/06/2006",355,+00000942525,0026550000,0000002108,00025 000,00000850000,034,000,0,0,0,,"",,"",,"",,"",,"", ,"",,"",,"",,"",,"",,"",,"",,"",,"",,"",,"",,"",," ",,"",,"",0026550000,"",,,"" The main fields in this record for me a 1st field - "C0000000519" 54th field - 00025000 55th field - 00000850000 56th field - 034 The second file "ES_FE_AIG_20143416_142901_d.txt" is a payment file with record exactly like below: "C0000000519","","","NS686159A","0000153363","CDN" ,"E","EMPLOYEE","29/10/2001","","","","","","","","AIG EUROPE (UK) LTD","AIG CLAIMS EXECUTIVE","","","","","","","","EEE","","GBR","GB R","","","SSS","23B","20030601ES","01/06/2003","01/06/2006",0000002108," 250.00"," 8500.00",034,000,1208,10185844,"T",00001,"01/03/2006","ESPAY",001,034," 250.00"," 0.00","","","","","CONTRIBSYS"," 0.00000000","" Once again the main fields in this record for me a 1st field - ("C0000000519") 50th field - " 250.00" My task is to open the first file and, if there is a corresponding record in the second file, then update the first file by removing one payment and decrementing the total no. of payments by 1. In the above example I want to basically change the 55th and 56th fields to 00000825000 and 033 respectively and save the file in the same format (that is a csv text file). I worked manually for the last two days on 60 files that are small (with upto 20 records). Now there are exactly 60 files that have around 1000 records each. Can someone please guide me in writing a code or please supply code for the above. I tried opening both these files from Excel and then I am haqving problems while saving them. I cannot tamper with the format of the files as they need to be uploaded onto my system. I hope I have explained the problem. The solution might be simple but I am not getting it. Moreover I don't want to mess up the data. Therefore please someone help me. Hoping to get an early reply. Thanks & Regards, Prasad |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
text string separated by comma | Excel Discussion (Misc queries) | |||
How do I convert an excel file into a comma separated values file | Excel Discussion (Misc queries) | |||
Changing a comma separated text file and save it. | Excel Discussion (Misc queries) | |||
how could I import a text file with comma separated values into ex | Excel Worksheet Functions | |||
Save file with fields within quotes and comma separated | Excel Programming |