|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 22, 2003 19:55:35 Quantum Я ж те говорил - SC - вчерашний день и предлагал DevPartner for VB. Надо будет самому, кстати, поставить... Переносимость на другие платформы. А вот это мне уже интересно. Как так? Кто перенес? Когда? Где? |
|
|
Дата: Окт 22, 2003 20:02:53 Если мне надо докопировать, я просто возьму из начала строки ее длину и допишу туда, вместо того, чтобы гнать указатель и счетчик вдоль всей строки. Не стыдно гнать на Edmondа да? %))) На те, муж великими делами славный.. string1 db 'kzkzkzkzkzkz',0 ..... string2 db 'dfsfsdsfs',0 Ну и куда ты ДОПИСЫВАТЬ БУДЕШЬ!!!! У космическое пространство? %))) Лучше посмотри на листинг VS7.0/ctrl/strcat.asm ;;============================================== Quantum Ну ладно :))) В кратсе что помню [header][data][tail] [data] -- строка [head] -- голова (там много чего...) [tail] -- часто равно 0... но не факт. А теперь фишка1 Указатель указывает на..... [data] %))) Значит строка C-совместима 2. Фишка2 Поддерка всех форматов (даже ОEM описывается) Формат head сложный, многовариантный. Зависит от множества факторов. Например: Байты в head нумеруются наоборот. от старшего к младшему Например если бит 0 в младшем байте по адресу указатель - 1 = 0, значит в следующих 7 битах -- длинна строки Иначе -- это байт флагов. Ну и так далее.. Катаю уже статью + LIB |
|
|
Дата: Окт 22, 2003 20:05:42 volodya А мож мой подойдёт. Он в принципе тож переносим.. Там можно задавать длинну одно символа.. И всё такое... |
|
|
Дата: Окт 22, 2003 20:07:00 чтобы гнать указатель и счетчик вдоль всей строки Да, что касается этого, я покажу код. Выйгрышь не велик.. |
|
|
Дата: Окт 22, 2003 20:20:38 volodya Я ж те говорил - SC - вчерашний день и предлагал DevPartner for VB Так я и не спорю. А вот это мне уже интересно. Как так? Кто перенес? Когда? Где? В самом MSDN упоминают про Mac, но идея в том, что не на всех машинах байт имеет 8 бит и существуют big и little endian. Так вот, safe array может адаптироваться под все эти ньюансы (формат by Edmond, вроде, тоже). С другой стороны, кто, когда и где перенёс, то это, скорее всего, сам Билл Гейц, но во сне. |
|
|
Дата: Окт 22, 2003 20:31:52 Edmond Не стыдно гнать на Edmondа да? %))) Родной мой кофейничек, да как я могу на тебя, архитектора и алгоритмизатора, гнать-то! Я ж ваще биохимик позорный. Ни биохимии не знаю, ни программирования. Непонятно что. Что до остального, то ты, как всегда, меня не понял. Твой вариант: string1 db 'kzkzkzkzkzkz',0 ..... string2 db 'dfsfsdsfs',0 Здесь, действительно дописывать некуда! А тебе, вместо того, чтобы меня носом в доки тыкать, ткнись-ка туда сам: *Purpose: * Concatenates src onto the end of dest. Assumes enough * space in dest. Съел? А если строка завершена нулем, то смотри, сколько действий надо сделать:
while( *cp )
cp++; /* find end of dst */
while( *cp++ = *src++ ) ; /* Copy src to end of dst */
return( dst ); /* return dst */
А если длина строки прописана в начале (как ты и предлагаешь в своем формате, хотя и он давно известен), то пункт 1 снимается. |
|
|
Дата: Окт 22, 2003 20:33:12 Quantum сам Билл Гейц, но во сне Я в голове у Гейтса не копался, но, полагаю, он это в кошмарах видит :) |
|
|
Дата: Окт 22, 2003 22:22:20 хм.. а чем блин уважаемых не устраивает std::basic_string который как хочешь так и делай? -) хоть char туда, хоть wide_char ... и резервирование есть (25%) от длинны при создании. Следовательно количество реаллокаций падает. и c_str() есть - который С строка. |
|
|
Дата: Окт 22, 2003 23:03:33 rst Ты вводишь сюда противоречие, которого не существовало изначально. Всех все устраивает. |
|
|
Дата: Окт 23, 2003 14:31:22 volodya Родной мой кофейничек, да как я могу на тебя, архитектора и алгоритмизатора, гнать-то! Я ж ваще биохимик позорный. Ни биохимии не знаю, ни программирования. Непонятно что. Ну всё, всё здаюсь.. Руки вверх.. Ноги тоже %)) Съел? А если строка завершена нулем, то смотри, сколько действий надо сделать: Ням, ням. А такое видал (код неоптимизированный просто для ДимонСтрации): 1. Для С-строки @@: mov al,[esi] test al,al mov [edi],al jne @B Для длинны @@: mov al,[esi+ecx] dec ecx mov [edi+ecx],al jne @B Да, я не спорю, когда по 4 копируешь и по 8 (MMX) В алгоритме с счётчиком на три команды меньше.. НО НА ТРИ!!!!!!!!!!!!!!!!!!!! Так что СЪЕШЬ ТЕПЕРЬ ТЫ %))) |
|
|
Дата: Окт 23, 2003 14:35:54 и резервирование есть (25%) от длинны при создании О!!! Спасибо, хорошая мысля!!! |
|
|
Дата: Окт 23, 2003 14:39:29 Edmond /usr/local/include/string там вообще-то все есть -) |
|
|
Дата: Окт 23, 2003 15:19:09 rst У меня нет Юниха %)) А мож сюда кидануть %)) |
|
|
Дата: Окт 23, 2003 15:43:26 |
|
|
Дата: Окт 23, 2003 18:57:51 Так что СЪЕШЬ ТЕПЕРЬ ТЫ %))) Невкусно! И ни фига мне по тем клочкам непонятно! Длину в случае дельфийской строки я определю мнгновенно, и не нужно мне цикла с jxx, который будет неверно предсказан ;) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.060 |