Новости:

01.01.2017: Релиз испанской версии Naruto - Ninja Council (GBA)
02.12.2016: Добавлена документация по Kruptar 7
09.10.2015: Обновление перевода игры Battletoads (NES) [версия 1.3]
22.01.2015: Kruptar Open Source
18.10.2014: Релиз обновлённой русской версии Castlevania - Dawn of Sorrow (GBA) от Owls Group
01.05.2014: Релиз русской версии Taiyou no Yuusha Firebird (NES)
24.06.2012: Добавлена доработанная документация и инструкция
26.05.2012: Обновление ORITON [версия 2.050]
11.05.2012: Обновление ORITON [версия 2.048]
11.03.2012: Обновление Kruptar 7 [версия 7.1.1.17]
29.01.2012: Обновление LZ77Restructor 2 [версия 1.02]
01.01.2012: Релиз русской версии Drill Dozer (GBA)

Подробнее на страничке новостей.
Ознакомьтесь с правилами нашего форума.

Главное меню

Помощь по Delphi

Автор BlueHairLady, 27 февраля 2009, 11:09:59

« назад - далее »

0 Пользователи и 10 гостей просматривают эту тему.

gegmopo3

А в чем жесть то?
из-за обширной таблици?
Или что?

Джинни

из-за 5 секунд на 3 строки

tbl[hextoint(copy(form1.memo1.lines.strings,1,4))]:=copy(form1.memo1.lines.strings,6,length(form1.memo1.lines.strings)-6);

form1.memo1.lines.strings загрузи в одну переменную хотя бы, а не вызывай тысячу раз кучу повторного кода.

gegmopo3

ТАблица в 169 кб выдирается за 1 минуту.
А тут 6 кб текста тоже за одну минуту=)
а в чем проблема, не знаешь?

gegmopo3

Усё, скорость 2 раза быстрея *NЕ_HOCHU*

gegmopo3

а есть команда на делфи, типо ASL, сдвиг влево, вправо?
чтобы был переход 01111111 =>11111110=>11111101 и т.д.
а то бесит всевремя писать inttobin(..,..), и как бы вручную перетаскивать=(

Oraculum

Цитата: gegmopo3 от 11 февраля 2010, 10:30:12
01111111 =>11111110=>11111101
Ты сначала показал пример ASL, а потом уже почему-то ROL. Правильный пример ASL:
001111111 =>
011111110 =>
111111100
Аналог ASL на языке Delphi - SHL.

gegmopo3

Видишь ли, есть сдвиги с дублированием последнего бита. А снес ASL - который я указал. Переменная же разной бывает=)
Спасибо :)

gegmopo3

т.е. последний бит переходит в начало

Oraculum

Цитата: gegmopo3 от 11 февраля 2010, 14:02:42
Видишь ли, есть сдвиги с дублированием последнего бита. А снес ASL - который я указал. Переменная же разной бывает=)
Спасибо :)
Цитата: gegmopo3 от 11 февраля 2010, 14:10:55
т.е. последний бит переходит в начало
Это уже повороты, а не сдвиги.  :)

gegmopo3

но сдвиг то идет на одну, а последний байт тупо переходит в начало, короче запущенная система там=)
Сапсибо, но придеться опять своим методом делать  LOL

Джинни

Цитата: gegmopo3 от 11 февраля 2010, 14:24:13
но сдвиг то идет на одну, а последний байт тупо переходит в начало, короче запущенная система там=)
Сапсибо, но придеться опять своим методом делать  LOL
Ты говоришь про ROL, а не про ASL.
В делфи реализуется сдвигом с условием с помощью AND.

gegmopo3

нее, ASL, тебе исходники может еще кинуть=))))

gegmopo3

все! Вы правы были, просто сначало ASL шло, а после ROL, не угледел я=)
Еще же думал что-то не то, никогда такого не было=) [***] я затиупил вообще=)))))))

dnd1

Скромный вопросик: можно ли каким-то более красивым способом реализовать запись Integer(4 байта) в файл в порядке BigEndian? (Запись через поток TFileStream)
Swap меняет местами 2 первых байта и 2 последних
а кусок кода

      i:= sec.Size;
      s:=IntToHex(i, 8);
      i:=StrToInt('$' + Copy(s,7,2) + Copy(s,5,2) + Copy(s,3,2) + Copy(s,1,2));

считаю не такой уж и грамотной реализацией :(

Джинни

function SwapInt(Value: Integer): Integer;
asm
bswap eax
end;

//...............
var X: Integer; Stream: TFileStream;
//...........
X := SwapInt(X);
Stream.WriteBuffer(X, 4);


Но есть и простые арифметические методы, чего извращаться с переводом в string и обратно? :)
Например:

X := X shr 24 + (( X shr 16) and $FF) shl 8 + (( X shr 8 ) and $FF) shl 16 + X shl 24;

dnd1

Джинни, спасибо . Всегда думал, что нужно выучить ассемблер, и вот тому еще одно доказательство.
Цитата: Джинни от 26 сентября 2010, 12:09:58чего извращаться с переводом в string и обратно?
Просто никогда езще не работал со сдвигами, так что как умел, так и попытался реализовать. :)

TrickZter

Нашёл интересный компонент: TPNGImage, возможно, кому-нить пригодится :)
http://delphidevelop.ru/publ/12-1-0-174

Добавлено позже:

Что-то не могу сообразить, как конвертнуть Cardinal (или массив из 4-х байтов) в TColor притом чтобы альфу не перекосило.

Джинни

Цитата: TrickZter от 09 декабря 2010, 11:02:26
Что-то не могу сообразить, как конвертнуть Cardinal (или массив из 4-х байтов) в TColor притом чтобы альфу не перекосило.
Хох, а зачем тебе это? TColor вроде бы альфу не поддерживает. Есть специальные классы для работы с изображениями с альфой.

TrickZter

Мне нужно конвертить 32-битные Hip'ы в какой-нибудь привычный 32-битный формат и обратно. 24-битный формат не катит, так как я теряю при конвертации 8 бит информации о цвете (альфа-канале). Вот думаю, как это реализовать.

Джинни

Я же говорю, есть классы. TDIB32 например какой-нибудь, если я правильно помню название.

Цитата: TrickZter от 09 декабря 2010, 20:10:49Мне нужно конвертить 32-битные Hip'ы в какой-нибудь привычный 32-битный формат и обратно. 24-битный формат не катит, так как я теряю при конвертации 8 бит информации о цвете (альфа-канале). Вот думаю, как это реализовать.
Имелось в виду, зачем тебе именно в TColor конвертировать, ведь он альфу не поддерживает. :)

TrickZter

Хотел без особых плясок с бубном сразу отрисовывать картинку на канве TImage :)
Но я тут побаловался чуток с буржуйской прогой (Hipster), оказалось, что в img.pac она корректно конвертит и инсертит пныги. Остальное собрал своим RePACer'ом и игрушка нормально заработала. В общем, мне меньше работы :) Хотя, как-нибудь надо будет попробовать свой конвертер с альфой написать.

JurasskPark

TrickZter, а такой компонент не подойдёт???  :'(
http://www.alphaskins.com/index_rus.php
Цитировать
Для жителей стран СНГ все компоненты являются бесплатными (независимо от того - коммерческий проект или нет). Платой за пользование могут быть Ваши критические замечания, советы, сообщения об ошибках и т.д.

Пароль для распаковки - слово "сканирование", набранное маленькими русскими буквами в английской раскладке.

TrickZter

Цитата: JurasskPark от 03 марта 2013, 09:48:09TrickZter, а такой компонент не подойдёт???  :'(
Не знаю, может быть вообще без скрытия сделаю.