|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 22, 2003 17:59:26 Похоже я разработал замечательный формат для хранения строк, совместимы с С-стринг. Но сперва хотелось бы узнать, какие форматы строк (я не про Уникод говорю) существуют и в каких компиляторах. Например С 1. [data][0] |
|
|
Дата: Окт 22, 2003 18:26:31 Это примаханый вид строки. Строки Паскаля и Дельфи значительно лучше. Как ты определишь конец строки под С? Траверсируя ее от начала и до нуля! Это очень медленно. Поэтому лучше юзать Дельфийские строки. Однако в MS тоже не дундуки сидят и они разработали UNICODE_STRING - посмотри описание в winnt.h. А вообще, ты бы не в форуме этот вопрос задавал, а спросил бы у IDA :) Она бы тебе сразу показала, какие строки понимает :) ;) |
|
|
Дата: Окт 22, 2003 18:27:16 Да, в MFC тоже самое. Но я ее не люблю и не знаю. |
|
|
Дата: Окт 22, 2003 18:39:23 · Поправил: Edmond Это примаханый вид строки. Строки Паскаля и Дельфи значительно лучше. Это ты Володя зряяяя. Из 100 случаев, 80 оправдывают строки C. В приложениях С строки РУЛЯТ. А почему? А потому, что из 100 случаев 80 -- связаны с перебором всех байт строки!!!! Однако в MS тоже не дундуки сидят и они разработали UNICODE_STRING - посмотри описание в winnt.h Вот за тык носом спасибо!!! А вообще, ты бы не в форуме этот вопрос задавал, а спросил бы у IDA :) Она бы тебе сразу показала, какие строки понимает :) ;) Оу, Гут моложец %) Догадливый ты мой %) |
|
|
Дата: Окт 22, 2003 18:46:46 Оу, Гут моложец %) Догадливый ты мой %) Йес, сэр. Стараимсись :) А потому, что из 100 случаев 80 -- связаны с перебором всех байт строки!!!! Гы. Как на счет strcat? strcpy? strlen? |
|
|
Дата: Окт 22, 2003 19:21:57 Самый навороченный формат строки - safe array. Такое в COM-объектах используется и... в бейсике :) Похож на дельфийский вариант, но лучше! |
|
|
Дата: Окт 22, 2003 19:25:26 Quantum Где почитать? Почему линка нет?!!! >:| |
|
|
Дата: Окт 22, 2003 19:31:11 Quantum Так, что мы тут распластываемость!!! Давайте ФОРМАТ!!!! %:))) volodya Гы. Как на счет strcat? strcpy? strlen? Попорядку: 1. StrCat -- обычно требует новой памяти для новой строки Это значит, - копируем 1 строку (то есть пробегаем всю строку!!!) - копируем 2 строку С- строки не очень тут рулят. Но и не так плохи. 2. strcpy -- снова таки - проходятся все байты строки Поскольку их всё равно нужно копировать то, сверка на ноль даже очень полезна. Хотя в современных алгоритмах, несколько выигрывает уже известный размер строки Но этот выйгрышь не столь велик, если только речь не идёт о СУБД. а речь о них не идёт. 3. strlen А вот это мой Дорогой как раз те 20 % ;))))) |
|
|
Дата: Окт 22, 2003 19:32:33 Самый навороченный формат строки - safe array Ты мой видал ? %)) Нет!!! Так от и не спеши самых навороченых тут показывать %))) |
|
|
Дата: Окт 22, 2003 19:35:34 volodya Ревер... кхе-кхе, т.е. изучал я один COM-сервер и встретил там эти safe arrays. Потом облазил пол инета пока нашёл документацию, но не могу вспомнить где... Кстати, формат этих массивов под масм лежит в oaidl.inc: SAFEARRAY STRUCT DWORD
cDims BYTE ?
fFeatures BYTE ?
cbElements DWORD ?
cLocks DWORD ?
pvData PVOID ?
rgsabound SAFEARRAYBOUND 1t DUP (<>)
SAFEARRAY ENDS |
|
|
Дата: Окт 22, 2003 19:37:01 Edmond Ты нагло наврал на счет strcat/cpy, причем, даже не сколько наврал, сколько сделал неправильные выводы. Если мне надо докопировать, я просто возьму из начала строки ее длину и допишу туда, вместо того, чтобы гнать указатель и счетчик вдоль всей строки. |
|
|
Дата: Окт 22, 2003 19:38:01 Quantum Ох, батюшки, свят-свят. А объяснения полей будут? :) Пли-и-и-з :) |
|
|
Дата: Окт 22, 2003 19:38:58 |
|
|
Дата: Окт 22, 2003 19:43:47 Edmond Так от и не спеши самых навороченых тут показывать %))) Забыл описать прелести safearray: 1. Может хранить ASCII, юникод и даже 32-битные символы, если такие когда-нибудь появятся. 2. Легко и быстро конвертируется в формат С и паскаля. 3. Переносимость на другие платформы. А что за формат ты там изобрёл? Заинтриговал уже. |
|
|
Дата: Окт 22, 2003 19:48:09 volodya А-а-а-а!!! MSDN! Под отладчиком и то понятнее, чем в MSDN :))) Если мне память не изменяет, то Smart Check разворачивает эти структуры и наглядно представляет "хозяину". |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.088 |