ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2831  
Старый 19.02.2009, 19:40
Maxxxtri23
Познающий
Регистрация: 20.12.2008
Сообщений: 76
Провел на форуме:
432982

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

Я новичек в делфи, поэтому просьба не пинать. Как сделать так чтоб этот кусок кода выполнялся 10 раз и останавливался?
Код:
ICQclient1.SendMessage(StrToInt(target.Text),edit.text);
Sleep(200);
ICQclient2.SendMessage(StrToInt(target.Text),edit.text);
Sleep(200);
ICQclient3.SendMessage(StrToInt(target.Text),edit.text);
И вот еще при ипользовании оператора Sleep программа немного подвисает, как сделать чтоб клиенты по очереди слали сообщения с определенным промежутком времени. Тоесть мне надо например при нажатии на кнопку 3 этих ICQClient'а будут слать сообщения с имтервалом 200мс 10 раз, тоесть с итоге должно получится 30 сообщний
 
Ответить с цитированием

  #2832  
Старый 19.02.2009, 19:58
lll6
Познающий
Регистрация: 01.03.2008
Сообщений: 99
Провел на форуме:
613745

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

Эм, циклом?
Код:
For x:=1 to 10 do begin
ICQclient1.SendMessage(StrToInt(target.Text),edit.  text);
Sleep(200);
ICQclient2.SendMessage(StrToInt(target.Text),edit.  text);
Sleep(200);
ICQclient3.SendMessage(StrToInt(target.Text),edit.  text);
end;
А от зависаний я пользовался Аpplication.ProcessMessages(), но при сложных расчётах, как со слипом будет работать - не скажу. Ну либо компонентом TIdAntiFreeze

Последний раз редактировалось lll6; 19.02.2009 в 20:02..
 
Ответить с цитированием

  #2833  
Старый 19.02.2009, 20:24
crystalbit
Участник форума
Регистрация: 06.06.2008
Сообщений: 171
Провел на форуме:
1085601

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

чтоб не зависало тут или в отдельном потоке или
Код:
procedure sleep(ms:cardinal);
var
  tc:cardinal;
begin
  tc:=GetTickCount;
  repeat
    Application.ProcessMessages;
  until GetTickCount-tc > ms;
end;
 
Ответить с цитированием

  #2834  
Старый 19.02.2009, 23:22
OnArs
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме:
448388

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

Всем привет!

Есть задача подсчитать кол-во предложений в тексте.
1. Есть ли что-то готовое на этот счёт?
2. Начала реализовывать вот так:

Цитата:
clrscr;
assign(text, 'text.txt');
reset(text);

while not EOF(text) do
begin
read(text, simb);
write(simb);
if (simb='.')or(simb='!')or(simb='?') then inc(kol);
end;
writeln;
writeln ('Текст состоит из ',kol,' предложений');
readln;

close(text);
Но получается что для более точного подсчёта предложений мне нужно знать что находится перед символами "." "!" "?", а использовать стандартные функции работы с текстом нельзя и массивы тоже.

Подскажите пожалуйста как выйти из данной ситуации?
 
Ответить с цитированием

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

Репутация: 3349


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

Примерно так делай. Определит все предлложения кроме незаконченных символами . ? !
Код:
var
 s,tmp:string;
 x,len,cnt:integer;
 f:text;
begin
 cnt:=0;
 assign(f,'input.txt');
 reset(f);
 while not eof(f) do
   begin
     readln(f,s);
     len:=length(s);
     for x:=1 to len-1 do  // перебираем все символы кроме последнего
      begin
        // 1 - Eсли удовлетваряет услови.
        // 2 -  чтобы исключить ... .? !? итд 
       if (s[x] in ['!','?','.']) and (s[x+1] in ['!','?','.']=false) then inc(cnt);
      end;
    if (s[len] in ['!','?','.']) then inc(cnt);
  end;
вывод cnt

Последний раз редактировалось slesh; 20.02.2009 в 00:45..
 
Ответить с цитированием

  #2836  
Старый 20.02.2009, 00:54
OnArs
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме:
448388

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

Цитата:
Сообщение от slesh  
Примерно так делай. Определит все предлложения кроме незаконченных символами . ? !
Код:
var
 s,tmp:string;
 x,len,cnt:integer;
 f:text;
begin
 cnt:=0;
 assign(f,'input.txt');
 reset(f);
 while not eof(f) do
   begin
     readln(f,s);
     len:=length(s);
     for x:=1 to len-1 do  // перебираем все символы кроме последнего
      begin
        // 1 - Eсли удовлетваряет услови.
        // 2 -  чтобы исключить ... .? !? итд 
       if (s[x] in ['!','?','.']) and (s[x+1] in ['!','?','.']=false) then inc(cnt);
      end;
    if (s[len] in ['!','?','.']) then inc(cnt);
  end;
вывод cnt
Спасибо тебе конечно, но переменными типа string пользоваться нельзя, так же как и массивами
 
Ответить с цитированием

  #2837  
Старый 20.02.2009, 01:05
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

тогда идем так:
Код:
var
 c,last_c:char;
 cnt:integer;
 f:text;
begin
 cnt:=0;
 last_c:=' ';
 assign(f,'input.txt');
 reset(f);
 while not eof(f) do
   begin
     read(f,c);
     if (c in ['!','?','.']) and (last_c in ['!','?','.']=false) then inc(cnt);
     last_c:=c;
   end;
 close(f);
вывод cnt
 
Ответить с цитированием

  #2838  
Старый 20.02.2009, 01:12
OnArs
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме:
448388

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

Странно, всё нормально но выдаёт 0.

Ни разу не видел такой синтаксис:
(last_c in ['!','?','.']=false)
Но суть понятна: если прошлвый символ <> ни одному элементу этого массива то...

//Всё окей, прошу прощения, мои глюкю

((last_c in ['!','?','.'])=false)

slesh Спасибо что не оставил без внимания!

Последний раз редактировалось OnArs; 20.02.2009 в 01:18..
 
Ответить с цитированием

  #2839  
Старый 20.02.2009, 23:22
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


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

Есть ли способ проверить текст в memo на наличии DOS кодировки, есть ли она там или нет ?
 
Ответить с цитированием

  #2840  
Старый 20.02.2009, 23:43
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


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

Цитата:
Сообщение от slesh  
тогда идем так:
Код:
var
 c,last_c:char;
 cnt:integer;
 f:text;
begin
 cnt:=0;
 last_c:=' ';
 assign(f,'input.txt');
 reset(f);
 while not eof(f) do
   begin
     read(f,c);
     if (c in ['!','?','.']) and (last_c in ['!','?','.']=false) then inc(cnt);
     last_c:=c;
   end;
 close(f);
вывод cnt

Slesh Есть недочеты в коде:

Вот пофикси.

Код:
f:TextFile;

Код:
assignfile(f,'input.txt');

Код:
closefile(f);
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/WPAN/WLAN 2567 19.04.2026 23:21
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[jQuery] - Задай вопрос, получи ответ Isis PHP, PERL, MySQL, JavaScript 62 25.12.2009 03:25
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



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


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




ANTICHAT.XYZ