Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Есть запись Код: pascal 1. 2. 3. 4. 5. Есть массив Код: pascal 1. есть его сортировка Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Как (с помощью крутых и новейших технологий Delphi) вместо field1 подставлять любое поле, чтобы не размножать сортировку для каждого поля в коде? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 08:59 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox, передавать индекс сортируемого поля как параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 09:01 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox Как (с помощью крутых и новейших технологий Delphi) вместо field1 подставлять любое поле, чтобы не размножать сортировку для каждого поля в коде? :) Передавать в сортировку функцию сравнения: function Cmp(a,b:pointer):integer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 09:07 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Gerasimenko antox, передавать индекс сортируемого поля как параметр а как обратиться по индексу? Код: pascal 1. или писать Case на все случаи? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Можно как-то хотя бы через указатели (не знаю, как это сделать)? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 09:16 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
x1ca4064 antox Как (с помощью крутых и новейших технологий Delphi) вместо field1 подставлять любое поле, чтобы не размножать сортировку для каждого поля в коде? :) Передавать в сортировку функцию сравнения: function Cmp(a,b:pointer):integer А как это реализовать на примере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 09:18 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox, Код: pascal 1. 2. 3. 4. 5. vs Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 09:21 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Gerasimenko, Так неудобно обращаться к полям :) Это можно запутаться, где чё хранится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 09:27 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox А как это реализовать на примере? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Можно и без указателей, если не нужна универсальность сортировки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 09:39 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
x1ca4064, Код: sql 1. 2. 3. 4. 5. 6. Так тут все равно напрямую указано имя поля field1 , а мне что бы по любому имени, или имеется в виду, что для каждого поля будет такая функция: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 09:56 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox Так тут все равно напрямую указано имя поля field1 , а мне что бы по любому имени, или имеется в виду, что для каждого поля будет такая функция: Чтобы не указывать, делай массив. Обращаться можно через именованные константы, чтобы не запутываться (rec.Fields[fField1]). Теоретически можно и через RTTI, но ты вряд ли осилишь на текущем уровне, раз уж такие вопросы задаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 10:26 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox x1ca4064, Так тут все равно напрямую указано имя поля field1 , а мне что бы по любому имени, или имеется в виду, что для каждого поля будет такая функция: Да, для каждого поля своя функция сравнения, ее прототип можно сделать таким: TCmpFun=function (const a,b:TMyRec):integer; но тогда будет тяжко написать общую процедуру сортировки, которая позволит сортировать почти все: procedure MySort(const ArrayData;const ElementCount,ElementSize:integer;CmpFun:TCmpFun) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 10:53 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal antox Так тут все равно напрямую указано имя поля field1 , а мне что бы по любому имени, или имеется в виду, что для каждого поля будет такая функция: Чтобы не указывать, делай массив. Обращаться можно через именованные константы, чтобы не запутываться (rec.Fields[fField1]). Теоретически можно и через RTTI, но ты вряд ли осилишь на текущем уровне, раз уж такие вопросы задаешь Не благодари ;) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 11:18 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox Как (с помощью крутых и новейших технологий Delphi) вместо field1 подставлять любое поле Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 12:14 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Или Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 12:19 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
А вот они - новые технологии ;) Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 13:00 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ antox Как (с помощью крутых и новейших технологий Delphi) вместо field1 подставлять любое поле Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Работает отлично, точка с запятой лишняя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 13:06 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 13:47 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ antox Как (с помощью крутых и новейших технологий Delphi) вместо field1 подставлять любое поле Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Модернизация под любое поле: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 13:58 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox Модернизация под любое поле: А теперь для вещественных полей напишите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:04 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Суровые извращения. Непонятно только зачем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:08 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
DimaBr antox Модернизация под любое поле: А теперь для вещественных полей напишите :( сортирует, как текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:12 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
rgreat Суровые извращения. Непонятно только зачем. Так, вроде, самый простой вариант сортировки массива записей по полям... Не знаю, как проще можно это сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:14 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
DimaBr antox Модернизация под любое поле: А теперь для вещественных полей напишите Код: pascal 1. 2. Работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:20 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Куда проще ? 22329310 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:20 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
DimaBr, Так для этого придется для сортировки каждого массива (а у них разные поля) писать все поля в процедуру :) Руки отвалятся И так же тоже числа в сортируются как текст, как я понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:24 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox Код: pascal 1. 2. Работает Но при этом string не сравнивает, беда...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:25 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
зафигакай сравнение Variant-ов. универсально, но медленно. либо те большие, но по 5 рублей (вчера), либо эти маленькие по 3, но сегодня. (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:29 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
DimaBr Но при этом string не сравнивает, беда... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:49 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий зафигакай сравнение Variant-ов. универсально, но медленно. либо те большие, но по 5 рублей (вчера), либо эти маленькие по 3, но сегодня. (С) уже сделал, но не красиво... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:52 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
31.05.2021 14:52, antox пишет: > уже сделал, но не красиво... одно яичко выше? (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:54 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ DimaBr Но при этом string не сравнивает, беда... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Немного подправил (Variant вместо TValue) и заработало: Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:57 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Также работает и эта конструкция: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:59 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 31.05.2021 14:52, antox пишет: > уже сделал, но не красиво... одно яичко выше? (С) третье появилось :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 14:59 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Более чем уверен, что через год, смотря на это синтаксический мусор, вы будите думать, а что же тут происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 15:02 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Возникает вопрос, что быстрее будут работать Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. или Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 15:03 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox, Premature optimization. Тромозить будет не это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 15:20 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox Возникает вопрос, что быстрее будут работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 15:36 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Тьфу, блин. Я на разницу в приведении типов смотрел а на то что они там в первом случае еще метод и пузырька зачем-то приделал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 15:52 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ antox Возникает вопрос, что быстрее будут работать Вообще - не всегда, но первый вариант - ниразу не пузырьковая сортировка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 17:08 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
Maxim Rusov первый вариант - ниразу не пузырьковая сортировка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 17:49 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Maxim Rusov первый вариант - ниразу не пузырьковая сортировка. Пузырькова сортировка в цикле переставляет элементы до тех пор, пока не случится пустой проход. А тут - какой-то декартов п....ц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 17:52 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2021, 18:00 |
|
||
|
Сортировка массива записей по произвольному полю записи
|
|||
|---|---|---|---|
|
#18+
antox Так тут все равно напрямую указано имя поля field1 , а мне что бы по любому имени, или имеется в виду, что для каждого поля будет такая функция чтобы не указывать имя поля при сортировке по любому из них: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2021, 12:29 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2037265]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 549ms |

| 0 / 0 |
