Finns det något smidigt sätt att gämföra två stycken textfiler och ta reda på vilken/vilka rader som skiljer sig?
:q
11 svar · 509 visningar · startad av mattiasnordin
Finns det något smidigt sätt att gämföra två stycken textfiler och ta reda på vilken/vilka rader som skiljer sig?
:q
Antar att det finns andra sätt att lösa det på men så här blev det:
<%
' Set up constants
Const ForReading = 1
Const Create = False
' Declare local variables
Dim objFSO ' FileSystemObject
Dim TS ' TextStreamObject
Dim strLine ' local variable to store Line
Dim strFileName ' local variable to store fileName
strFileName = Server.MapPath("test.txt")
srtFileNameOrg = Server.MapPath("test2.txt")
' Instantiate the FileSystemObject
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
' use Opentextfile Method to Open the text File
Set TSOrg = objFSO.OpenTextFile(srtFileNameOrg, ForReading, Create)
'Gör en sträng av orgnaldokumentet
If Not TSOrg.AtEndOfStream Then
Do While Not TSOrg.AtendOfStream 'Loopar igenom Orgianldokumentet
varOrgPageString = varOrgPageString &TSOrg.ReadLine &";"
loop
End If
'KONTROLLERAR OM STRÄNGAR HAR BLIVIT FÖRÄNDRADE
Set TS = objFSO.OpenTextFile(strFileName, ForReading, Create)
If Not TS.AtEndOfStream Then
Do While Not TS.AtendOfStream 'Loopar igenom Orgianldokumentet
varNewLineNumber = TS.Line 'Hämtar textens radnummer
varNewLineText = TS.ReadLine 'När man anropar denna så byts rad autmatiskt
if InStr(varOrgPageString, varNewLineText) > 0 then 'Letar om strängen finns med på sidan. Korta sökningar blir inte så exakta
'response.write("Finner = <font color=green>" &varNewLineNumber &" - [" &varNewLineText &"]</font><br>")
varHtmlOutputString = varHtmlOutputString &varNewLineNumber &": " &varNewLineText &"<br>"
else 'Om raden inte finns
'response.write("Finner = <font color=red>" &varNewLineNumber &" - [" &varNewLineText &"]</font><br>")
varHtmlOutputString = varHtmlOutputString &"<font color=red><b>" &varNewLineNumber &": " &varNewLineText &"</b></font><br>"
end if
varNewPageString = varNewPageString &varNewLineText &";"
loop
end if
%>
<%
'KONTROLLERAR OM STRÄNGAR HAR BLIVIT RADERADE
Set TSOrg = objFSO.OpenTextFile(srtFileNameOrg, ForReading, Create)
If Not TSOrg.AtEndOfStream Then
Do While Not TSOrg.AtendOfStream 'Loopar igenom Orgianldokumentet
varOrgLineNumber = TSOrg.Line 'Hämtar textens radnummer
varOrgLineText = TSOrg.ReadLine 'När man anropar denna så byts rad autmatiskt
if InStr(varNewPageString, varOrgLineText) > 0 then 'Letar om strängen finns med på sidan. Korta sökningar blir inte så exakta
'response.write("Finner = <font color=green>" &varOrgLineNumber &" - [" &varOrgLineText &"]</font><br>")
else
'response.write("Finner = <font color=red>" &varOrgLineNumber &" - [" &varOrgLineText &"]</font><br>")
varHtmlOutputStringDeleted = varHtmlOutputStringDeleted &"<font color=red><b>" &varOrgLineNumber &": " &varOrgLineText &"</b></font><br>"
end if
loop
end if
%>
<font face=verdana size=2>
<u><b>Checking the original file to verify deleted posts in the new file.</b></u><br>
The following rows were not found in the new text file:<p>
<%=varHtmlOutputStringDeleted%>
<br><br>
<u><b>This is the new text file. Changes in read.</b></u><p>
<%=varHtmlOutputString%>
</font>
Oups...
Använd editorn Emacs.
Ange de två filernas namn och ut kommer en skillnadslista på skärmen.
Finns Emacs fortfarande? Många utvecklares superverktyg för ett antal år sedan.
lecon skrev:
Använd editorn Emacs.
Ange de två filernas namn och ut kommer en skillnadslista på skärmen.
Finns Emacs fortfarande? Många utvecklares superverktyg för ett antal år sedan.
emacs lever i allra högsta grad! När man väl lärt sig hantera emacs så vill man inte byta. Otroligt kraftfull (och hatad ;) )
Phorpher skrev:
emacs lever i allra högsta grad! När man väl lärt sig hantera emacs så vill man inte byta. Otroligt kraftfull (och hatad ;) )
mer info tack... :) Var hittar man "emacs", hur funkar det?
mozilla skrev:
mer info tack... :) Var hittar man "emacs", hur funkar det?
http://www.gnu.org/software/emacs/emacs.html
Hur det funkar? Jadu. Är man inte vän med kortkommandon så kommer man inte bli vän med emacs. Det är alltså en ganska hög tröskel att klättra över innan man börjar uppskatta den.
Hela emacs är uppbyggd med lisp. Så vill du modifiera någon funktion eller lägga till någon funktion så är det bara att sätta sig ner och knacka lisp §e . Det finns fruktansvärt mycket små features i emacs och det tar sin tid att hitta dem alla. Det finns manualer på adressen jag gav dig.
Emacs är en skitbra allroundeditor. Men diff är nog det det man helst vill ha för detta ändamål: http://en.wikipedia.org/wiki/Diff (kolla på relaterade länkar)
Använd editorn Emacs.
Ange de två filernas namn och ut kommer en skillnadslista på skärmen.
Finns Emacs fortfarande? Många utvecklares superverktyg för ett antal år sedan
Antar att det fungerar utmärkt. Ville ha en online version. Har tyvärr inte någon unix kärra :)
Emacs funkar finemang på Windows.
http://www.gnu.org/software/emacs/windows/ntemacs.html