Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Перевод массива ASCLL кодов в их символьное представление   Найти похожие ветки 

 
DelphiN! ©   (2006-03-09 12:52) [0]

Имеется масив ascll кодов(сетевой пакет), необходимо их быстро перевести в string.
Сейчас перевожу так :

for i := 0 to 1000 do
 s := s+chr(NetPackageArray[i]);

Однако код работает недопустимо долго, так как сетевых пакетов очень много. Может можно ускорить перевод?


 
SergP.   (2006-03-09 12:59) [1]


> for i := 0 to 1000 do
>  s := s+chr(NetPackageArray[i]);


Не знаю что там у тебя NetPackageArray[i]
но по идее если сразу выделить память под строку, а не делать это 1000 раз по немногу, то должно быть немного быстрее...

Setlength(s,1001);
for i:=0 to 1000 do
s[i+1]:=chr(NetPackageArray[i]);


 
SergP.   (2006-03-09 13:00) [2]

либо если NetPackageArray это масив байтов то перенести в строку с помощью move


 
DelphiN! ©   (2006-03-09 13:03) [3]


>  [1] SergP.   (09.03.06 12:59)


Да это массив байтов
array [0..$10000 - 1] of Byte;


 
SergP.   (2006-03-09 13:05) [4]

setlength(s,1001);
move(NetPackageArray[0],s[1],1001);


 
Fay ©   (2006-03-09 13:08) [5]

Тогда уж SetString


 
API ©   (2006-03-09 13:24) [6]

Перевод массива ASCLL кодов

А что это за коды такие, ASCLL?


 
DelphiN! ©   (2006-03-09 13:32) [7]


> А что это за коды такие, ASCLL?


ASCII


 
DelphiN! ©   (2006-03-09 13:34) [8]

Хоть заранее память выделяй, хоть походу, всеравно процессор на 100% грузится


 
DelphiN! ©   (2006-03-09 13:35) [9]

Придется в отдельный поток выносить и ему приоритет низкий ставить наверное ...


 
Leonid Troyanovsky ©   (2006-03-09 13:41) [10]


> DelphiN! ©   (09.03.06 13:34) [8]

> Хоть заранее память выделяй, хоть походу, всеравно процессор
> на 100% грузится

> Придется в отдельный поток выносить и ему приоритет низкий
> ставить наверное ...


И что это должно изменить? Лучше, IMHO, добавить процессоров.

Кста, чего с этими строками далее делают?

--
Regards, LVT.


 
DelphiN! ©   (2006-03-09 13:46) [11]


>  [10] Leonid Troyanovsky ©   (09.03.06 13:41)


В них исчются слова, из списка, и если они там имеются покет сохраняется в файл. Вобщем в трафике ищутся компроматы :)


 
DelphiN! ©   (2006-03-09 13:48) [12]


> И что это должно изменить? Лучше, IMHO, добавить процессоров.


Да так ведь компьютер не сильно тормозить будет ...


 
Anatoly Podgoretsky ©   (2006-03-09 14:07) [13]

Лучше нейронную сеть.


 
begin...end ©   (2006-03-09 14:11) [14]

> DelphiN! ©   (09.03.06 13:46) [11]

> В них исчются слова, из списка, и если они там имеются покет
> сохраняется в файл.

Не совсем понятно, зачем для этого нужно копировать массив в строку. Можно прямо в массиве NetPackageArray и искать...


 
Alkid ©   (2006-03-09 15:16) [15]


> setlength(s,1001);
> move(NetPackageArray[0],s[1],1001);

Можно проще: s := PChar(@NetpackageArray[0]), где s - string`овая переменная


 
Leonid Troyanovsky ©   (2006-03-09 15:29) [16]


> Alkid ©   (09.03.06 15:16) [15]

> Можно проще: s := PChar(@NetpackageArray[0]), где s - string`овая
> переменная


Про nil ничего не известно.

--
Regards, LVT.


 
Alkid ©   (2006-03-09 16:10) [17]


> Про nil ничего не известно.

Про какой nil? Если ты про 0 в коняе строки (z-string), то ты прав. Данный метод сработает только если в массиве последний байт == 0


 
Leonid Troyanovsky ©   (2006-03-09 16:22) [18]


> Alkid ©   (09.03.06 16:10) [17]

> Про какой nil? Если ты про 0 в коняе строки (z-string),


null, конечно. Sorry.

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.046 c
15-1141060496
I am
2006-02-27 20:14
2006.03.26
Оптимальный вариант проверки подлинности


1-1140544275
Volf_555
2006-02-21 20:51
2006.03.26
Как в InputBox отображать текст звёздочками?!


15-1141246223
LordOfRock
2006-03-01 23:50
2006.03.26
Unicode-интерфейс проги


15-1141411309
Лёха
2006-03-03 21:41
2006.03.26
MiniExel на паскале ;)


2-1141852506
Новочеркасский Волк
2006-03-09 00:15
2006.03.26
Как заставит два TClientSocket одновременно отправлять текст???