products/Sources/formale Sprachen/Delphi/Bille 0.71/__history image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: similarity.inc.~22~   Sprache: Scala

Untersuchungsergebnis.~32~ Download desSPS {SPS[133] CS[179] Ada[180]}zum Wurzelverzeichnis wechseln

//-------------------------------------------------------
//
//-------------------------------------------------------
function issimilar(L, R: String): boolean;
var
  vl, vr: String;
  res: boolean;
  //---------------------------------------------------------------
  function leadingzeroes(S: String): String;
  begin
    while (length(S) > 1) and (S[1] = '0'do
      S := midstr(S, 2, length(S) - 1);
    result := S
  end;
//---------------------------------------------------------------
  function trailingzeroes(S: String): String;
  var
    pp: integer;
  begin
    pp := pos(',', S);
    if pp > 0 then
      while (length(S) > pp) and (S[length(vl)] = '0'do
        S := midstr(S, 1, length(S) - 1);
  end;
//---------------------------------------------------------------
  function isPrefix(S1, S2: String): boolean;
  begin
    if (length(S1) < 3) or (length(S1) > length(S2)) then
      result := false
    else
      result := MidStr(S2, 1, length(S1)) = S1
  end;
//---------------------------------------------------------------
  function isnumber(S: String): boolean;
  var
    i, d, ll: integer;
    res: boolean;
  begin
    res := true;
    if length(S) = 0 then
      res := false;
    for i := 1 to length(S) do
      res := res and charinset(S[i], ['0' .. '9''.'',''+''-',
        '$''€']);
    d := pos('.', S);
    if d > 0 then begin
      ll := length(S);
      d := pos('.', midstr(S, D + 1, ll));
      res := res and (d < 0)
    end;
    result := res;
  end;

begin
  //
  res := false;
  vl := L;
  vr := R;
  //remove separators
  vl := StringReplace(vl, FDB, '', [rfReplaceAll]);
  vr := StringReplace(vr, FDB, '', [rfReplaceAll]);
  //
  if isnumber(vl) and isnumber(vr) then begin
    //
    if charinset(vl[1], ['-''+']) then
      vr := midstr(vr, 2, length(vr));
    if charinset(vr[1], ['-''+']) then
      vr := midstr(vr, 2, length(vr));
    //leading 0's
    vl := leadingzeroes(vl);
    vr := leadingzeroes(vr);
    //trailing 0's
    vl := trailingzeroes(vl);
    vr := trailingzeroes(vr);
    //
    res := vl = vr;
  end;
  //
  result := res;
end;

[ zur Elbe Produktseite wechseln0.366Quellennavigators  ]