Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26170
Рейтинг: 2127
#16: 2010-01-24 14:32:52 ЛС | профиль | цитата
Dilma, видимо, надо сделать так, что бы минусы мог ставить только тот у кого рэйтинг выше определенного значения, а то любой с нулевым может минусов наставить всем и так просто, по-приколу
карма: 22

0
Ответов: 3349
Рейтинг: 233
#17: 2010-01-24 17:05:01 ЛС | профиль | цитата
Какой дибил тему делал? Hiasm тут причем?
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#18: 2010-01-24 17:45:44 ЛС | профиль | цитата
Ivann писал(а):
Какой дибил тему делал?
Ivann, хоть админы и молчат, но ещё раз так выразишся - забаню на год.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#19: 2010-01-24 17:58:54 ЛС | профиль | цитата
Да что вы сегодня такие нервные, критические дни у вас, что ли, у всех
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#20: 2010-01-24 18:02:36 ЛС | профиль | цитата
nesco, ну я то совсем не нервный.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#21: 2010-01-24 18:10:09 ЛС | профиль | цитата
Tad писал(а):
ну я то совсем не нервный

Ну да, это я сказал
Tad писал(а):
ещё раз так выразишся - забаню на год


карма: 22

0
Ответов: 16884
Рейтинг: 1239
#22: 2010-01-24 18:20:39 ЛС | профиль | цитата
Если админы не против, то пусть и дальше обзывает всех дибилами.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#23: 2010-01-24 18:23:04 ЛС | профиль | цитата
Tad писал(а):
то пусть и дальше обзывает всех дибилами

Положим, он обозвал конкретного чела, того, кто породил эту тему, а не всех
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#24: 2010-01-24 18:42:59 ЛС | профиль | цитата
nesco писал(а):
Положим, он обозвал конкретного чела
Мог бы добавить - которого уже совершенно справедливо забанили.
Лиха беда начало. Завтра он (Ivann ) , войдя во вкус, обзовёт другого "конкретного чела"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#25: 2010-01-24 18:47:15 ЛС | профиль | цитата
Tad писал(а):
войдя во вкус, обзовёт другого "конкретного чела"

Вполне возможно, но этого, пока, не случилось.
карма: 22

0
Ответов: 3349
Рейтинг: 233
#26: 2010-01-24 19:03:38 ЛС | профиль | цитата
Tad, слушай я некого дибилом не называл, я имел ввиду что этой теме здесь неместо
Простите за такие Выражения!
------------ Дoбавленo в 19.05:
Мне пришла идея сделать схему фильтра текста
карма: 1

1
Голосовали:Tad
Разработчик
Ответов: 26170
Рейтинг: 2127
#27: 2010-01-24 19:10:25 ЛС | профиль | цитата
Ivann писал(а):
Мне пришла идея сделать схему фильтра текста

Она уже давно есть -- заменяет мат точками, но можешь и сам потренироваться, если хочешь. Но могу дать на свой IC ссылку, может кому пригодиться

Вот ссылка на схему http://www.hiasm.com//getfile/8329, я ее раньше никогда не выкладывал, вроде. На мат внутри схуемы не ругаться, это пример работы
карма: 22

0
Ответов: 3349
Рейтинг: 233
#28: 2010-01-24 19:25:40 ЛС | профиль | цитата
Схему сделал почти
как раздвоить данные?
где-то элемент видел а щас найти не могу
------------ Дoбавленo в 19.27:
nesco, http://www.hiasm.com//getfile/8329 с кодировочкой та проблемки
карма: 1

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#29: 2010-01-24 19:31:24 ЛС | профиль | цитата
Ivann писал(а):
http://www.hiasm.com//getfile/8329 с кодировочкой та проблемки

Никаких проблем там нет и не было, качать надо через загрузку файлов, если у тебя Опера. Это проблемы сервера Dilmы, а не схемы

Вот, схема без ссылки, и где там проблемы



Add(MainForm,3879120,175,133)
{
Left=10
Top=10
Width=378
Height=329
Ctl3D=0
Position=1
}
Add(InlineCode,7900557,238,189)
{
WorkPoints=#6:doWork|
EventPoints=#8:onResult|
DataPoints=#4:Text|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|1:{|9:Описание:|0:|94:Позволяет фильтровать нецензурные выражения в чате, на доске объявлений, комментариях режимов.|67:Облегченная версия - мат скорее просочится, чем будет заблокирован.|0:|0:|20:Разработчик: Dentall|31:Словарь подготовил: Agent Smith|0:|22:(c) 2004 GlumClub team|33:(c) 2004 Portnoff Company Limited|28:----------------------------|0:|0:|29:Последняя ревизия: 12/01/2005|0:|24:новые макросы исключений|0:|19:ревизия: 11/11/2004|28:1. Сделан словарь исключений|29:2. Теперь не теряется буква Ё|0:|19:ревизия: 08/11/2004|0:|21:1. Исправлен словарь.|50: (Проведен анализ на электронных книгах, а также|24: на чат-логах за год).|75:2. Проведена якобы оптимизация ;) Все равно не тестирвалось, чуда не ждите,|47: так сказать, по теории вроде как и должно...|0:|36:Оцененный ретинг обработки текста на|51:Athlon 2500+ / Nforce2 Ultra / 256Mb - 28-30 кб/сек|55:(Тест не совсем верный - чтение из файла и запись лога.|31:Реальная скорость гораздо выше)|0:|19:ревизия: 17/08/2004|27:[Fixed] обработка буквы "Ё"|36:[Fixed] обновлен и исправлен словарь|1:}|0:|1:{|16:Описание работы.|63:Из входной строки поочередно читаем массивы в 3,4,5,6 символов.|65:Двоичным поиском ищем, не попадают ли заданные кусочки в словарь.|50:Если попадают - заменяем найденный кусок на точки.|1:}|0:|54:// ВНИМАНИЕ!!! УДАЛЯЯ ИЛИ ДОБАВЛЯЯ ЭЛЕМЕНТЫ В СЛОВАРЬ,|59:// НЕ ЗАБЫВАЙТЕ МЕНЯТЬ ЗНАЧЕНИЯ HIGH В ФУНКЦИИ binarylookup|78:// ПОМНИТЕ, ВСЕ ЭЛЕМЕНТЫ ДОЛЖНЫ БЫТЬ *СТРОГО* ОТСОРТИРОВАНЫ ПО ВОЗРАСТАНИЮ !!!|0:|72:// Раскомментируйте для замены матов не точками, а случайными символами.|23:// {$DEFINE RANDOMSYMB}|0:|0:|30:uses Windows,kol,Share,Debug;|0:|44:const fuckdata3: array[1..34] of string[3] =|3: (|10: 'аеб',|10: 'бзд',|10: 'блд',|10: 'блт',|10: 'бля',|10: 'бсд',|10: 'вфл',|10: 'гвн',|10: 'гнд',|10: 'дрм',|10: 'дрч',|10: 'дрщ',|10: 'еби',|10: 'ебк',|10: 'ебс',|10: 'ебт',|10: 'ебу',|10: 'ебц',|10: 'епт',|10: 'жоп',|10: 'мнд',|10: 'пзд',|10: 'прд',|10: 'пэд',|10: 'пэз',|10: 'сри',|10: 'сру',|10: 'хер',|10: 'хуе',|10: 'хуи',|10: 'хуй',|10: 'хуя',|10: 'чмо',|11: 'яба');|0:|44:const fuckdata4: array[1..57] of string[4] =|3: (|11: 'блюю',|11: 'бляд',|11: 'блят',|11: 'боеб',|11: 'вофл',|11: 'гавн',|11: 'говн',|11: 'дрещ',|11: 'дрищ',|11: 'дроч',|11: 'дрст',|11: 'дрьм',|11: 'дрэч',|11: 'дрюч',|11: 'дряч',|11: 'ебал',|11: 'ебан',|11: 'ебар',|11: 'ебат',|11: 'ебет',|11: 'ебин',|11: 'ебну',|11: 'ебон',|11: 'ебор',|11: 'елда',|11: 'ибан',|11: 'курв',|11: 'монд',|11: 'муда',|11: 'муде',|11: 'муди',|11: 'мудк',|11: 'мудл',|11: 'мудо',|11: 'пдри',|11: 'педр',|11: 'пезд',|11: 'перд',|11: 'песд',|11: 'пидр',|11: 'пизд',|11: 'пирд',|11: 'писд',|11: 'пукн',|11: 'пэрд',|11: 'сука',|11: 'суки',|11: 'суку',|11: 'суча',|11: 'суче',|11: 'сучи',|11: 'сучк',|11: 'сучр',|11: 'сучу',|11: 'сцит',|11: 'хуле',|10: 'хуль'|6: );|0:|44:const fuckdata5: array[1..29] of string[5] =|3: (|12: 'гавен',|12: 'гандо',|12: 'говен',|12: 'гондо',|12: 'дрест',|12: 'дрист',|12: 'дрэст',|12: 'дряст',|12: 'ебень',|12: 'залуп',|12: 'здаты',|12: 'золуп',|12: 'какаш',|12: 'какть',|12: 'малаф',|12: 'менет',|12: 'минет',|12: 'педар',|12: 'педер',|12: 'педир',|12: 'педор',|12: 'педри',|12: 'пидар',|12: 'пидер',|12: 'пидор',|12: 'пипис',|12: 'письк',|12: 'уебок',|11: 'целка'|6: );|0:|43:const fuckdata6: array[1..2] of string[6] =|3: (|13: 'меньет',|12: 'миньет'|6: );|0:|45:const skipwords4: array[1..60] of string[4] =|3: (|11: 'абля',|11: 'асуч',|11: 'всуч',|11: 'гого',|11: 'деби',|11: 'дебн',|11: 'жебн',|11: 'заго',|11: 'зяба',|11: 'ипед',|11: 'ипид',|11: 'ихуй',|11: 'леба',|11: 'леби',|11: 'лебк',|11: 'лебл',|11: 'лебн',|11: 'лебу',|11: 'лебц',|11: 'лмуд',|11: 'неби',|11: 'небу',|11: 'небы',|11: 'непт',|11: 'обля',|11: 'одря',|11: 'осек',|11: 'рбля',|11: 'реба',|11: 'ребе',|11: 'реби',|11: 'ребл',|11: 'ребо',|11: 'ребс',|11: 'ребт',|11: 'ребу',|11: 'ребц',|11: 'репт',|11: 'риба',|11: 'рсук',|11: 'ряба',|11: 'септ',|11: 'срис',|11: 'сруб',|11: 'тебл',|11: 'тряс',|11: 'убля',|11: 'ухер',|11: 'хере',|15: 'херс', |11: 'херц',|11: 'хляб',|11: 'цепт',|11: 'чебн',|11: 'чебу',|11: 'чмок',|11: 'шебс',|11: 'шепт',|11: 'щебе',|10: 'юбля'|6: );|0:|44:const skipwords5: array[1..4] of string[5] =|3: (|12: 'махер',|12: 'педро',|12: 'сукач',|11: 'херув'|6: );|0:|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|23: onResult:THI_Event;|19: Text:THI_Event;|48: procedure doWork(var _Data:TData; idx:word);|5: end;|0:|14:implementation|0:|28:// Grabbed from SysUtils.pas|0:|56:function AnsiCompareText(const S1, S2: string): Integer;|5:begin|74: Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, PChar(S1),|43: Length(S1), PChar(S2), Length(S2)) - 2;|4:end;|0:|17:// Двоичный поиск|61:// здесь Delphi выдает 2 предупреждения, но они не сбудутся -|45:// мы всегда передаем параметр Size правильно|0:|74:function binarylookup(const phrase: string; const size: integer): boolean;|3:var|31: low, high, mid, cmp: integer;|5:begin|18: result := False;|11: low := 1;|0:|14: case size of|62: 3: high := 34; // Не забывайте корректировать эти значения|49: 4: high := 57; // при добавлении или удалении|42: 5: high := 29; // элементов из словаря|75: 6: high := 2; // !!! (Для ускорения работы здесь не стоит high(array);|18: 7: high := 60;|16: 8: high := 4|20: else high := 0; |6: end;|0:|24: if high > 0 then begin|30: while low <= high do begin|32: mid := (low + high) shr 1;|18: case size of|58: 3: cmp := AnsiCompareText(phrase, fuckdata3[mid]);|58: 4: cmp := AnsiCompareText(phrase, fuckdata4[mid]);|58: 5: cmp := AnsiCompareText(phrase, fuckdata5[mid]);|58: 6: cmp := AnsiCompareText(phrase, fuckdata6[mid]);|59: 7: cmp := AnsiCompareText(phrase, skipwords4[mid]);|58: 8: cmp := AnsiCompareText(phrase, skipwords5[mid])|22: else cmp := 0;|10: end;|37: if cmp < 0 then high := mid - 1|41: else if cmp > 0 then low := mid + 1|16: else begin|22: result := True;|13: break;|10: end;|8: end;|6: end;|4:end;|0:|67:procedure writechars(var data: string; const from, count: integer);|3:var|20: i, tolen: integer;|5:begin|24: tolen := from + count;|27: for i := from to tolen do|19: data[i] := '.';|4:end;|0:|28:function getplugname: PChar;|5:begin|28: result := 'АнтиматУльтра';|4:end;|0:|57:procedure yo_to_e(var input: string; const len: integer);|3:var|13: i: integer;|5:begin|22: for i := 1 to len do|47: if input[i] = 'ё' then input[i] := 'е' else|45: if input[i] = 'Ё' then input[i] := 'Е';|4:end;|0:|39:function workfunc(input: Pchar): Pchar;|3:var|16: s, s1: string;|18: i, len: integer;|20: block3: string[3];|20: block4: string[4];|20: block5: string[5];|20: block6: string[6];|5:begin|13: s := input;|14: s1 := input;|23: len := length(s) - 2;|22: yo_to_e(s, len + 2);|9: i := 1;|0:|21: while (i <= len) do|7: begin|0:|76:// Начинаем копировать с большего к меньшему - сперва первые 6 байт перейдут|73:// из памяти в кэш, остальное копирование будет происходить уже из кэша -|57:// мы не создадим пенальти. По вопросам оптимизации читай|80:// К. Касперски "Техника оптимизации программ: эффективное использование памяти"|0:|0:|14:// Примечание:|74:// Хотя, учитывая особенности архитектур современных компьютеров, порядок,|82:// скорее всего, не имеет значения - чтение и запись происходит все равно блоками,|63:// значительно превышающими по размеру используемые кусочки ;).|83:// Все равно рекомендую почитать указанную выше книгу, не смотря на ее дикую цену -|39:// она весьма занимательная и полезная.|0:|28: block6 := copy(s, i, 6);|28: block5 := copy(s, i, 5);|28: block4 := copy(s, i, 4);|28: block3 := copy(s, i, 3);|0:|50:// Поиск элементов производим в обратном порядке -|57:// наибольшая вероятность встретить короткий блок текста.|0:|14:// Примечание:|66:// Здесь тоже не все не совсем верно - кусочков по 4 буквы больше,|83:// чем трехбуквенных. У кого есть желание и время - погоняйте по тестам скорости ;)|67:// Родина вас не забудет. (Если вы не забудете выслать нам отчет на|22:// glumclub@mail.ru ;)|0:|26:// сперва ищем исключения!|35: if binarylookup(block5, 8) then|15: inc(i, 5)|8: else|37: if binarylookup(block4, 7) then|17: inc(i, 4)|10: else|39: if binarylookup(block4, 4) then|13: begin|31: writechars(s1, i, 3);|20: inc(i, 4);|16: end else|41: if binarylookup(block3, 3) then|15: begin|33: writechars(s1, i, 2);|47: inc(i, 3); // Здесь была ошибка !!!|18: end else|43: if binarylookup(block5, 5) then|17: begin|35: writechars(s1, i, 4);|24: inc(i, 5);|20: end else|45: if binarylookup(block6, 6) then|19: begin|37: writechars(s1, i, 5);|26: inc(i, 6);|30: end else inc(i);|6: end;|22: Result := PChar(s1);|4:end;|0:|29:procedure THiAsmClass.doWork;|16:var s: string;|5:begin|31: s:= ReadString(_Data, Text);|27: s := workfunc(PChar(s));|27: _hi_onEvent(onResult,s);|4:end;|0:|4:end.|
link(onResult,4254544:doEvent1,[])
link(Text,5365275:Text,[])
}
Add(ListBox,5365275,238,119)
{
Left=5
Top=10
Width=175
Height=225
Strings=#20:бля, ну вы и козлы !|14:гондоны сраные|14:пидары гнойные|
}
Add(ListBox,9798040,364,182)
{
Left=185
Top=10
Width=175
Height=225
}
Add(Button,10794957,175,189)
{
Left=130
Top=250
Width=110
Height=35
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
link(onClick,7900557:doWork,[])
}
Add(Hub,4254544,287,189)
{
link(onEvent1,9798040:doClear,[])
link(onEvent2,9798040:doText,[(341,202)(341,209)])
}

карма: 22

0
Ответов: 3349
Рейтинг: 233
#30: 2010-01-24 19:32:50 ЛС | профиль | цитата
я это и имел ввиду
------------ Дoбавленo в 19.38:
Есть ли элемет типо хаба тока повернутый на 90 градусов ( знаю что есть но найти не могу)
------------ Дoбавленo в 19.38:
Есть ли элемет типо хаба тока повернутый на 90 градусов ( знаю что есть но найти не могу)
------------ Дoбавленo в 19.44:
Add(MainForm,2953706,21,105)
{
}
Add(Button,1481859,252,56)
{
Left=170
Top=35
Width=115
Caption="уничтожить мат"
link(onClick,2801171:doEvent1,[(303,62)])
}
Add(Replace,8768108,322,490)
{
SubStr="пизда"
DestStr="****"
link(onReplace,14237474:doEvent1,[(366,496)])
link(Str,13091817:Var2,[(333,444)])
}
Add(Replace,8398443,427,532)
{
SubStr="хуй"
DestStr="****"
link(onReplace,14237474:doEvent2,[(481,538)(481,482)])
link(Str,13091817:Var3,[(433,432)])
}
Add(GetDataEx,13091817,327,427)
{
link(Data,493034:Text,[(333,295)(216,295)])
}
Add(Hub,14237474,504,469)
{
InCount=3
OutCount=1
link(onEvent1,493034:doText,[(530,475)(530,311)(198,311)(198,146)])
}
Add(Hub,2801171,287,217)
{
OutCount=3
link(onEvent1,8768108:doReplace,[(303,496)])
link(onEvent2,8398443:doReplace,[(364,230)(364,538)])
link(onEvent3,654062:doReplace,[(313,237)(313,426)(282,426)(282,615)])
}
Add(Replace,654062,294,609)
{
SubStr="дибил"
DestStr="****"
link(onReplace,14237474:doEvent3,[(415,615)(415,489)])
link(Str,13091817:Var1,[(300,432)])
}
Add(Memo,493034,210,119)
{
Left=35
Top=35
Width=135
Height=180
}


Вот так лучше
------------ Дoбавленo в 19.45:
три слова знает, и заменяет в введеном тексте
карма: 1

0
30
Сообщение
...
Прикрепленные файлы
(файлы не залиты)