Avatar billede Slettet bruger
18. marts 2008 - 20:14 Der er 11 kommentarer og
1 løsning

sammenlign to txt filer

Hej,

Nogle som ligger inde med et vbs script som kan sammenligne 2 txt filer.
Jeg søger et som blot givet et output i retning af:

Files are the same eller files are not the same.

sådan ca. principperne i det :=)
Avatar billede terry Ekspert
18. marts 2008 - 20:20 #1
' ***************************************************
'    Script To Invoke the MS Word Compare Docs
'
'    Danny J. Lesandrini    April 4, 2001
'    datafast@home.com    http://datafast.cjb.net
'
'
'  This script will uses COM Automation to access
'  the MS Office Object Model in order to use the
'  MS Word Compare Documents routine on two files.
'
'  The use is prompted for the paths of the two
'  documents to be compared.  If no values are
'  supplied, the routine assumes that two sample
'  files exist on the C:\ drive:
'
'    "C:\MyDocA.txt"
'    "C:\MyDocB.txt"
'
'  I have added no validation code to verify that
'  the path supplied by the user is valid.
'
'  Note that the CreateObject call uses the generic
'  reference, "Word.Application" with no version
'  number.  This assures that the script won't break
'  just because the client machine doesn't contain
'  the correct version of MS Word.  The script
'  will break, however, if no version of Word is
'  found on the client machine
'
' ***************************************************

Dim objWord
Dim objScript
Dim strDocA
Dim strDocB
Dim fContinue
'Const vbExclamation = 48

strDocA = InputBox("Enter complete path first doc", "Compare")
strDocB = InputBox("Enter complete path second doc", "Compare")

' Assume that user passed valid paths
    fContinue = True
   
' Now, test file paths to DocA and DocB for validity
' -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Set objScript = CreateObject("Scripting.FileSystemObject")
fContinue = objScript.FileExists(strDocA)
fContinue = objScript.FileExists(strDocB)
Set objScript = Nothing

If fContinue = False Then
    MsgBox "Invalid File Paths" ,vbExclamation ,"Error"
Else
    ' Only continue if user has typed text into InputBox.
    Set objWord = CreateObject("Word.Application")

    objWord.Documents.Open strDocA
    objWord.ActiveDocument.Compare strDocB
    objWord.Visible = True

    Set objWord = Nothing
End If
Avatar billede Slettet bruger
18. marts 2008 - 20:23 #2
Har du en som ikke benytter word? eller evt et hint til, hvordan jeg retter den, så den blot laver et output, hvorvidt filen er anderledes eller ej?
Avatar billede terry Ekspert
18. marts 2008 - 20:28 #4
or

et objArgs = Wscript.Arguments
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(objArgs(0))
Set objFile2 = objFSO.GetFile(objArgs(1))


If objFile.Size <> objFile2.Size Then
    Wscript.Echo "The file is different."
Else Wscript.Echo "They are the same."
End If
Avatar billede Slettet bruger
18. marts 2008 - 20:29 #5
Jeg kan desværre ikke se svarene til den der
Avatar billede Slettet bruger
18. marts 2008 - 20:30 #6
Det var lige præcis det jeg manglede :D
Gracias ;)
Avatar billede terry Ekspert
18. marts 2008 - 20:31 #7
http://p2p.wrox.com/topic.asp?TOPIC_ID=23792

Look at the last post (08/21/2007 :  4:21:37 PM)
Avatar billede terry Ekspert
18. marts 2008 - 20:31 #8
Selv Gracias ;)
Og god Påske
Avatar billede thesurfer Nybegynder
18. marts 2008 - 20:38 #9
At checke på filstørrelse er ikke en god ide, med mindre at formålet med filerne kun kan være det samme..

F.eks., sammenligning af en download log med en anden..

Hvis filerne ikke har samme formål, vil koden (der checker på filstørrelsen) give et forkert svar..

Eksempel:
Fil 1 indeholder: abc
Fil 2 indeholder: def

Da begge filer indeholder 3 tegn (filerne fylder 3 bytes hver, i teorien), vil resultatet blive "filerne er ens"..


Hvis filerne er af en rimelig størrelse (dvs, under 100 MB eller måske 50, 20, 10 MB, eller en anden overkommelig størrelse), kan man bruge noget i stil med:

fil1 = dit-fil-read-object.ReadAll
fil2 = dit-fil-read-object.ReadAll

Så kan du bare sammenligne variablerne fil1 med fil2.. husk case sensitive..
Avatar billede Slettet bruger
18. marts 2008 - 21:27 #10
God point, dette vil dog dække mit behov.

Men tak for input :)
Avatar billede terry Ekspert
18. marts 2008 - 21:31 #11
"gAt checke på filstørrelse er ikke en god ide" I agree, but the last link given doesnt check the size but the contents.
Avatar billede thesurfer Nybegynder
18. marts 2008 - 21:40 #12
terry> Jeg kommenterede ikke det sidste link (har set koden på linket, hvorfor jeg nævnte .ReadAll), men check på filstørrelse generelt.. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester