сократить иерархию, если утверждение с использованием логического вывода - PullRequest
0 голосов
/ 09 октября 2018

Справочная информация: Installshield позволяет только AND/OR/NOT операторов + Сравнение для отдельных условий при построении логического дерева.Я застрял с этим при попытке построить условие обнаружения версии.

В основном я пытаюсь сделать это

bool IsUpToDatePackageInstalled(major, minor, build, rev)
{
  if (installedMajor > major)
      return true

  if (installedMajor < major)
      return false

  if (installedMinor > minor)
      return true

  if (installedMinor < minor)
      return false

  if (installedBuild > build)
      return true

  if (installedBuild < build)
      return false

  if (installedRev >= rev)
      return true

  return false
}

и построить это, используя только AND/OR/NOT Я в основном делаю

Any
    InstalledMajor > major
    All
        InstalledMajor == major
        InstalledMinor > minor
    All
        InstalledMajor == major
        InstalledMinor == minor
        InstalledBld > bld
    All
        InstalledMajor == major
        InstalledMinor == minor
        InstalledBld == bld
        InstalledRev >= rev

или перевести это в And/ или

(InstalledMajor > major) 
OR (InstalledMajor == major AND InstalledMinor > minor) 
OR (InstalledMajor == major AND InstalledMinor == minor AND InstalledBld > bld) 
OR (InstalledMajor == major AND InstalledMinor == minor AND InstalledBld == bld AND InstalledRev >= rev)

Можно ли применить к этому утверждению логический вывод, чтобы каждая переменная использовалась только один раз вместо дублирования всех предыдущих?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...