Mahmoud Al Haidar
asked on
Highlight Differenct character in 2 text files
I have file A contain number from 1 2 3 4 5 6 7 8
I have file B contain number from 2 4 6 8
I need to develop program in vb to generate third file C containging only the differece Between A and B Like (1 3 5 7)
I did the following but now working ... anybody can help please?
Private Sub ReadandMatch_Click()
'Read The Source File
ff1 = FreeFile
Open Text1.Text For Binary Access Read Lock Read Write As #ff1
s1 = Space$(LOF(ff1))
Get #ff1, , s1
Arr1 = Split(s1, vbCrLf)
Close ff1
'Read The Profile File
ff2 = FreeFile
Open Text2.Text For Binary Access Read Lock Read Write As #ff2 ' if any error change it to #ff1
s2 = Space$(LOF(ff2))
Get #ff2, , s2
Arr2 = Split(s2, vbCrLf)
Close ff2
' Write to output file
ff7 = FreeFile 'Text file format
Open Text5.Text & ".txt" For Output As #ff7
ff8 = FreeFile
Open Text7.Text & ".txt" For Output As #ff8
For O = 0 To UBound(Arr1)
For P = 0 To UBound(Arr2)
If Trim(Arr1(O)) = Trim(Arr2(P)) Then
Print #ff7, Trim(Arr1(O))
Exit For ' if match exit from the second loop
ElseIf Trim(Arr1(O)) <> Trim(Arr2(P)) Then
Print #ff8, Trim(Arr1(O))
Exit For
End If
Next
Next
Close ff7
Close ff8
End Sub
I have file B contain number from 2 4 6 8
I need to develop program in vb to generate third file C containging only the differece Between A and B Like (1 3 5 7)
I did the following but now working ... anybody can help please?
Private Sub ReadandMatch_Click()
'Read The Source File
ff1 = FreeFile
Open Text1.Text For Binary Access Read Lock Read Write As #ff1
s1 = Space$(LOF(ff1))
Get #ff1, , s1
Arr1 = Split(s1, vbCrLf)
Close ff1
'Read The Profile File
ff2 = FreeFile
Open Text2.Text For Binary Access Read Lock Read Write As #ff2 ' if any error change it to #ff1
s2 = Space$(LOF(ff2))
Get #ff2, , s2
Arr2 = Split(s2, vbCrLf)
Close ff2
' Write to output file
ff7 = FreeFile 'Text file format
Open Text5.Text & ".txt" For Output As #ff7
ff8 = FreeFile
Open Text7.Text & ".txt" For Output As #ff8
For O = 0 To UBound(Arr1)
For P = 0 To UBound(Arr2)
If Trim(Arr1(O)) = Trim(Arr2(P)) Then
Print #ff7, Trim(Arr1(O))
Exit For ' if match exit from the second loop
ElseIf Trim(Arr1(O)) <> Trim(Arr2(P)) Then
Print #ff8, Trim(Arr1(O))
Exit For
End If
Next
Next
Close ff7
Close ff8
End Sub
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
what are you doing it with?
also - what are you trying to acheive with Arr2(P) = Arr2(P) + 1 ??
also - what are you trying to acheive with Arr2(P) = Arr2(P) + 1 ??
ASKER
I am really sorry ... I mean I am doing this application using VB6.
Now This application should read to files and generate one file containg the difference lines not available on the second file.
Ar2 defined as long
what am tring to do is to move from one location in the array to anather
from example
First location in the array contain value of 2
Second location in the array contain value of 4
The third location in the array contain value of 6
my problem in the previous application is after matching the firs to lines in each file when find it math I should move to the second line on the second file to compare it
That why I add this statment
Arr2(P) = Arr2(P + 1)
so next time the for loop will take the value in the new location not same location.
The above that I posted will work in vb6
if you must do it with arrays, I would do a foreach each way, ie go through the first file then for each record then loop through the other array - if the value is not found then print it out.
I would then reverse it the other way - for each record in file2 check each value in file1 - if not then print to your file.
you can see an example of how to look at each element in the array in my post
if you must do it with arrays, I would do a foreach each way, ie go through the first file then for each record then loop through the other array - if the value is not found then print it out.
I would then reverse it the other way - for each record in file2 check each value in file1 - if not then print to your file.
you can see an example of how to look at each element in the array in my post
ASKER
My script working ok but result only
in file only 1,3
my problem I can't move from one array to the next array.
the problem on star mark line I need to know how can I do that ?
because if the condition match cursor should move to next line to compare with.
For O = 0 To UBound(Arr1)
For P = 0 To UBound(Arr2)
If Trim(Arr1(O)) = Trim(Arr2(P)) Then
Print #ff7, Trim(Arr1(O))
Arr2(P) = Arr2(P) + 1 **************************
Exit For ' if match exit from the second loop
ElseIf Trim(Arr1(O)) <> Trim(Arr2(P)) Then
Print #ff8, Trim(Arr1(O))
Exit For
End If
Next
Next