Newsgroup: it.comp.lang.visual-basic
Titolo: Comando Sort

Salve,
ho uno script che individua le differenze tra 2 files di testo.
Lo script mi da come risultato solo "Different files" nel caso i 2 file
confrontati sono differenti.
Ora vorrei che mi fornisse pure le stringhe differenti.
Credo che bisogna utilizzare il comando Sort,ma non so come.
Mi potete dare una mano?
code:---------------------------
dim filename1
dim filename2
filename1="c:\sitelist.txt"
filename2="c:\textstream.txt"
Set oFSO1 = CreateObject("Scripting.FileSystemObject")
Set oFSO2 = CreateObject("Scripting.FileSystemObject")
Set oTextFile1 = oFSO1.OpenTextFile(filename1, 1 , True)
Set oTextFile2 = oFSO2.OpenTextFile(filename2, 1 , True)
While oTextFile1.AtEndOfStream <> True
line1 = oTextFile1.ReadLine
line2 = oTextFile2.ReadLine
if (line1<>line2) then
Mail = "Different files" & vbcrlf & line1 & vbcrlf & line2
end if
wend
'if the second file has more strings i get the notify
if (oTextFile2.AtEndOfStream <> True) then
Mail = "Different Files"
oTextFile1.close
oTextFile2.close

 
all'interno dell'if, visualizzi o scrivi su stringa line1 e line2. Se 
vuoi sapere il numero di riga, aggiungi un contatore...
Ciauz
-- 
'gnurant come una cucuzza


Potresti spiegarmi come?
Purtroppo sono un newbie con Visual Basic

 Ora vorrei che mi fornisse pure le stringhe differenti.
Scusa, ma il codice che hai riportato va benissimo.
Solo che, per come l'hai scritto, ogni differenza 'sovrascrive' la 
precedente, per cui ti ritrovi solo l'ultimo (che è la differenza nel 
numero di righe).
Basta accodare i vari warning.
Vedi sotto.
Ciao
Alberto
dim filename1
dim filename2
filename1="c:\sitelist.txt"
filename2="c:\textstream.txt"
Set oFSO1 = CreateObject("Scripting.FileSystemObject")
Set oFSO2 = CreateObject("Scripting.FileSystemObject")
Set oTextFile1 = oFSO1.OpenTextFile(filename1, 1 , True)
Set oTextFile2 = oFSO2.OpenTextFile(filename2, 1 , True)
While oTextFile1.AtEndOfStream <> True
line1 = oTextFile1.ReadLine
line2 = oTextFile2.ReadLine
if (line1<>line2) then
Mail = Mail & "Different files" & vbcrlf & line1 & vbcrlf & line2 & 
vbcrlf
end if
wend
'if the second file has more strings i get the notify
if (oTextFile2.AtEndOfStream <> True) then
Mail = Mail & "Different Files"
oTextFile1.close
oTextFile2.close
-- 
"Se viriamo, viriamo viriamo viriamo;
Se andiamo dritti, viriamo"
(Cit. "il tattico")

 Basta accodare i vari warning.
Il problema del mio script è che mi segnala solo che ci sono stringhe
differenti.Io vorrei che mi riportasse anche il contenuto delle stringhe
differenti.
Ciao

FOX, giovedì alle 17.34.25, ha estratto dai neuroni:

No, il problema è che non sai leggere.
Ti ho spiegato il perchè, e ti ho modificato il codice per avere anche 
il contenuto delle stringhe differenti.
Serve altro?
Alberto


 Alberto
Scusami....mi sembrava che lo script non funzionasse e invece sta
funzionando bene.
Un'ultima cosa. Credo di aver commesso un'altro errore nello script,infatti
quando i files sono differenti non mi invia solo la stringa differente ma
tutte le stringhe dei files.
Grazie ancora per l'aiuto.
Manuel

 tutte le stringhe dei files.
E cosa dovrebbe fare?
Se vuoi visualizzate tutte le stringhe diverse, e tutte le stringhe 
sono diverse...


 sono diverse...
Il problema č che il primo file aveva solo una stringa in meno...e lo script
mi dava tutte le stringhe come se fossero differenti.
In effetti questo script dovrebbere fare il confronto tra due file di testo
che hanno archiviati al loro intenro stringhe del genere:
WWW Site: 1 - Default Web Site
ora se lo script vede che nel file 2 (textstream.txt) vi č una stringa in
piů rispetto al file sitelist.txt vorrei che mi indicasse quale
stringa/stringhe si trova sul file textstream e non sul file sitelist.
Grazie per la pazienza

 stringa/stringhe si trova sul file textstream e non sul file sitelist.
ho analizzato meglio il problema.
In pratica i due files contengono circa 100 righe ciascuno.
Ora succede che se ad essere mancate č l'ultima riga del file sitelist.txt
allora ottengo la notifica correttamente.
Se invece manca una stringa iniziale o intermedia inizia a dirmi che tutte
le stringhe successive a quella riga sono differenti.
E' possibile risolvere in qualche modo?

 E' possibile risolvere in qualche modo?
Certo.
Anzichè scrivere le stringhe solo se sono diverse, leggi entrambi i 
file e popoli due array di stringhe.
Poi con due for next innestati, controlli se ognuna delle stringhe 
dell'array A è presente o meno nell'array B.
Cerca su MSDN come si gestiscono gli array, e sei a posto.
Ciao
