Salve, ho fatto una sub che confronta due variabili testuali, che poi utilizzerò per confrontare due file.... e inserisco il risultato finale in due RicTextBox in una Form di nome Diff......
il problema è nel confronto così come faccio, si, mi vengono le due differenze, ma se inserisco a una determinata linea delle linee con testo diverso dal primo in quel punto mi viene scalato le linee e di conseguenza risulta da quel punto tutto il testo diverso , ma in realtà è uguale ma con degli spazi in più
Es: F1 (originale)
aaaaaaaaaa
bbbbbbbbb
ccccccccccc
ddddddddd
F2 (stesso file ma Cambiato)
aaaaaaaaaa
bbbbbbbbb
kkkkkkkkkk
kkkkkkkkkk
ccccccccccc
ddddddddd
con la mia Sub si coloro le linee diverse di rosso ma non riesco ad aggiungere nel file F1 le linee vuote che mancano
questa è la sub che utilizzo:
Private Sub FileCompare(ByVal F1 As String, ByVal F2 As String) If F1.Length > 0 And F2.Length > 0 Then '-- creao array dei due file Dim File1() As String = Split(F1, ControlChars.NewLine) Dim File2() As String = Split(F2, ControlChars.NewLine) Dim indx As Integer = 0 '-- inserisco numeri linea For Each F1 In File1 Dim TX As String = F1.Insert(0, "[ " & indx & " ] ") File1(indx) = TX indx += 1 Next indx = 0 For Each F1 In File2 Dim TX As String = F1.Insert(0, "[ " & indx & " ] ") File2(indx) = TX indx += 1 Next '-- Confronto i file e memorizzo le differenze '-- Linee che sono nel File1 e non sono nel file2 Dim InA_notIn_B() As String = File1.Except(File2).ToArray '-- Linee che sono nel File2 e non sono nel file1 Dim InB_notIn_A() As String = File2.Except(File1).ToArray '-- Apro in Modale la Form Diff dove ci sono i due RictTextBox Dim F As New Diff With F '-- Popolo i RicTextBox For Each FFL In File1 .RCT1.AppendText(FFL & ControlChars.NewLine) Next For Each FFL In File2 .RCT2.AppendText(FFL & ControlChars.NewLine) Next '-- Coloro le rispettive linee For Each g In InA_notIn_B If .RCT1.Text.Contains(g) Then Dim i As Integer = .RCT1.Text.IndexOf(g) .RCT1.Select(i, g.Length) .RCT1.SelectionColor = Color.Green End If Next For Each g In InB_notIn_A If .RCT2.Text.Contains(g) Then Dim i As Integer = .RCT2.Text.IndexOf(g) .RCT2.Select(i, g.Length) .RCT2.SelectionColor = Color.Red End If Next .ShowDialog() End With End If End Sub
Mi dareste una mano a risolverlo questo 'problemino'.......
si presenta così:

ed invece dovrebbe essere così

Spero che mi sono spiegato bene.....