But being devil's advocate, I could use strings containing NULL char, but
this doesn't mean end of string.

Cheers,
Seb

2011/6/1 mattschinkel <[email protected]>

> Here is a procedure with both null and no null. Here are my tests:
>
> returns TRUE when
> 1. both same length, same contents, no null char
> 2. both same length & same contents up to same position mid null char.
> 3. different lengths & same contents up to same position mid null
> char.
> 4. diff length, null on larger string one byte after end of first
> string.
>
> returns FALSE when
> 1. different lengths, no null char
> 2. different lengths, null char in different mid positions.
> 2. same lengths, null char in different mid positions.
>
>
> --------------------------------------------------------------------------------
> -- compare two strings to see if they are the same. not case
> dependant.
> -- strings can optionally be terminated with a null character.
>
> --------------------------------------------------------------------------------
> function string_compare(byte in string1[], byte in string2[]) return
> bit is
>   var byte step, s1, s2
>   var bit check = TRUE
>
>   step = 0
>   forever loop
>      s1 = string1[step]
>      s2 = string2[step]
>
>      -- check for null character
>      if (s1 == ASCII_NULL) | (s2 == ASCII_NULL) then
>         if (s1 + s2) == 0 then
>            return TRUE
>         else
>            return FALSE
>         end if
>      end if
>
>      -- convert both to lower case
>      char_lower(s1)
>      char_lower(s2)
>
>      -- check if they are different
>      if !(s1 == s2) then
>         return FALSE
>      end if
>
>      if count(string1) == count(string2) then
>         if step == (count(string1) - 1) then
>            return TRUE
>         end if
>      elsif step == (count(string1) - 1) then
>         if string2[step + 1] == ASCII_NULL then
>            return TRUE
>         else
>            return FALSE
>         end if
>      elsif step == (count(string1) - 1) then
>         if string1[step + 1] == ASCII_NULL then
>            return TRUE
>         else
>            return FALSE
>         end if
>      end if
>      step = step + 1
>   end loop
> end function
>
> --
> You received this message because you are subscribed to the Google Groups
> "jallib" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/jallib?hl=en.
>
>


-- 
Sébastien Lelong

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jallib?hl=en.

Reply via email to