String comparison: Difference between revisions

(Add Seed7 example)
Line 735:
showComparisons("the", "there");
showComparisons("there", "the");
end func;</lang>
 
The function below compares strings, which may contain digit sequences. The digit sequences are compared numerically.
 
<lang seed7>include "scanstri.s7i";
 
const func integer: cmpNumeric (in var string: stri1, in var string: stri2) is func
result
var integer: signumValue is 0;
local
var string: part1 is "";
var string: part2 is "";
begin
while signumValue = 0 and (stri1 <> "" or stri2 <> "") do
part1 := getDigits(stri1);
part2 := getDigits(stri2);
if part1 <> "" and part2 <> "" then
signumValue := compare(part1 lpad0 length(part2), part2 lpad0 length(part1));
if signumValue = 0 then
signumValue := compare(length(part1), length(part2));
end if;
elsif part1 <> "" then
signumValue := compare(part1, stri2);
elsif part2 <> "" then
signumValue := compare(stri1, part2);
end if;
if signumValue = 0 then
part1 := getNonDigits(stri1);
part2 := getNonDigits(stri2);
if part1 <> "" and part2 <> "" then
signumValue := compare(part1, part2);
elsif part1 <> "" then
signumValue := compare(part1, stri2);
elsif part2 <> "" then
signumValue := compare(stri1, part2);
end if;
end if;
end while;
end func;</lang>