|
|
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Как сохранить в файл запись (record) с динамическими массивами? file of, естественно, не работает. Вручную сохранять по одной переменной - не хочется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 06:51 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered, Покажи, что именно ты имеешь ввиду под "запись (record) с динамическими". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 08:23 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 08:46 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered, в общем виде только серелиализацию писать, например с помощью TypInfo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 08:52 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered> file of, естественно, не работает. Покажи код. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 09:21 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Да любую, хотя бы, такую. Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 10:48 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Может, JSON? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 11:13 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered, Так тебе запись с динамическими массивами или массив записей с массивами? В первом случае можно в бинарном виде без цикла за три последовательных акта записи, во втором в общем случае без цикла, имхо, не обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 13:10 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Массив записей с массивами. Тут ещё придумал, что можно с помощью Move скопировать всё содержимое записи, за исключением указателей. А вот как бы ещё динамический массив скопировать, тоже напрямую из памяти, вместе с длиной? И потом загрузить из файла таким же образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 13:20 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered, См. выше про три порции. Первый move() это собственно сам record. Потом пишешь длину массива и затем опять через move() содержимое динмассива. Читаешь в том же порядке, только перед третьим чтением делаешь массиву нужный (прочитанный вторым чтением) SetLenth(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 14:47 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Динамический массив же не копируется через Move, копируется только указатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 14:59 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered, А мужики-то и не знают.))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 15:02 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Ну так пусть мужики пример приведут, что-ли, однако. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 19:39 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered, для динамических массивов, элементы которых не содержат, в свою очередь, динамических элементов (в т.ч. строк), можно копировать тело массива так: Код: pascal 1. Общее правило для использования строк, дин. массивов в качестве нетипизированного var/const параметра - разыменовать указатель (т.к. компилятор сам возьмёт адрес переменной) Вариант: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 19:48 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered, Начинаю догадываться, - студент? курсовая? А поиск в сети по ключевым словам еще не проходили? К тебе же третий от начала пост был на эту тему, - спроецируй его самостоятельно на Move(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 19:51 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
в любом случае нужно еще длину поля динамического массива в record тоже записывать))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 20:10 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registeredНу так пусть мужики пример приведут, что-ли, однако.сначала студент напишет свой вариант кода, вот тогда и будем смотреть, что ты написал и что нужно исправить. А если студент этого не хочет делать (выкладывать свой вариант), то тогда бегом в режим заказа платной разработки, коль сам не можешь/не хочешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 20:12 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
asutp2, Это только если делать транспортабельный (считываемый другими приложениями) формат. А в своем собственном длину отдельного элемента и так знает. Другое дело что в рекорд можно было ввести длину самого динамического массива, тогда писать/читать можно было бы не за три итерации, а за две. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 20:20 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Делал такое использовал 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. 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. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 20:22 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
Vlad FНачинаю догадываться, - студент? курсовая?Совершенно неверно! В общем, тем, кто начал писать про мужиков, студентов, - отвечать нет желания. Остальным - спасибо (получилось, код приводить не буду). Относительно "Динамический массив же не копируется через Move" - было Move(SrcArr, DstArr[0], ...); а нужно было Move(SrcArr[0], DstArr[0],, ...); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 20:29 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registered, Ну и слава богу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 20:37 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registeredVlad FНачинаю догадываться, - студент? курсовая?Совершенно неверно! В общем, тем, кто начал писать про мужиков, студентов, - отвечать нет желания. Остальным - спасибо (получилось, код приводить не буду). Относительно "Динамический массив же не копируется через Move" - было Move(SrcArr, DstArr[0], ...); а нужно было Move(SrcArr[0], DstArr[0],, ...);хотелось бы увидеть этот код, если он вообще есть)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 22:38 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
registeredОстальным - спасибо (получилось, код приводить не буду). Относительно "Динамический массив же не копируется через Move" - было Move(SrcArr, DstArr[0], ...); а нужно было Move(SrcArr[0], DstArr[0],, ...);...и будет это работать только до тех пор пока элементы массива сами не станут управляемым типом или его содержащим контейнером... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 22:40 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
gssboxДелал такое использовал RTTI и дженерики, но в конечном счете пришлось отказаться от этой идеи так как тормозило при интенсивных нагрузках. довольно много выделений памяти и цикл с поиском параметров + то что white_nigger написал можно ещё допиливать и допиливать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 23:23 |
|
||
|
Как сохранить в файл запись (record) с динамическими массивами?
|
|||
|---|---|---|---|
|
#18+
А если есть вложенная запись Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. То, если скопировать память переменной rec, то, вместо указателя на структуру a , может оказаться левый адрес. Вероятно, то же и с s:string; . И даже отдельное копирование переменной a не спасёт, потому что адрес затёрт. Что делать, однако? Код привести не могу, потому что "в продакшене"... э-э, в общем, тестовый проект с просто записью и чтением из файла - работает, а реальный - нет. Где-то так: Код: pascal 1. 2. 3. 4. Крэшится на втором "move". str1, str2, str3 - это ansistring, с данными, соответственно, rec, rec.a, rec.a.s. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2018, 19:37 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=87&tid=2040021]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 447ms |

| 0 / 0 |
