|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
Необходимо перевести код работы с массивом из PHP на Delphi Код: php 1. 2. 3.
Т.е. на PHP мы можем очень просто получить значение 30кб: $d = $files['qaz1.txt'][1][0]; А как сделать подобное на Delphi? Мне вот как так нужно [товар1][0] = array('10', '20') [товар1][1] = array('15', '30') [товар1][2] = array('12', '10') [товар2][0] = array('11', '20') [товар2][1] = array('25', '30') [товар2][2] = array('32', '10') ну в крайнем случае так, но это избыточно [0][0] = array('name1', '') [0][1] = array('10', '20') [0][2] = array('15', '30') [0][3] = array('12', '10') [1][0] = array('name2', '') [1][1] = array('10', '20') [1][2] = array('15', '30') [1][3] = array('12', '10') Пробовал TDictionary, но возникли трудности: не совсем понятно, как получить число дочерних элементов например товара 1, и как их перебрать в цикле. Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55.
Используя Count также получаю что-то несуразное для дочерних элементов первого товара. Items count: 2 Objecs count: 16 "Товар 1" оjecs count: 0 Товар 1: 0 Товар 2: 0 Да и закоментированный "fl.Add(3, ['20','30']);" - у меня есть рекурсия - сканирование папок, в них файлы, так вот все дочерние элементы добавляются не за один раз, а при каждом проходе. Пока до этого не дошел даже. Код: php 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 00:04 |
|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
SiteAnalyzer Необходимо перевести код работы с массивом из PHP на Delphi Код: php 1. 2. 3.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 01:23 |
|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
_Vasilisk_ type TFileInfo = record Size: string; Attr: string; constructor Create(const ASize, AAttr: string); end;... Мой тестовый пример: Код: 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
Почему-то список файлов выдает в таком порядке: авторqaz4.txt: 4 qaz2.txt: 1 qaz77.txt: 1 qaz1.txt: 4 qaz3.txt: 2 qaz5.txt: 1 Т.е. не по порядку их добавления в массив, а непонятно как отсортировано, как-будто рандом. И второе: не понятно как теперь вывести полученный массив в тот же Memo. На всякий случай пример на ПХП для понимания: Код: php 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 03:01 |
|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
SiteAnalyzer Т.е. не по порядку их добавления в массив, а непонятно как отсортировано, как-будто рандом. SiteAnalyzer И второе: не понятно как теперь вывести полученный массив в тот же Memo. Код: pascal 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 14:29 |
|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
_Vasilisk_ Код: pascal 1. 2. 3. 4. 5.
Добавил Код: pascal 1. 2. 3.
Но ругается на автор Memo1.Lines.Add(Format('%s, %s', [LInfo.Size, LInfo.Attr])); .Size и .Attr, хотя вроде все верно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 17:43 |
|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
SiteAnalyzer Добавил Код: pascal 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 23:03 |
|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
_Vasilisk_, спасибо, вроде все работает как нужно Остался вопрос на счет сортировки - хотелось бы без лишних наворотов, хотя бы сортировку в том виде как добавляются товары. Есть ли готовые решения или примеры как это исправить? Нагуглил вариант - https://stackoverflow.com/questions/31256891/sorting-tdictionary-by-a-key-of-integer-in-ascending-order Но применить к моему коду - сходу не вышло ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 23:31 |
|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
Код: pascal 1. 2.
Дальше я так понимаю уже по нему как-то нужно цикл сделать, а не по files. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 23:47 |
|
Перевести код работы с массивом из PHP на Delphi
|
|||
---|---|---|---|
#18+
_Vasilisk_ TDictionary не сохраняет порядок добавления. Для сохранения порядка нужно прикладывать дополнительные усилия И хотелось бы иметь сортировку в том порядке, в каком файлы добавляются в массив, прочие (убывание, возрастание) не нужны ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 00:10 |
|
|
start [/forum/topic.php?fid=58&msg=40132022&tid=2036651]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 435ms |
0 / 0 |