sts писал(а):в динамических массивах такойже механизм как и у строк, собственно программистам дали возможность его использовать
Просто почти никто не будет у
величи
вать размер строки по одному сим
волу до мегабайтных размеро
в, а
в случае бинарного динамического масси
ва это чисто логически кажется
вполне «штатным случаем». Но прикол
в том, каждое изменение размера динамического масси
ва
вызы
вает копиро
вание
всего масси
ва
в но
вое место
в памяти (то есть проблема
в том, что «динамические» масси
вы не поддержи
вают фрагментации).
Хранить строчные данные принято
в "быстрых" структурах и списках типа TStringList, так что, несмотря на кажущуюся экономию памяти, сохранение данных
в виде списко
в строк часто
вполне опра
вданный компромисс между удобст
вом использо
вания, скоростью доступа, простотой редактиро
вания и занимаемым объемом памяти. В крайнем случае можно использо
вать нетипизиро
ванный список TList, но это не слишком отличается от TStringList. + это будет заменено мнение «гибкий способ» (
в строку можно легко доба
вить но
вые поля, модификаторы, комментарии, сохрани
в со
вместимость формата и общий цикл обработки).
Пример строчного формата данных
- Код: Выделить всё
RAPHAEL_GRADI 65280 8421376/90 17 3-633 683
OUTTEXT 0 16777215/0/0/default/0.0.0.1_Альфа_начало_преобразования_МА_RED_в_FORMred_ 31 49 END
OUTTEXT 0 16777215/0/0/default/0.0.0.2_Альфа_Жестокая_"рыба"_но_концепция_растет__. 31 74 END
OUTTEXT 0 16777215/0/0/default/0.0.0.3_Альфа_расширил_запись_элементов_+_настроил_чтение_из_ini-файла 31 101 END
OUTTEXT 0 16777215/0/0/default/0.0.0.4_добавил_загрузку_начальных_значений_в_инспектор_элементов_._ 31 129 END
BUTTON 255 16777215/10/12//http://lib.ru\БИБЛИОТЕКА_1 34 177 END
LINK 8388608 16777215/10/12/default/http://google.com\ГУГЛ_В_ПОМОЩЬ_! 33 238 END
OUTTEXT 0 65535/0/9/default/__0.0.0.4_12_Добавил__обратную__трансляцию(OТ)__данных_из_инспектора_элементов_в_команды._ 29 301 END
OUTTEXT 16777215 128/0/0/default/0.0.0.4_13_Добавил_ЖТ_для_управления_с_помощью_стрелок. 23 342 END
RAPHAEL_RECT 0 255 179 176-213 201
RAPHAEL_RECT 0 16777215 202 238-232 257
RAPHAEL_RECT 0 16777215 19 378-337 409
LINK 8388608 16777215/10/15/default/http://google.com\ГУГЛ_В_ПОМОЩЬ_! 33 380 END
RAPHAEL_RECT 0 255 14 2-488 6
RAPHAEL_RECT 0 255 26 419-469 521
OUTTEXT 0 255/0/29/default/Загадочный_HTML_ 72 449 END
OUTTEXT 65280 65535/100/22/Segoe_Script/Загадочный_HTML_ 70 492 END
RAPHAEL_ELIPS 65280 32768 295 166-437 293
RAPHAEL_ELIPS 65535 65280 319 190-412 279
RAPHAEL_LINE 65535 65280 320 228-412 228
RAPHAEL_LINE 65535 65280 365 229-365 277
RAPHAEL_LINE 65535 65280 334 260-344 226
RAPHAEL_LINE 65535 65280 376 228-398 258
RAPHAEL_ELIPS 65535 16711808 452 136-511 195
RAPHAEL_RECT 65535 0 436 145-529 186
OUTTEXT 65535 0/0/15/default/09:54:12 448 151 END
RAPHAEL_STAR 255 16777215 386 321-477 409
RAPHAEL_STAR 255 16777215 388 323-479 411
RAPHAEL_STAR 255 16777215 390 325-481 413
RAPHAEL_POLILINE 0 16777215 33 276 269 276 269 276 269 166 269 166 333 166 333 166 END
RAPHAEL_POLILINE 32768 16777215 478 209 448 241 448 241 484 273 484 273 509 246 509 246 486 226 486 226 467 244 467 244 483 257 483 257 497 244 497 244 END
RAPHAEL_POLILINE 32768 16777215 478 211 448 243 448 243 484 275 484 275 509 248 509 248 486 228 486 228 467 246 467 246 483 259 483 259 497 246 497 246 END
RAPHAEL_POLILINE 32768 16777215 478 213 448 245 448 245 484 277 484 277 509 250 509 250 486 230 486 230 467 248 467 248 483 261 483 261 497 248 497 248 END
RAPHAEL_KONTUR 65280 16777215 48 215 16 264 16 264 262 265 262 265 242 215 242 215 END
RAPHAEL_KONTUR 65280 16777215 50 217 18 266 18 266 264 267 264 267 244 217 244 217 END
RAPHAEL_KONTUR 65280 16777215 46 213 14 262 14 262 260 263 260 263 240 213 240 213 END
RAPHAEL_KUB 0 16777215 448 44-579 204
RAPHAEL_KUB 255 16777215 448 44-581 206
RAPHAEL_KUB 0 16777215 377 49-508 209
RAPHAEL_KUB 255 16777215 377 49-510 211
IMAGE pic_DRW.jpg 16777215 27 547-179 649
IMAGE pic_DRW.jpg 16777215 191 547-343 649
IMAGE pic_DRW.jpg 16777215 353 547-505 649
PAGE_SETUP [f.htm] [16777215] [] [] [<ZZZ>]
В при загрузке память
все остается точно так же потому что затраты на парсинг практически незаметны а
вот полное преобразо
вание
в бинарные данные при такой
вариати
вности "командного языка" дело до
вольно гиблое .