Jahwareerka nidaamka kala soocida dabiiciga ah

Inta badan maamulayaasha faylalka garaafyada si adag uma kala soocaan qaamuus ahaan, laakiin waxay adeegsadaan "nooca dabiiciga ah". Xirmooyinka nambarada magaca waxaa loo tarjumaa tiro ahaan - tirada weyn ee tirooyinka ayaa guuleysta, xitaa haddii ka soo horjeeda uu ku soo baxo erayo alifbeeto ah. Fikradda ka dambeysa kala-soocidda dabiiciga ah: Waxa ay dadku inta badan rabaan waa "9 ka hor 10", "Cutubka 2 ka hor cutubka 10", iyada oo aan lagu darin eber hormuudka ah.


Lammaanaha faylka soo socda ayaa si dabiici ah loo kala soocay siday u kala horreeyaan sida soo socota:

  • build-9e2.log
  • build-950.log

Waxaa la yaab leh, laakiin la sharxi karo: Baloogga lambar ee ugu horreeya \(9\) wuu ka yar yahay baloogga lambar ee ugu horreeya \(950\) .

  • IMG_12113419_90.jpg
  • IMG_0554363070_90.jpg

Lambarka \(12113419\) wuu ka yar yahay \(554363070\) (hogaamiyaha \(0\) waa laga saaray).

  • temp_0C.txt
  • temp_2C.txt
  • temp_-3C.txt
  • temp_10C.txt
  • temp_-12C.txt

Tirooyinka marka la barbardhigo waa \(0\) , \(2\) , \(3\) , \(10\) , \(12\) - "-" looma tixgalin qayb ka mid ah tirada.

Xataa "alifbeetada" maaha mid caalami ah oo aan mugdi ku jirin: Cajiibka, umlauts sida ä (Jarmal), ama xarfo badan sida ch (Czech) waxay horseedaan kala duwanaansho sharci ah. "Alifbeetada saafiga ah" waxay ku xiran tahay macnaha guud. Windows Explorer waxay tan ku fulisaa shaqada StrCmpLogicalW . Iyadoo koodka isha (shlwapi.dll) uu yahay mid iska leh oo aan ahayn mid dadweyne, waxaa jira dib u habeyn, tusaale ahaan, ReactOS.:

{
    TRACE("%s, %s\n", wine_dbgstr_w(str), wine_dbgstr_w(comp));
 
    if (!str || !comp)
        return 0;
 
    while (*str)
    {
        if (!*comp)
            return 1;
        else if (*str >= '0' && *str <= '9')
        {
            int str_value, comp_value;
 
            if (*comp < '0' || *comp > '9')
                return -1;
 
            /* Compare the numbers */
            StrToIntExW(str, 0, &str_value);
            StrToIntExW(comp, 0, &comp_value);
 
            if (str_value < comp_value)
                return -1;
            else if (str_value > comp_value)
                return 1;
 
            /* Skip */
            while (*str >= '0' && *str <= '9') str++;
            while (*comp >= '0' && *comp <= '9') comp++;
        }
        else if (*comp >= '0' && *comp <= '9')
            return 1;
        else
        {
            int diff = ChrCmpIW(*str, *comp);
            if (diff > 0)
                return 1;
            else if (diff < 0)
                return -1;
 
            str++;
            comp++;
        }
    }
 
    if (*comp)
      return -1;
 
    return 0;
}

Google Drive, OneDrive, KDE, iyo adeegyada la midka ah waxay muujinayaan hab-dhaqan kala soocid oo isku mid ah. Qalabka CLI sida... ls iyo find u kala sooc si ka duwan maareeyayaasha faylka GUI. Semantics waxay ku jiraan magacyada faylalka, maaha API. Haddii aad rabto natiijooyin aan la yaab lahayn, qeex heshiisyada: kala-soocida joogtada ah, tirooyinka daboolan iyo maaraynta cad ee cutubyada. Dabadeed "xaruufta" waxay noqotaa mid la saadaalin karo mar kale.

Dib u laabo