Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Vergleichen von label mit txt file | Herbers Excel-Forum


Betrifft: Vergleichen von label mit txt file von: Steve
Geschrieben am: 03.02.2012 18:57:05

Hallo zusammen,

habe eine frage, wie kann ich den inhalt von einem label oder textbox mit einer *.txt datei vergleichen so das eine kleine änderung schon einen fehler ausgibt?

Momentan habe ich das:

Dim bChanged As Boolean
Dim sBuffer As String
 
If FileLen("uninstall.ini") <> Len(UserForm1.uninstall.Caption) Then
  bChanged = True
  MsgBox "nein"
Else
  MsgBox "ok"
End If
es funktioniert wen man etwas hinzufügt oder löscht aber ven man nur ein "a" mit einem "e" ersetzt gibt er mir immer noch "OK" aus.

Was muss ich ändern um genau den inhalt zu vergleichen?

Danke für die hilfe

Steve

  

Betrifft: AW: Vergleichen von label mit txt file von: Oberschlumpf
Geschrieben am: 03.02.2012 19:40:47

Hi Steve

Mit FileLen erhältst du die Speichergröße einer Datei.
Bsp (meine Datei):
FileLen("D:\test.txt") = 12 Byte

Mit Len erhältst du die Anzahl Zeichen einer Eingabe.
Bsp (in Label1 steht das Wort "test.txt"
Len(Label1.Caption) = 8

Du kannst also die Ergebnisse dieser beiden Funktionen nicht miteinander vergleichen.

Wenn du wissen willst, ob der Inhalt der Datei uninstall.ini verändert wurde, dann musst du den Originalinhalt der Datei kennen und eben jede Zeile vergleichen.

Hilfts?

Ciao
Thorsten


  

Betrifft: AW: Vergleichen von label mit txt file von: Steve
Geschrieben am: 03.02.2012 19:48:50

Hallo Torsten,

Es hilft bis an einen gewissen punkt. :)

Jetzt weis ich das "Len" nur die grösse kontrolliert.

Hättest du mir einen anfang wie ich die zwei sachen vergleichen kann?

Ich weis beide inhalte, und daher wäre es kein problem.

Da ich auch was lernen will, wäre ein anfang sehr gut so das ich selber ändern oder veiter programmieren kann. :)

Besten Dank


  

Betrifft: AW: Vergleichen von label mit txt file von: Oberschlumpf
Geschrieben am: 03.02.2012 20:07:38

Hi Steve

exakt zeilenweiser Vergleich zweier Textdateien (ungetestet):

Dim arTxt1() As String, arTxt2() As String, liIdx As Integer, strZeile As String
Dim bChanged As Boolean

Open "Pfad\NameDeinerBekanntenOriginalDatei.txt" For Input As #1
    Do While Not Eof(1)
        Line Input #1, strZeile
            ReDim Preserve arTxt1(liIdx)
            arTxt1(liIdx) = strZeile
            liIdx = liIdx + 1
    Loop
Close

liIdx = 0

Open "Pfad\uninstall.ini" For Input As #1
    Do While Not Eof(1)
        Line Input #1, strZeile
            ReDim Preserve arTxt2(liIdx)
            arTxt2(liIdx) = strZeile
            liIdx = liIdx + 1
    Loop
Close

For liIdx = 0 To UBound(arTxt1)
    If arTxt1(liIdx) <> arTxt2(liIdx) Then
        bChanged = True
        Exit For
    End If
Next

If bChanged = True Then
        MsgBox "Nein"
    Else
        MsgBox "ok"
End If

Voraussetzung ist, dass beide Zeilen die gleiche Anzahl an Zeilen haben müssen.

Hilfts?

Ciao
Thorsten


  

Betrifft: AW: Vergleichen von label mit txt file von: Steve
Geschrieben am: 03.02.2012 20:31:53

Hallo Thorsten,

Besten dank.

Ich probiere jeztz das erste open file zu ändern da ich die infos von einer textbox auslese.

Nochmals besten dank für deine hilfe

Steve


  

Betrifft: AW: Vergleichen von label mit txt file von: Josef Ehrensberger
Geschrieben am: 03.02.2012 20:29:57


Hallo Steve,

Sub test()
  Dim bChanged As Boolean
  Dim sBuffer As String
  
  If compareString(ReadFile("E:\uninstall.ini"), UserForm1.uninstall.Caption) Then
    MsgBox "ok"
  Else
    bChanged = True
    MsgBox "nein"
  End If
  
End Sub


Function compareString(ByRef String1 As String, ByRef String2 As String) As Boolean
  If Len(String1) <> Len(String2) Then Exit Function
  compareString = (String1 = String2)
End Function


Function ReadFile(ByRef Path As String) As String
  Dim FileNr As Long
  
  On Error Resume Next
  If FileLen(Path) = 0 Then Exit Function
  On Error GoTo 0
  
  FileNr = FreeFile
  Open Path For Binary As #FileNr
  ReadFile = Space$(LOF(FileNr))
  Get #FileNr, , ReadFile
  Close #FileNr
End Function






« Gruß Sepp »



  

Betrifft: AW: Vergleichen von label mit txt file von: Steve
Geschrieben am: 03.02.2012 21:45:32

Besten dank an alle!!

Besonders an Sepp und Thorsten.

Steve


Beiträge aus den Excel-Beispielen zum Thema "Vergleichen von label mit txt file"