How to detect different words in two strings?
;==========================================================================================================================================
; How to detect different words in two strings?
; Compare two strings and create text file with list of different words.
;
; Detlev Dalitz.20090402.
;==========================================================================================================================================

strString1 = "Is here or there a way to compare 2 strings like this method?"
strString2 = "Do you think about a way to compare 2 strings that lists the differences?"

; strString1 = "" ; Test1
; strString2 = "" ; Test2
; strString2 = strString1 ; Test3

arrArray1 = Arrayize (strString1, " ")
arrArray2 = Arrayize (strString2, " ")

intArray1Dim = ArrInfo (arrArray1, 1)
intArray2Dim = ArrInfo (arrArray2, 1)

arrArray3 = ArrDimension (Max (intArray1Dim, intArray2Dim), 3)

intArray1Max = intArray1Dim - 1
intArray2Max = intArray2Dim - 1

intMin = 0
intMax1 = Min (intArray1Max, intArray2Max)
For intElem = intMin To intMax1
   If arrArray1 [intElem] != arrArray2 [intElem]
      arrArray3 [intElem, 0] = intElem + 1
      arrArray3 [intElem, 1] = arrArray1 [intElem]
      arrArray3 [intElem, 2] = arrArray2 [intElem]
   EndIf
Next

intMax2 = Max (intArray1Max, intArray2Max)
If intMax2 > intMax1
   intMin = intMax1 + 1
   If intArray1Max > intArray2Max
      For intElem = intMin To intMax2
         arrArray3 [intElem, 0] = intElem + 1
         arrArray3 [intElem, 1] = arrArray1 [intElem]
      Next
   Else
      For intElem = intMin To intMax2
         arrArray3 [intElem, 0] = intElem + 1
         arrArray3 [intElem, 2] = arrArray2 [intElem]
      Next
   EndIf
EndIf

strFileOut = ItemReplace ("txt", -1, IntControl (1004, 0, 0, 0, 0), ".")
intBytesWritten = ArrayFilePutCSV (strFileOut, arrArray3, "|", @FALSE, 2)
If intBytesWritten == 0 Then FileDelete (strFileOut)
   Else Run (strFileOut, "")

;1|Is|Do
;2|here|you
;3|or|think
;4|there|about
;11|like|that
;12|this|lists
;13|method?|the
;14||differences?

Exit
;==========================================================================================================================================