· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.A&O —› Замечательный Стринг

. 1 . 2 . 3 . 4 . >>

Посл.отвђт Сообщен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 разворачивает эти структуры и наглядно представляет "хозяину".

. 1 . 2 . 3 . 4 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.088