Size: a a a

2020 December 09

ДT

Дмитрий Texnix... in Delphi & Lazarus
Сергей Пятыгин
Да, вставил и это тоже увидел, конечно же:

for j := 0 to 3 do
   OldVersion[j] := StrToInt(ExtractWord(j + 1, Old, ['.']));

 for j := 0 to 3 do
   NewVersion[j] := StrToInt(ExtractWord(j + 1, New, ['.']));
ну вот, 4 строчки, норм же?
источник

АВ

Александр В... in Delphi & Lazarus
version1 := (aVersion1[0] shl 48) or (aVersion1[1] shl 32) or (aVersion1[2] shl 16) or aVersion1[3]
version2 по аналогии, ну и if version1 = version2... например
источник

N

Nik in Delphi & Lazarus
А что мешает просто строки сравнить?
источник

N

Nik in Delphi & Lazarus
Там же результат в виде boolean отдаётся
источник

Miss Очепятка... in Delphi & Lazarus
Nik
А что мешает просто строки сравнить?
Строки не соответствуют семантическому порядку чисел.
источник

АВ

Александр В... in Delphi & Lazarus
facepalm.jpg
источник

AS

Alexey Shumkin in Delphi & Lazarus
Nik
А что мешает просто строки сравнить?
То, что 10 меньше, чем 2 в строковом предоставлении
источник

AS

Alexey Shumkin in Delphi & Lazarus
Nik
А что мешает просто строки сравнить?
Удали лучше это, Ник 😁
источник

N

Nik in Delphi & Lazarus
Сергей Пятыгин
Нет ли у кого алгоритма сравнения версий ПО вида Х.Х.Х.Х (Х уже разделены, может быть integer/string)
.
источник

N

Nik in Delphi & Lazarus
Может внимательно прочитаете?
источник

AS

Alexey Shumkin in Delphi & Lazarus
Nik
Может внимательно прочитаете?
Ник, прочти лучше ты
источник

N

Nik in Delphi & Lazarus
Сергей Пятыгин
function TFormMain.CheckVersion(Old, New: string): boolean;
var
 OldVersion: array [0..3] of integer;
 NewVersion: array [0..3] of integer;
begin

 OldVersion[0] := StrToInt(ExtractWord(1, Old, ['.']));
 OldVersion[1] := StrToInt(ExtractWord(2, Old, ['.']));
 OldVersion[2] := StrToInt(ExtractWord(3, Old, ['.']));
 OldVersion[3] := StrToInt(ExtractWord(4, Old, ['.']));

 NewVersion[0] := StrToInt(ExtractWord(1, New, ['.']));
 NewVersion[1] := StrToInt(ExtractWord(2, New, ['.']));
 NewVersion[2] := StrToInt(ExtractWord(3, New, ['.']));
 NewVersion[3] := StrToInt(ExtractWord(4, New, ['.']));  

Далее ГУГЛ мне дает не очень изящные решения, на мой взгляд. Мб есть уже проверенное в бою решение?
.
источник

AS

Alexey Shumkin in Delphi & Lazarus
Nik
Может внимательно прочитаете?
Очевидно, ты такую задачу не решал :)
источник

N

Nik in Delphi & Lazarus
У него результат равны версии или нет
источник

N

Nik in Delphi & Lazarus
И порядок цифр безразличен
источник

AS

Alexey Shumkin in Delphi & Lazarus
Nik
У него результат равны версии или нет
Это не его решение, это из интернета
источник

N

Nik in Delphi & Lazarus
И здесь не я неправ, а постановка задачи кривая
источник

AS

Alexey Shumkin in Delphi & Lazarus
Nik
И здесь не я неправ, а постановка задачи кривая
Постановка была "сравнить"
Профдеформация уже решавших такую задачу подсказывает, что надо с больше/меньше/ равно
источник

ДT

Дмитрий Texnix... in Delphi & Lazarus
Nik
И здесь не я неправ, а постановка задачи кривая
ну если кривая, чо берёшься то за неё?
источник

N

Nik in Delphi & Lazarus
Alexey Shumkin
Постановка была "сравнить"
Профдеформация уже решавших такую задачу подсказывает, что надо с больше/меньше/ равно
А если там integer/string как написано в самом начальном сообщении?
источник