ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #41  
Старый 02.11.2007, 12:15
Аватар для DWORD
DWORD
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
Провел на форуме:
165671

Репутация: 215
По умолчанию

Да, я имел ввиду консольные приложения (или оконные с использованием каких-то кроссплатформенных (всмысле наличия вариантов аналогичной библиотеки для разных платформ с предоставлением программистам аналогичных пограммных интерфейсов) библиотек, если такие существуют, я просто не знаю), пишущиеся в соответствии со стандартом.

Последний раз редактировалось DWORD; 02.11.2007 в 12:25..
 
Ответить с цитированием

  #42  
Старый 06.01.2008, 16:01
Аватар для Ky3bMu4
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию

Скажи нет псевдокоду!
Код:
http://algolist.manual.ru/search/esearch/
 
Ответить с цитированием

  #43  
Старый 14.01.2008, 13:50
Аватар для Jes
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

eazy Сниф порта

В Делфи чтобы просушать уже открытый порт достаточно взять компонент IdTCP из вкладки Indy clients , в bound port пишешь свой порт и обрабатываешь событие чтения.
 
Ответить с цитированием

Delphi
  #44  
Старый 29.01.2008, 02:10
Аватар для A2GIL
A2GIL
Познающий
Регистрация: 31.08.2007
Сообщений: 94
Провел на форуме:
422909

Репутация: 200
Отправить сообщение для A2GIL с помощью ICQ
По умолчанию Delphi

Для тех, кому важен размер программы. Иногда требуется что либо сделать по таймеру, тут уже стандартным компонентом Timer не обойтись, тогда воспользуемся следующими функциями:

Код:
uses MMSystem ///подключим необходимый модуль
...
var
 
 TID:Integer;
...

procedure TimeCallback(TimerID, Msg : UINT; DWUser,DW1,DW2 : DWord); pascal;

///сюда вставляем код, который должен выполняться по таймеру

end;

procedure StartTimer(interval:cardinal);
begin
 TID := timeSetEvent(interval,0,@TimeCallBack,0,TIME_PERIODIC);
end;



//используем нашу процедуру

StartTimer(10000)  // то есть 10 секунд
 
Ответить с цитированием

  #45  
Старый 05.03.2008, 19:03
Аватар для x0man
x0man
Познающий
Регистрация: 24.02.2006
Сообщений: 34
Провел на форуме:
136883

Репутация: 50
По умолчанию

Цитата:
Сообщение от TaNkist  
Очевидно, что длина str не меняется, но компилятор считает, что все, что передается по ссылке сожжет быть изменено, и lstrlen вычисляется много раз. Оптимизированный вариант выглядит так.
Код:
//Так лучше
N:=lstrlen(str);
While i<= n do
Begin
X:=x+ord(str[i]);
Inc(i);
End;
не знаю откуда это вообще взялось... мб старые компилеры такую хрень делали,
не знаю, не смотрел, но явно не в 7-й делфе...

Пис!
 
Ответить с цитированием

Delphi - простая работа с файлами
  #46  
Старый 26.04.2008, 16:37
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию Delphi - простая работа с файлами

Часто в коде программ можно увидеть что-то типа
Код:
var
  fi, fo: file;
  a: integer;
..
assignfile(fi, 'a.in');
reset(fi);
assignfile(fo, 'a.out');
rewrite(fo);
read(fi, a);
write(fo, a);
close(fi);
close(fo);
Реже встречается код, когда работа идёт с переопределением стандартного ввода/вывода, что на самом деле удобнее, поскольку в write, read, writeln и readln не надо писать ссылку на файл:
Код:
var
  a: integer;
..
assignfile(input, 'a.in');
reset(input);
assignfile(output, 'a.out');
rewrite(output);
read(a);
write(a);
close(input);
close(output);
На самом деле - можно сделать ещё короче:
Код:
var
  a: integer;
..
reset(input, 'a.in');
rewrite(output, 'a.out');
read(a);
write(a);
close(input);
close(output);
Кстати (тестилось и на винде, и на никсах - везде результат положительный), можно даже и не использовать
Цитата:
close(f)
- система сама всё правильно закрывает.
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #47  
Старый 26.04.2008, 16:51
Аватар для x0man
x0man
Познающий
Регистрация: 24.02.2006
Сообщений: 34
Провел на форуме:
136883

Репутация: 50
Thumbs down

Цитата:
Сообщение от desTiny  
Кстати (тестилось и на винде, и на никсах - везде результат положительный), можно даже и не использовать - система сама всё правильно закрывает.
Если так рассуждать, то вообще и память освобождать не надо и дескрипторы закрывать... конечно система сама всё закроет и поудаляет всё что надо, но это показывает, что у программиста руки из жопы растут... так что пишите красивый код или по крайней мере по правилам хорошего тона... а не через задницу...
 
Ответить с цитированием

  #48  
Старый 26.04.2008, 17:02
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Цитата:
Сообщение от x0man  
Если так рассуждать, то вообще и память освобождать не надо и дескрипторы закрывать... конечно система сама всё закроет и поудаляет всё что надо, но это показывает, что у программиста руки из жопы растут... так что пишите красивый код или по крайней мере по правилам хорошего тона... а не через задницу...
Я и не говорю, что так надо делать - я говорю, что это не критично. Просто, если открывать всё через CreateFile, то тогда, если не закрыть, то произойдёт что-нибудь нехорошее...
Сам я вообще стремлюсь к чему-то такому:

Код:
var
  a: integer;
..
reset(input, 'a.in');
rewrite(output, 'a.out');
try
  read(a);
  write(a);
finally
  close(input);
  close(output);
end;
PS Везёт мне на красивые номера постов сейчас Этот - 666777
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #49  
Старый 27.04.2008, 05:25
Аватар для x0man
x0man
Познающий
Регистрация: 24.02.2006
Сообщений: 34
Провел на форуме:
136883

Репутация: 50
По умолчанию

стремиться надо вот к такому если оперировать с файлами функциями делфы...
Код:
var input : File;
begin
  AssignFile(input, 'a.txt');
  {$I-}
    Reset(input);
  {$I+}
  if IOResult <> 0 then exit;
  CloseFile(input);
end;
 
Ответить с цитированием

  #50  
Старый 18.05.2008, 00:43
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Довольно интерестный способ вызова API функций. Очень удобен в случаях низко уровнего программирования или в тех местах где очень важен размер.
Многие API функции из kernel32.dll имеют аналоги в ntdll которые в свою очередь это лишь только оболочка над ядерными функциияви вызываемыми через SYSENTER
Вот примера вызова определенной функции напрямую через SYSENTER => нам даже не нужен импорт. Разви что зависимость от операционной системы.
Данный пример - аналог функции VirtualProtect для XP
Код:
 
 push _start	  ; адрес начала блока
 mov eax,esp	  ; eax = Pstart_block
 push 100	  ; длинна блока
 mov edx,esp	  ; edx = Plength_block
 push esp	  ; для нас не важно
 push 4 	  ; новые права доступа
 push edx	  ; Plength_block
 push eax	  ; Pstart_block
 push -1	  ; говорит что это наш процес
 xor eax,eax	  ;
 mov al,89h	  ; eax=89h => NtProtectVirtualMemory для XP
 push eax	  ; в нашем случае не важно что тут
 push @m1	  ; куда попадем после SYSENTER
 mov edx, esp	  ; нуна для SYSENTER
 sysenter
@m1:
 add esp,20h	  ; Очищаем стек
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
10 tips & tricks for C/C++ windows programming with Visual C++ 6.0 Dracula4ever Forum for discussion of ANTICHAT 0 30.05.2006 17:11



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ