Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/113: Рейтинг темы: голосов - 113, средняя оценка - 4.81
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9

RegExp - найти ошибку в коде

28.07.2013, 21:19. Показов 22232. Ответов 78
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::Button7Click(TObject *Sender)
{
TStringList* List=new TStringList;  TRegExpr* RegExp=new TRegExpr;
List->Text=Memo1->Lines->Text;
for(int i=0; i<List->Count;i++)
{
 RegExp->InputString=List->Strings[i];
 RegExp->Expression="(<a href=\"|<sup id=\")(.*?)(\">)";
 if(RegExp->Exec(RegExp->InputString))
  {
   List->Strings[i]=RegExp->Replace(RegExp->Expression,"");
  }
}
Memo1->Lines->Text=List->Text;
}
HTML5
1
<p><a href="/wiki/15_%D0%BC%D0%B0%D1%8F" title="15 мая">15 мая</a> <a href="/wiki/2009_%D0%B3%D0%BE%D0%B4" title="2009 год">2009 года</a> открылся официальный сайт игры.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15">[15]</a></sup> На нём сразу же появились системные требования игры.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16">[16]</a></sup><sup id="cite_ref-17" class="reference"><a href="#cite_note-17">[17]</a></sup><sup id="cite_ref-18" class="reference"><a href="#cite_note-18">[18]</a></sup></p>
Программа выдает
HTML5
1
()
А должна выдавать
HTML5
1
<p>15 мая</a> 2009 года</a> открылся официальный сайт игры.[15]</a></sup> На нём сразу же появились системные требования игры.[16]</a></sup>[17]</a></sup>[18]</a></sup></p>
Скажите,что не так в коде.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.07.2013, 21:19
Ответы с готовыми решениями:

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два числа m и n и далее в выходной...

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде)
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() { int y = 0; for(int i = -21; i &lt; -99; i+=3) ...

Помогите найти ошибку в коде. Найти сумму ряда
Добрый день, помогите найти ошибку. Задача: Найти сумму ряда, вычисление ввести до тех пор пока разница между двумя соседними членами...

78
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
20.08.2013, 15:20  [ТС]
Студворк — интернет-сервис помощи студентам
Я все еще никак не разберусь с этим вопросом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
void __fastcall TForm1::ParsClick(TObject *Sender)
{
int k=0;
TStringList* List=new TStringList;   TStringList* Listok=new TStringList;
TRegExpr* RegExp=new TRegExpr;
TRegExpr* RegExp1=new TRegExpr;
List->Text=Memo1->Lines->Text;
 
 RegExp->InputString=List->Text;
 RegExp->Expression="(<p>(.*?)</p>)|(<li>(.*?)</li>)";
 RegExp->Compile();
 if(RegExp->Exec(RegExp->InputString))
 {
  do
  {
    Listok->Add(RegExp->Match[0]);
  }
  while (RegExp->ExecNext());
 }
 RegExp->InputString=Listok->Text;
 RegExp->Expression="(<a(.*?)\\\">)|(<img(.*?)/>)|</a>|<b>|</strong>|<strong>|</b>|<i>|</i>|(<span(.*?)</span>)|(<br(.*?)/>)|(<small>(.*?)</small>)|(<strong(.*?)\\\">)|(<sup id=\\\"(.*?)/sup>)";
 RegExp->Compile();
 if(RegExp->Exec(RegExp->InputString))
  {
   Listok->Text=RegExp->Replace(RegExp->InputString,"",false);
  }
 RegExp->InputString=Listok->Text;
 RegExp->Expression="(<!(.*?)->)|(\\\[…\\\])|<tt>|</tt>|(<script(.*?)</script>)";
 RegExp->Compile();
 if(RegExp->Exec(RegExp->InputString))
  {
   Listok->Text=RegExp->Replace(RegExp->InputString,"",false);
  }
 RegExp->InputString=Listok->Text; List->Clear();
 RegExp->Expression="(<p>(.*?)</p>)|(<li>(.*?)</li>)";
 RegExp->Compile();
 if(RegExp->Exec(RegExp->InputString))
 {
  do
  {
   RegExp1->InputString=RegExp->Match[0];
   RegExp1->Expression="([а-яА-Я]{4,})+-?[^\\\s.-]*";  //([а-яА-Я]{1,})+-?[^\s.-<>/`~!@#$%^&*()_+=,\[\]\{\}?;"'|\\]*
   RegExp1->Compile();
   if(RegExp1->Exec(RegExp1->InputString))
   {
    do
    {
    k++;
    }
    while (RegExp1->ExecNext());
   }
   if(k>10)
    {
      List->Add(RegExp->Match[0]);
      k=0;
    }
    else
    k=0;
  }
  while (RegExp->ExecNext());
 }
 RegExp->InputString=List->Text;
 RegExp->Expression="(<div(.*?)\\\">(.*?)</div>)|</div>";
 RegExp->Compile();
 if(RegExp->Exec(RegExp->InputString))
  {
   List->Text=RegExp->Replace(RegExp->InputString,"",false);
  }
 
  Memo1->Lines->Text=List->Text;
  RegExp1->Free(); RegExp->Free(); delete(List);  delete(Listok);
}
Текст,который получается после одного клика кнопки:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<p>Counter-Strike: Source (CS: Source, CS:S) — компьютерная игра, многопользовательский командный шутер от первого лица, разработанный компаниями Valve и Turtle Rock Studios; ремейк Counter-Strike, модификации 1999 года для игры Half-Life. Построенная на игровом движке Source, игра была выпущена в 2004 году изначально в комплекте с Half-Life 2, однако позже появились и отдельные её издания.</p>
<p>Как и в оригинальной версии игры, в Counter-Strike: Sourcе друг другу противостоят команда контртеррористов (CT, спецназа) и команда террористов (Т) в серии раундов.
Каждый раунд выигрывается посредством выполнения определённой миссии, такой как подрыв бомбы или спасение заложников либо после уничтожения всех членов вражеской команды.</p>
<p>Игровой процесс аналогичен таковому в Counter-Strike. Большинство видов оружия также идентично Counter-Strike 1.6 за исключением щита, который был доступен контртеррористам. В поздних версиях покупка патронов стала производиться автоматически в начале раунда и при покупке нового оружия, выдается полный боезапас (абсолютно бесплатно). Общая цена закупки стала ниже. Что и вызвало негодования у опытных геймеров классической CS. Патроны также можно пополнить, вернувшись на место покупки.</p>
<p>Все карты игры в начале названия содержат буквенный индекс, обозначающий их принадлежность к конкретному типу игры:</p>
<li>aim — карты, предназначенные для тренировки одного или нескольких видов оружия; игрок лишён возможности «закупки» выбранного оружия. Карты типов awp, scout, sg (ShotGun), he (HE Grenade), ka (Knife Arena) и других отличаются от aim только тем, что по началу карты легко определить, какой тип оружия можно использовать.</li>
<li>glass — карты, на которых игроки ходят по стеклянному бьющемуся полу, под котором находится пропасть. Цель — убить соперников из другой команды.</li>
<li>ba (Battle Arena) — особые карты-тюрьмы, на которых участники команды CT являются тюремными охранниками, а T — заключёнными. В начале игры у террористов есть только нож, для охранников же есть оружейные с большим выбором оружия. Процесс игры такой: охранники выпускают террористов из камер тюрьмы, а далее приказывают им куда идти или что делать. При этом убивать каждого террориста можно только после того как он нанесёт любой урон CT, либо не выполнит приказ. Таким образом цель CT — уничтожить всех непослушных заключённых, цель T — поднять бунт и убить всех охранников</li>
<li>fy (Fight Yard) — обычно небольшие карты с отсутствием места для закладки бомбы и заложников. Цель — уничтожить силы противника. Особенности карт такого типа в том что на них нельзя покупать оружие, броню и т.д, так как все они лежат в определённых точках.</li>
<li>zm (Zombie Mod) — карты, рассчитанные на большое количество игроков, с огромным количеством различных укрытий для защиты расы людей. Используются только на специальных серверах с установленным модом Zombie Mod.</li>
<li>ze (Zombie Escape) — аналог zm, где необходимо не просто спрятаться, а сбежать в безопасное место и уничтожить всех зомби ядерной ракетой.</li>
<li>as (Assassination) — карты, на которых задача спецназа вывести в точку эвакуации VIP персону, а террористов — помешать эвакуации или просто убить VIP’a.</li>
<li>props или prop — игроки делятся на две команды: одна строит себе убежище, из разных деталей, коробок, столбов, чтобы укрыться от противников; обязательно нужно оставить проход в убежище. Вторая команда выжидает нападения. Через 3 минуты после начала раунда противники начинают атаковать своих соперников. В конце игры команды меняются местами.</li>
<li>dr или deathrun (Death Run) — игроки делятся на две команды: команда спецназа бежит через полосу препятствий, на которой расположены разнообразные ловушки: вылетающие из стен шипы, проваливающийся пол с кислотой, двигающийся лазер и прочее. Террористы же должны следить за продвижением команды спецназа и вовремя активировать ловушки, тем самым убивая противников. В конце полосы испытаний находится в основном оружие, взяв которое прошедшие полосу смогут убить тех, кто активировал ловушки.</li>
<li>soccer — мод, в котором игроки играют в футбол. В случае попадания в ворота CT или T команда умирает. Удары по мячу осуществляются ножом, поэтому его можно считать дополнением к ka (отсюда и начало названия карт — ka_soccer)</li>
<li>gg (GunGame) — некое подобие DeathMatch, в котором игрок, начиная с самого слабого оружия — пистолета Glock — и в дальнейшем получая за убийство оппонентов более мощное, должен пройти всё оружие, представленное в CS:S, быстрее всех.</li>
<li>xc (Xtrime Climb) — карты, цель в которых — пройти до конца карты, для чего необходимо идти ползком, прыгать, съезжать и др. Эти карты похожи на Bh, но они предполагают прохождение не по ровным участкам, а всё время спускаясь и поднимаясь. В xc, как и в bh, нет разницы играть за T или CT. Обычно одна из команд укомплектована.</li>
<li>bh/bhop (bunny hop) — карты, при прохождении которых нужно использовать особую технику прыжков. Обычно надо прыгать по проваливающимся блокам. Как и в xc, длинные и сложные карты предполагают наличие специального мода, который позволяет прописывать команды !menu и !cp,"!"scout", при помощи которых можно сохраняться.</li>
<li>hns (Hide 'n' Seek) — «прятки»; игроки делятся на две команды: команда террористов в начале раунда без права «закупки» оружия превращается в различные предметы и должна за определенное время спрятаться, после чего команда спецназа начинает искать противоположную команду; при обнаружении террориста игрок из команды спецназа должен убить противника, за каждый выстрел по которому у того отнимаются очки жизни. Если команда спецназа за время раунда обнаружит и убьёт всех террористов, команда выиграет, в противном же случае побеждают террористы.</li>
<p>Все классические карты из оригинальной игры были воссозданы заново с учетом новых возможностей игрового движка: повышена детализация за счёт более проработанных текстур и моделей. В первой версии игры число карт было невелико, но позже разработчики добавили с помощью системы Steam новые карты, расширяя возможности игры. В игре используются ремейки старых карт, а также несколько новых, созданных разработчиками специально для Source-версии. Существует 18 стандартных карт:</p>
<p>Дополнительные карты также производятся поклонниками игры. За период существования игры было создано более 28000 пользовательских карт. Существуют и глобальные модификации на основе Counter-Strike: Sourcе, изменяющие стилистику игры и правила боя.</p>
<p>По сравнению с оригинальным Counter-Strike оружие в игре не перетерпело значительных изменений (более подробное описание оружия см. Оружие в CS).</p>
<p>В этой игре для всего арсенала игрока предоставлено 5 слотов: первый — для основного оружия (то есть для дробовиков, пистолетов-пулемётов, штурмовых и снайперских винтовок и пулемёта); второй — для пистолета; третий — для ножа; четвертый — для гранат (единственный слот, который может вмещать в себя несколько видов оружия); пятый — для бомбы (её могут носить только террористы на картах типа Bomb/Defuse). Существуют следующие типы оружия:</p>
<p>Основной идеей разработчиков был перенос культовой Counter-Strike на новый игровой движок, не задевая игровую механику оригинала. В сущности, CS:S имеет минимальные отличия в игровом плане от своего предшественника. Были переработаны хитбоксы, улучшен сетевой код и исправлены старые баги. Помимо этого, было увеличено вдвое (до 64) максимально допустимое количество игроков на сервере.</p>
<p>В игре используются более чёткие текстуры, средний размер которых 512?512 пикселов (128?128 в оригинале), а также более проработанные трёхмерные модели. Широко используются возможности движка, связанные с зеркальными отражениями — у оружия, снабжённого оптическим прицелом, можно видеть окружающую обстановку (но не модели других игроков) сзади игрока на линзе прицела, когда оно находится в не приближённом состоянии.</p>
<p>Звуковые эффекты теперь соответствуют акустическим условиям, введена поддержка колонок 5.1 и 7.1. Новые возможности движка помогли сделать карты более детализированными: появились валяющиеся на земле бутылки, пакеты, шины на которые также действует физическая модель. Физика полёта гранат, взрыв, а также эффект от их поражения изменены в сторону большей реалистичности.</p>
<p>Компания Valve с момента выпуска игры периодически выпускает обновления посредством системы Steam. Как правило, они представляют собой небольшие правки недоработок, но время от времени выходят и крупные обновления.</p>
<p>23 июня 2010 года вышло глобальное обновление, переводящее игру на более новую версию движка Source, добавляющее поддержку Mac OS X, т. н. «системы превосходства», новые экраны статистики и общей информации, новое отображение окончания раунда с интересными фактами об игроке, новую кинематографическую камеру смерти и 145 достижений.</p>
<p>Некоторым игрокам не понравилось обновление, в результате чего был учреждён сбор петиций для возврата игры к предыдущему состоянию. В числе претензий — «низкая частота смены кадров» и «ухудшение физики». Группой разработчиков-любителей была создана модификация «Counter-Strike: Source Classic», которая представляет «Counter-Strike: Source» без последнего обновления, и работает на базе «Half-Life 2: Deathmatch».</p>
<p>Разработчиками-энтузиастами создаются различные модификации к игре, такие как наборы карт, разнообразное игровое содержимое (новое оружие, новые модели заложников, террористов или спецназа) либо полноценные тотальные конверсии с другими условиями игры и иной стилистикой.</p>
<li>Zombie Mod: популярная модификация с игровом процессом в стиле «люди против зомби». Начинается раунд, игроки закупаются оружием, и на протяжение 20-30 секунд каждый игрок должен найти для себя убежище, после чего забаррикадироваться различными предметами. По истечении 20-30 секунд один или несколько игроков становятся зомби (телепортируются в СТ или Т точки), в арсенале которых только нож, которыми они заражают СТ и Т, превращая их в зомби. Задача людей: убить всех зомби или продержаться до конца раунда, задача зомби: инфицировать всех людей. Типы карт: ZM (Zombie) и ZE (Zombie Escape). См. также статью в «Викиучебнике».</li>
<li>CSS: DeathMatch: эта модификация имеет мало отличий от других детмач-модов. Игроки появляются на игровой карте в случайном порядке, и перед тем, как начать игру им даётся на выбор любое оружие, которое будет постоянно появляться. Игра ведется на фраги (количество убитых врагов). Типы карт: DM (Deathmatch), FY (FightYard), AIM (Aim)</li>
<li>CSS: RPG: модификация, подобная моду WCS. За убийство противника игрок получает кредиты, которые можно потратить на улучшение одной из 20 или более (в зависимости от версии мода) способности. Типы карт: любые.</li>
<li>Gun Game: модификация с игровом процессом типа Deathmatch. Единственным отличием является то, что оружие меняется в зависимости от количества убийств. Типы карт: GG (Gun Game).</li>
<li>Hide`n`Seek: модификация, игровой процесс которой заключается в поиске скрытых предметов (подобно логическим играм): СТ ищут в арсенале пистолеты, а Т выбирают, под чего маскироваться (под любой тип мебели). Типы карт HS (HideSeek).</li>
<li>Surf mod: модификация, похожая на обычную игру, с условием, что здесь нужно скользить по крутым поверхностям и выполнять разные трюки. Типы карт: SURF.</li>
<li>VIP mod: в стандартном комплекте Counter-Strike: Source не было (в отличие от Counter Strike 1.6) типа карт, где СТ должен сопровождать важную персону до точки его спасения, а Т — его ликвидировать. Этот мод возвращает данную возможность. Типы карт: AS (Assasin).</li>
<li>WCS mod, или Warcraft: Source — аналогична модификации WC3FT для Counter-Strike 1.6. Здесь главную роль играет развитие навыков расы игрока. С повышением общего уровня у игрока открывается доступ к более сильным расам. У каждой расы есть свои уникальные способности, такие как гравитация, более быстрая скорость, невидимость, длинный прыжок, взрыв после смерти и другое. Также есть магазин (shopmenu), где можно купить дополнительные усиления для персонажа. Типы карт: WC3, WCS.</li>
<li>Jail Mod: симуляция тюрьмы. Террористы в начале раунда появляются за решётками камер. После их открытия они должны выполнять приказы спецназа один за другим, пока не останется единственный выживший, который имеет право на последнее желание (мод Hosties). При вводе в чат !lr террористу предоставляется список желаний, такие как: рулетка, прыжки в длину, бой на ножах, метание Desert Eagle и многое другое (в зависимости от версии мода). Также террористы имеют право устраивать бунт. Типы карт: BA, JAIL, JB (JailBreak).</li>
<li>Death Run: модификация, где СТ или T (в зависимости от карты) должны пройти по полосе смертельных препятствий. Здесь выбранный случайно игрок активирует ловушки. Если кому-то удастся избежать эти ловушки, игроку предстоит бой с тем, кто их активирует. Типы карт: Deathrun.</li>
<li>Soccer Mod: футбол. В основном мод для игры 5 на 5. Террористы и спецназ появляются на поле, в середине которого лежит мяч. Задача каждой команды — загнать его ударами ножа во вражеские ворота, после чего произойдёт смерть проигравшей команды, и начнётся новый раунд. В этом моде нет урона от ножа. Типы карт: soccer.</li>
<li>Trikz Mod: командный мод. На карте может играть только одна команда. Основная задача: пройти через всяческие препятствия на карте, используя прыжки на ослепляющих гранатах, стрейфы и распрыжку. Типы карт: trikz.</li>
<li>props: модификация игры созданная по типу Minecraft. В нём одна команда ставит «пропсы», для того чтобы дать себе преимущество, а другая пытается их убить. Вся суть в том, что атакующая команда должна находиться в укрытии обороняющихся («пропсы» должны окружать укрытие как минимум с трёх сторон).</li>
<p><\/a>')
if(11<js)d.write('<'+'!-- ')//--></script><noscript>
</noscript>     
            
        
        
                                    
                                    <input type="hidden" name="loginToken" value="">
                                            
                                    <input type="hidden" name="returnto" value="">
                                            
                                    <input type="hidden" name="returntoquery" value="">
                                            
                                                            
                    
                                            
                                                            
                    
                                            
                                                            
                    
                                            
                                                            
                    
                                            
                                                            
                    
                                        </fieldset>
 
    </form>
    
 
                    Зарегистрироваться    </li>
<li>
            Создать страницу
        </li>
<li>
            История
        </li>
<p>Минимальные
</p>
<p>Counter-Strike: Source*— обновление многопользовательского командного шутера от первого лица Counter-Strike (Контр-Страйк). Игра CS Source была выпущена в 2004 году изначально в комплекте с Half-Life 2, а уже позднее стала отдельным коробочным изданием. Обновление игры коснулось в основном детализации карт и персонажей, в угоду более мощным компьютерам и графическим картам.
</p>
<p>Как и в оригинальной версии игры, в Counter-Strike: Sourcе друг другу противостоят команда террористов и команда контр-террористов (спецназа) в серии раундов, миссий.
</p>
<p>Каждый раунд выигрывается посредством выполнения определённой миссии (такой как подрыв бомбы, спасение заложников или VIP), либо после уничтожения всех членов вражеской команды.
</p>
<p>Игровой процесс почти полностью аналогичен таковому в Counter-Strike. Большинство видов оружия также идентично оружию в Counter-Strike 1.6, за исключением щита, который был доступен спецназовцам, а теперь нет. В поздних версиях покупка патронов стала производиться автоматически в начале раунда и при покупке нового оружия. Патроны теперь бесплатные, сразу дается полный боезапас при покупке оружия, их также можно пополнить вернувшись на место покупки.
</p>
<p>Все классические карты из оригинальной игры были воссозданы заново, с учетом новых возможностей игрового движка: повышена детализация за счет более проработанных текстур и моделей. В первой версии игры число карт было невелико, но позже разработчики добавляли с помощью системы Steam новые карты, расширяя возможности игры.
</p>
После двух кликов:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<p>Counter-Strike: Source (CS: Source, CS:S) — компьютерная игра, многопользовательский командный шутер от первого лица, разработанный компаниями Valve и Turtle Rock Studios; ремейк Counter-Strike, модификации 1999 года для игры Half-Life. Построенная на игровом движке Source, игра была выпущена в 2004 году изначально в комплекте с Half-Life 2, однако позже появились и отдельные её издания.</p>
<p>Как и в оригинальной версии игры, в Counter-Strike: Sourcе друг другу противостоят команда контртеррористов (CT, спецназа) и команда террористов (Т) в серии раундов.
Каждый раунд выигрывается посредством выполнения определённой миссии, такой как подрыв бомбы или спасение заложников либо после уничтожения всех членов вражеской команды.</p>
<p>Игровой процесс аналогичен таковому в Counter-Strike. Большинство видов оружия также идентично Counter-Strike 1.6 за исключением щита, который был доступен контртеррористам. В поздних версиях покупка патронов стала производиться автоматически в начале раунда и при покупке нового оружия, выдается полный боезапас (абсолютно бесплатно). Общая цена закупки стала ниже. Что и вызвало негодования у опытных геймеров классической CS. Патроны также можно пополнить, вернувшись на место покупки.</p>
<p>Все карты игры в начале названия содержат буквенный индекс, обозначающий их принадлежность к конкретному типу игры:</p>
<li>aim — карты, предназначенные для тренировки одного или нескольких видов оружия; игрок лишён возможности «закупки» выбранного оружия. Карты типов awp, scout, sg (ShotGun), he (HE Grenade), ka (Knife Arena) и других отличаются от aim только тем, что по началу карты легко определить, какой тип оружия можно использовать.</li>
<li>glass — карты, на которых игроки ходят по стеклянному бьющемуся полу, под котором находится пропасть. Цель — убить соперников из другой команды.</li>
<li>ba (Battle Arena) — особые карты-тюрьмы, на которых участники команды CT являются тюремными охранниками, а T — заключёнными. В начале игры у террористов есть только нож, для охранников же есть оружейные с большим выбором оружия. Процесс игры такой: охранники выпускают террористов из камер тюрьмы, а далее приказывают им куда идти или что делать. При этом убивать каждого террориста можно только после того как он нанесёт любой урон CT, либо не выполнит приказ. Таким образом цель CT — уничтожить всех непослушных заключённых, цель T — поднять бунт и убить всех охранников</li>
<li>fy (Fight Yard) — обычно небольшие карты с отсутствием места для закладки бомбы и заложников. Цель — уничтожить силы противника. Особенности карт такого типа в том что на них нельзя покупать оружие, броню и т.д, так как все они лежат в определённых точках.</li>
<li>zm (Zombie Mod) — карты, рассчитанные на большое количество игроков, с огромным количеством различных укрытий для защиты расы людей. Используются только на специальных серверах с установленным модом Zombie Mod.</li>
<li>ze (Zombie Escape) — аналог zm, где необходимо не просто спрятаться, а сбежать в безопасное место и уничтожить всех зомби ядерной ракетой.</li>
<li>as (Assassination) — карты, на которых задача спецназа вывести в точку эвакуации VIP персону, а террористов — помешать эвакуации или просто убить VIP’a.</li>
<li>props или prop — игроки делятся на две команды: одна строит себе убежище, из разных деталей, коробок, столбов, чтобы укрыться от противников; обязательно нужно оставить проход в убежище. Вторая команда выжидает нападения. Через 3 минуты после начала раунда противники начинают атаковать своих соперников. В конце игры команды меняются местами.</li>
<li>dr или deathrun (Death Run) — игроки делятся на две команды: команда спецназа бежит через полосу препятствий, на которой расположены разнообразные ловушки: вылетающие из стен шипы, проваливающийся пол с кислотой, двигающийся лазер и прочее. Террористы же должны следить за продвижением команды спецназа и вовремя активировать ловушки, тем самым убивая противников. В конце полосы испытаний находится в основном оружие, взяв которое прошедшие полосу смогут убить тех, кто активировал ловушки.</li>
<li>soccer — мод, в котором игроки играют в футбол. В случае попадания в ворота CT или T команда умирает. Удары по мячу осуществляются ножом, поэтому его можно считать дополнением к ka (отсюда и начало названия карт — ka_soccer)</li>
<li>gg (GunGame) — некое подобие DeathMatch, в котором игрок, начиная с самого слабого оружия — пистолета Glock — и в дальнейшем получая за убийство оппонентов более мощное, должен пройти всё оружие, представленное в CS:S, быстрее всех.</li>
<li>xc (Xtrime Climb) — карты, цель в которых — пройти до конца карты, для чего необходимо идти ползком, прыгать, съезжать и др. Эти карты похожи на Bh, но они предполагают прохождение не по ровным участкам, а всё время спускаясь и поднимаясь. В xc, как и в bh, нет разницы играть за T или CT. Обычно одна из команд укомплектована.</li>
<li>bh/bhop (bunny hop) — карты, при прохождении которых нужно использовать особую технику прыжков. Обычно надо прыгать по проваливающимся блокам. Как и в xc, длинные и сложные карты предполагают наличие специального мода, который позволяет прописывать команды !menu и !cp,"!"scout", при помощи которых можно сохраняться.</li>
<li>hns (Hide 'n' Seek) — «прятки»; игроки делятся на две команды: команда террористов в начале раунда без права «закупки» оружия превращается в различные предметы и должна за определенное время спрятаться, после чего команда спецназа начинает искать противоположную команду; при обнаружении террориста игрок из команды спецназа должен убить противника, за каждый выстрел по которому у того отнимаются очки жизни. Если команда спецназа за время раунда обнаружит и убьёт всех террористов, команда выиграет, в противном же случае побеждают террористы.</li>
<p>Все классические карты из оригинальной игры были воссозданы заново с учетом новых возможностей игрового движка: повышена детализация за счёт более проработанных текстур и моделей. В первой версии игры число карт было невелико, но позже разработчики добавили с помощью системы Steam новые карты, расширяя возможности игры. В игре используются ремейки старых карт, а также несколько новых, созданных разработчиками специально для Source-версии. Существует 18 стандартных карт:</p>
<p>Дополнительные карты также производятся поклонниками игры. За период существования игры было создано более 28000 пользовательских карт. Существуют и глобальные модификации на основе Counter-Strike: Sourcе, изменяющие стилистику игры и правила боя.</p>
<p>По сравнению с оригинальным Counter-Strike оружие в игре не перетерпело значительных изменений (более подробное описание оружия см. Оружие в CS).</p>
<p>В этой игре для всего арсенала игрока предоставлено 5 слотов: первый — для основного оружия (то есть для дробовиков, пистолетов-пулемётов, штурмовых и снайперских винтовок и пулемёта); второй — для пистолета; третий — для ножа; четвертый — для гранат (единственный слот, который может вмещать в себя несколько видов оружия); пятый — для бомбы (её могут носить только террористы на картах типа Bomb/Defuse). Существуют следующие типы оружия:</p>
<p>Основной идеей разработчиков был перенос культовой Counter-Strike на новый игровой движок, не задевая игровую механику оригинала. В сущности, CS:S имеет минимальные отличия в игровом плане от своего предшественника. Были переработаны хитбоксы, улучшен сетевой код и исправлены старые баги. Помимо этого, было увеличено вдвое (до 64) максимально допустимое количество игроков на сервере.</p>
<p>В игре используются более чёткие текстуры, средний размер которых 512?512 пикселов (128?128 в оригинале), а также более проработанные трёхмерные модели. Широко используются возможности движка, связанные с зеркальными отражениями — у оружия, снабжённого оптическим прицелом, можно видеть окружающую обстановку (но не модели других игроков) сзади игрока на линзе прицела, когда оно находится в не приближённом состоянии.</p>
<p>Звуковые эффекты теперь соответствуют акустическим условиям, введена поддержка колонок 5.1 и 7.1. Новые возможности движка помогли сделать карты более детализированными: появились валяющиеся на земле бутылки, пакеты, шины на которые также действует физическая модель. Физика полёта гранат, взрыв, а также эффект от их поражения изменены в сторону большей реалистичности.</p>
<p>Компания Valve с момента выпуска игры периодически выпускает обновления посредством системы Steam. Как правило, они представляют собой небольшие правки недоработок, но время от времени выходят и крупные обновления.</p>
<p>23 июня 2010 года вышло глобальное обновление, переводящее игру на более новую версию движка Source, добавляющее поддержку Mac OS X, т. н. «системы превосходства», новые экраны статистики и общей информации, новое отображение окончания раунда с интересными фактами об игроке, новую кинематографическую камеру смерти и 145 достижений.</p>
<p>Некоторым игрокам не понравилось обновление, в результате чего был учреждён сбор петиций для возврата игры к предыдущему состоянию. В числе претензий — «низкая частота смены кадров» и «ухудшение физики». Группой разработчиков-любителей была создана модификация «Counter-Strike: Source Classic», которая представляет «Counter-Strike: Source» без последнего обновления, и работает на базе «Half-Life 2: Deathmatch».</p>
<p>Разработчиками-энтузиастами создаются различные модификации к игре, такие как наборы карт, разнообразное игровое содержимое (новое оружие, новые модели заложников, террористов или спецназа) либо полноценные тотальные конверсии с другими условиями игры и иной стилистикой.</p>
<li>Zombie Mod: популярная модификация с игровом процессом в стиле «люди против зомби». Начинается раунд, игроки закупаются оружием, и на протяжение 20-30 секунд каждый игрок должен найти для себя убежище, после чего забаррикадироваться различными предметами. По истечении 20-30 секунд один или несколько игроков становятся зомби (телепортируются в СТ или Т точки), в арсенале которых только нож, которыми они заражают СТ и Т, превращая их в зомби. Задача людей: убить всех зомби или продержаться до конца раунда, задача зомби: инфицировать всех людей. Типы карт: ZM (Zombie) и ZE (Zombie Escape). См. также статью в «Викиучебнике».</li>
<li>CSS: DeathMatch: эта модификация имеет мало отличий от других детмач-модов. Игроки появляются на игровой карте в случайном порядке, и перед тем, как начать игру им даётся на выбор любое оружие, которое будет постоянно появляться. Игра ведется на фраги (количество убитых врагов). Типы карт: DM (Deathmatch), FY (FightYard), AIM (Aim)</li>
<li>CSS: RPG: модификация, подобная моду WCS. За убийство противника игрок получает кредиты, которые можно потратить на улучшение одной из 20 или более (в зависимости от версии мода) способности. Типы карт: любые.</li>
<li>Gun Game: модификация с игровом процессом типа Deathmatch. Единственным отличием является то, что оружие меняется в зависимости от количества убийств. Типы карт: GG (Gun Game).</li>
<li>Hide`n`Seek: модификация, игровой процесс которой заключается в поиске скрытых предметов (подобно логическим играм): СТ ищут в арсенале пистолеты, а Т выбирают, под чего маскироваться (под любой тип мебели). Типы карт HS (HideSeek).</li>
<li>Surf mod: модификация, похожая на обычную игру, с условием, что здесь нужно скользить по крутым поверхностям и выполнять разные трюки. Типы карт: SURF.</li>
<li>VIP mod: в стандартном комплекте Counter-Strike: Source не было (в отличие от Counter Strike 1.6) типа карт, где СТ должен сопровождать важную персону до точки его спасения, а Т — его ликвидировать. Этот мод возвращает данную возможность. Типы карт: AS (Assasin).</li>
<li>WCS mod, или Warcraft: Source — аналогична модификации WC3FT для Counter-Strike 1.6. Здесь главную роль играет развитие навыков расы игрока. С повышением общего уровня у игрока открывается доступ к более сильным расам. У каждой расы есть свои уникальные способности, такие как гравитация, более быстрая скорость, невидимость, длинный прыжок, взрыв после смерти и другое. Также есть магазин (shopmenu), где можно купить дополнительные усиления для персонажа. Типы карт: WC3, WCS.</li>
<li>Jail Mod: симуляция тюрьмы. Террористы в начале раунда появляются за решётками камер. После их открытия они должны выполнять приказы спецназа один за другим, пока не останется единственный выживший, который имеет право на последнее желание (мод Hosties). При вводе в чат !lr террористу предоставляется список желаний, такие как: рулетка, прыжки в длину, бой на ножах, метание Desert Eagle и многое другое (в зависимости от версии мода). Также террористы имеют право устраивать бунт. Типы карт: BA, JAIL, JB (JailBreak).</li>
<li>Death Run: модификация, где СТ или T (в зависимости от карты) должны пройти по полосе смертельных препятствий. Здесь выбранный случайно игрок активирует ловушки. Если кому-то удастся избежать эти ловушки, игроку предстоит бой с тем, кто их активирует. Типы карт: Deathrun.</li>
<li>Soccer Mod: футбол. В основном мод для игры 5 на 5. Террористы и спецназ появляются на поле, в середине которого лежит мяч. Задача каждой команды — загнать его ударами ножа во вражеские ворота, после чего произойдёт смерть проигравшей команды, и начнётся новый раунд. В этом моде нет урона от ножа. Типы карт: soccer.</li>
<li>Trikz Mod: командный мод. На карте может играть только одна команда. Основная задача: пройти через всяческие препятствия на карте, используя прыжки на ослепляющих гранатах, стрейфы и распрыжку. Типы карт: trikz.</li>
<li>props: модификация игры созданная по типу Minecraft. В нём одна команда ставит «пропсы», для того чтобы дать себе преимущество, а другая пытается их убить. Вся суть в том, что атакующая команда должна находиться в укрытии обороняющихся («пропсы» должны окружать укрытие как минимум с трёх сторон).</li>
<p>Counter-Strike: Source*— обновление многопользовательского командного шутера от первого лица Counter-Strike (Контр-Страйк). Игра CS Source была выпущена в 2004 году изначально в комплекте с Half-Life 2, а уже позднее стала отдельным коробочным изданием. Обновление игры коснулось в основном детализации карт и персонажей, в угоду более мощным компьютерам и графическим картам.
</p>
<p>Как и в оригинальной версии игры, в Counter-Strike: Sourcе друг другу противостоят команда террористов и команда контр-террористов (спецназа) в серии раундов, миссий.
</p>
<p>Каждый раунд выигрывается посредством выполнения определённой миссии (такой как подрыв бомбы, спасение заложников или VIP), либо после уничтожения всех членов вражеской команды.
</p>
<p>Игровой процесс почти полностью аналогичен таковому в Counter-Strike. Большинство видов оружия также идентично оружию в Counter-Strike 1.6, за исключением щита, который был доступен спецназовцам, а теперь нет. В поздних версиях покупка патронов стала производиться автоматически в начале раунда и при покупке нового оружия. Патроны теперь бесплатные, сразу дается полный боезапас при покупке оружия, их также можно пополнить вернувшись на место покупки.
</p>
<p>Все классические карты из оригинальной игры были воссозданы заново, с учетом новых возможностей игрового движка: повышена детализация за счет более проработанных текстур и моделей. В первой версии игры число карт было невелико, но позже разработчики добавляли с помощью системы Steam новые карты, расширяя возможности игры.
</p>
Сам думаю,что нужно в цикле while проверять два стригнлиста на 100% совпадение,как это произойдет,то текст полностью без лишних тегов.
Я не знаю,насколько рационально это решение,но я буду рад,если кто-нибудь предложет решение лучше.Спасибо за внимание.
P.S. Не оставляйте тему без внимания...
P.S.S. Прошу прощение за чрезмерную навязчивость
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
20.08.2013, 15:38
Цитата Сообщение от Gdasar Посмотреть сообщение
Сам думаю,что нужно в цикле while проверять два стригнлиста на 100% совпадение,как это произойдет,то текст полностью без лишних тегов.
Зачем проверять стринглисты-то? Ты лучше бы сделал флажок, в начале цикла равный False, который изменял бы на True при каждом RegExp->Replace. И цикл в таком случае гонялся бы, пока этот флажок после всех действий не остался в значении False. Значит, никаких замен не понадобилось, и лишних тегов уже нет.
1
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
20.08.2013, 19:50  [ТС]
Программа зависла намертво
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void __fastcall TForm1::Button5Click(TObject *Sender)
{
TStringList* List=new TStringList;
TRegExpr* RegExp=new TRegExpr;
List->Text=Memo1->Lines->Text;
 bool flag=true;
 while(flag!=false)
 {
 RegExp->InputString=List->Text; List->Clear();
 RegExp->Expression="(<p>(.*?)</p>)|(<li>(.*?)</li>)";
 RegExp->Compile();
 if(RegExp->Exec(RegExp->InputString))
 {
  do
  {
    List->Add(RegExp->Match[0]);
  }
  while (RegExp->ExecNext());
 // flag=true;
 }
 else
 {
 flag=false;
 }
 }
  Memo1->Lines->Text=List->Text;
 RegExp->Free(); delete(List);
}
Видать я совсем слепой,если не нахожу ошибку
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
20.08.2013, 21:27
Ну, а что ты хочешь, чтобы у тебя происходило? Я тебе советовал не то, что ты написал, а нечто другое: при попытке удаления найденного соответствия изменять флаг, а ты делаешь наоборот: ищешь нужные соответствия, и пытаешься по НЕнахождению их изменять флажок. А ведь этого никогда не произойдёт: как было изначально, скажем, 56 совпадений, так эти же 56 и будут на следующем проходе. А вот когда будешь искать НЕнужные элементы и их выбрасывать - этот алгоритм сработает.
0
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
20.08.2013, 21:51  [ТС]
UI, программа отлично работает с удалением тегов,она именно не работает со сбором текста в теге p и li.
Я же не случайно выложил два текстовика,которые получается при парсинге: вот они.
И мне именно нужно,что бы при парсинге не захватывалось лишнее,а именно:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<p><\/a>')
if(11<js)d.write('<'+'!-- ')//--></script><noscript>
</noscript>     
            
        
        
                                    
                                    <input type="hidden" name="loginToken" value="">
                                            
                                    <input type="hidden" name="returnto" value="">
                                            
                                    <input type="hidden" name="returntoquery" value="">
                                            
                                                            
                    
                                            
                                                            
                    
                                            
                                                            
                    
                                            
                                                            
                    
                                            
                                                            
                    
                                        </fieldset>
 
    </form>
Я думал,что этот код избавит меня от проблемы,но нет
Возможно я не понял вас до конца,если это так,то поправьте меня...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
21.08.2013, 00:10
Цитата Сообщение от Gdasar Посмотреть сообщение
Я же не случайно выложил два текстовика,которые получается при парсинге:
А можно посмотреть исходный текст, который надо привести к тому, что получается
Цитата Сообщение от Gdasar Посмотреть сообщение
После двух кликов
? Есть идея...
0
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
21.08.2013, 12:36  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Есть идея...
Идея была единственная(она была изложена выше). Больше что-то муза не посещает
Исходный код в аттаче...
Вложения
Тип файла: 7z text1.7z (107.0 Кб, 4 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
21.08.2013, 13:58
Цитата Сообщение от Gdasar Посмотреть сообщение
Идея была единственная(она была изложена выше).
У меня идея появилась. Для этого мне надо было видеть весь текст. Я убедился, что у тебя в структуре HTML есть сбои, поэтому и не получается обработать регэкспами. Вот максимальное приближение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int k=0;
    TStringList* List=new TStringList;   TStringList* Listok=new TStringList;
    TRegExpr* RegExp=new TRegExpr;
    TRegExpr* RegExp1=new TRegExpr;
    List->Text=Memo1->Lines->Text;
 
    RegExp->InputString=List->Text;
    RegExp->Expression="(<!(.*?)->)|(\\\[…\\\])|<tt>|</tt>|(<script(.*?)</script>)";
    RegExp->ModifierM = true; // Будет убивать многострочные скрипты
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        List->Text=RegExp->Replace(RegExp->InputString,"",false);
    }
 
    RegExp->InputString=List->Text;
    RegExp->Expression="(<p>(.*?)</p>)|(<li>(.*?)</li>)";
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        do
        {
            Listok->Add(RegExp->Match[0]);
        }
        while (RegExp->ExecNext());
    }
    RegExp->InputString=Listok->Text;
    RegExp->Expression="(<a(.*?)\\\">)|(<img(.*?)/>)|</a>|<b>|</strong>|<strong>|</b>|<i>|</i>|(<span(.*?)</span>)|(<br(.*?)/>)|(<small>(.*?)</small>)|(<strong(.*?)\\\">)|(<sup id=\\\"(.*?)/sup>)";
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        Listok->Text=RegExp->Replace(RegExp->InputString,"",false);
    }
 
    RegExp->InputString=Listok->Text; List->Clear();
    RegExp->Expression="(<p>(.*?)</p>)|(<li>(.*?)</li>)";
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        do
        {
            RegExp1->InputString=RegExp->Match[0];
            RegExp1->Expression="([а-яА-Я]{4,})+-?[^\\\s.-]*"; // У меня тут L"([а-яА-Я]{4,})+-?[^\\\s.-]*"
            RegExp1->Compile();
            if(RegExp1->Exec(RegExp1->InputString))
            {
                do
                {
                    k++;
                }
                while (RegExp1->ExecNext());
            }
            if(k>10)
            {
                List->Add(RegExp->Match[0]);
                k=0;
            }
            else
                k=0;
        }
        while (RegExp->ExecNext());
    }
 
    RegExp->InputString=List->Text;
    RegExp->Expression="(<div(.*?)\\\">(.*?)</div>)|</div>|(<input type(.*?)\\\">)|</noscript>|</fieldset>|</form>|[\t]*";
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        List->Text=RegExp->Replace(RegExp->InputString,"",false);
    }
 
    Memo1->Lines->Text=List->Text;
    delete RegExp1; delete RegExp;
    delete List; delete Listok;
}
Результат
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<p>Counter-Strike: Source (CS: Source, CS:S) — компьютерная игра, многопользовательский командный шутер от первого лица, разработанный компаниями Valve и Turtle Rock Studios; ремейк Counter-Strike, модификации 1999 года для игры Half-Life. Построенная на игровом движке Source, игра была выпущена в 2004 году изначально в комплекте с Half-Life 2, однако позже появились и отдельные её издания.</p>
<p>Как и в оригинальной версии игры, в Counter-Strike: Sourcе друг другу противостоят команда контртеррористов (CT, спецназа) и команда террористов (Т) в серии раундов.
Каждый раунд выигрывается посредством выполнения определённой миссии, такой как подрыв бомбы или спасение заложников либо после уничтожения всех членов вражеской команды.</p>
<p>Игровой процесс аналогичен таковому в Counter-Strike. Большинство видов оружия также идентично Counter-Strike 1.6 за исключением щита, который был доступен контртеррористам. В поздних версиях покупка патронов стала производиться автоматически в начале раунда и при покупке нового оружия, выдается полный боезапас (абсолютно бесплатно). Общая цена закупки стала ниже. Что и вызвало негодования у опытных геймеров классической CS. Патроны также можно пополнить, вернувшись на место покупки.</p>
<p>Все карты игры в начале названия содержат буквенный индекс, обозначающий их принадлежность к конкретному типу игры:</p>
<li>aim — карты, предназначенные для тренировки одного или нескольких видов оружия; игрок лишён возможности «закупки» выбранного оружия. Карты типов awp, scout, sg (ShotGun), he (HE Grenade), ka (Knife Arena) и других отличаются от aim только тем, что по началу карты легко определить, какой тип оружия можно использовать.</li>
<li>glass — карты, на которых игроки ходят по стеклянному бьющемуся полу, под котором находится пропасть. Цель — убить соперников из другой команды.</li>
<li>ba (Battle Arena) — особые карты-тюрьмы, на которых участники команды CT являются тюремными охранниками, а T — заключёнными. В начале игры у террористов есть только нож, для охранников же есть оружейные с большим выбором оружия. Процесс игры такой: охранники выпускают террористов из камер тюрьмы, а далее приказывают им куда идти или что делать. При этом убивать каждого террориста можно только после того как он нанесёт любой урон CT, либо не выполнит приказ. Таким образом цель CT — уничтожить всех непослушных заключённых, цель T — поднять бунт и убить всех охранников</li>
<li>fy (Fight Yard) — обычно небольшие карты с отсутствием места для закладки бомбы и заложников. Цель — уничтожить силы противника. Особенности карт такого типа в том что на них нельзя покупать оружие, броню и т.д, так как все они лежат в определённых точках.</li>
<li>zm (Zombie Mod) — карты, рассчитанные на большое количество игроков, с огромным количеством различных укрытий для защиты расы людей. Используются только на специальных серверах с установленным модом Zombie Mod.</li>
<li>ze (Zombie Escape) — аналог zm, где необходимо не просто спрятаться, а сбежать в безопасное место и уничтожить всех зомби ядерной ракетой.</li>
<li>as (Assassination) — карты, на которых задача спецназа вывести в точку эвакуации VIP персону, а террористов — помешать эвакуации или просто убить VIP’a.</li>
<li>props или prop — игроки делятся на две команды: одна строит себе убежище, из разных деталей, коробок, столбов, чтобы укрыться от противников; обязательно нужно оставить проход в убежище. Вторая команда выжидает нападения. Через 3 минуты после начала раунда противники начинают атаковать своих соперников. В конце игры команды меняются местами.</li>
<li>dr или deathrun (Death Run) — игроки делятся на две команды: команда спецназа бежит через полосу препятствий, на которой расположены разнообразные ловушки: вылетающие из стен шипы, проваливающийся пол с кислотой, двигающийся лазер и прочее. Террористы же должны следить за продвижением команды спецназа и вовремя активировать ловушки, тем самым убивая противников. В конце полосы испытаний находится в основном оружие, взяв которое прошедшие полосу смогут убить тех, кто активировал ловушки.</li>
<li>soccer — мод, в котором игроки играют в футбол. В случае попадания в ворота CT или T команда умирает. Удары по мячу осуществляются ножом, поэтому его можно считать дополнением к ka (отсюда и начало названия карт — ka_soccer)</li>
<li>gg (GunGame) — некое подобие DeathMatch, в котором игрок, начиная с самого слабого оружия — пистолета Glock — и в дальнейшем получая за убийство оппонентов более мощное, должен пройти всё оружие, представленное в CS:S, быстрее всех.</li>
<li>xc (Xtrime Climb) — карты, цель в которых — пройти до конца карты, для чего необходимо идти ползком, прыгать, съезжать и др. Эти карты похожи на Bh, но они предполагают прохождение не по ровным участкам, а всё время спускаясь и поднимаясь. В xc, как и в bh, нет разницы играть за T или CT. Обычно одна из команд укомплектована.</li>
<li>bh/bhop (bunny hop) — карты, при прохождении которых нужно использовать особую технику прыжков. Обычно надо прыгать по проваливающимся блокам. Как и в xc, длинные и сложные карты предполагают наличие специального мода, который позволяет прописывать команды !menu и !cp,"!"scout", при помощи которых можно сохраняться.</li>
<li>hns (Hide 'n' Seek) — «прятки»; игроки делятся на две команды: команда террористов в начале раунда без права «закупки» оружия превращается в различные предметы и должна за определенное время спрятаться, после чего команда спецназа начинает искать противоположную команду; при обнаружении террориста игрок из команды спецназа должен убить противника, за каждый выстрел по которому у того отнимаются очки жизни. Если команда спецназа за время раунда обнаружит и убьёт всех террористов, команда выиграет, в противном же случае побеждают террористы.</li>
<p>Все классические карты из оригинальной игры были воссозданы заново с учетом новых возможностей игрового движка: повышена детализация за счёт более проработанных текстур и моделей. В первой версии игры число карт было невелико, но позже разработчики добавили с помощью системы Steam новые карты, расширяя возможности игры. В игре используются ремейки старых карт, а также несколько новых, созданных разработчиками специально для Source-версии. Существует 18 стандартных карт:</p>
<p>Дополнительные карты также производятся поклонниками игры. За период существования игры было создано более 28000 пользовательских карт. Существуют и глобальные модификации на основе Counter-Strike: Sourcе, изменяющие стилистику игры и правила боя.</p>
<p>По сравнению с оригинальным Counter-Strike оружие в игре не перетерпело значительных изменений (более подробное описание оружия см. Оружие в CS).</p>
<p>В этой игре для всего арсенала игрока предоставлено 5 слотов: первый — для основного оружия (то есть для дробовиков, пистолетов-пулемётов, штурмовых и снайперских винтовок и пулемёта); второй — для пистолета; третий — для ножа; четвертый — для гранат (единственный слот, который может вмещать в себя несколько видов оружия); пятый — для бомбы (её могут носить только террористы на картах типа Bomb/Defuse). Существуют следующие типы оружия:</p>
<p>Основной идеей разработчиков был перенос культовой Counter-Strike на новый игровой движок, не задевая игровую механику оригинала. В сущности, CS:S имеет минимальные отличия в игровом плане от своего предшественника. Были переработаны хитбоксы, улучшен сетевой код и исправлены старые баги. Помимо этого, было увеличено вдвое (до 64) максимально допустимое количество игроков на сервере.</p>
<p>В игре используются более чёткие текстуры, средний размер которых 512?512 пикселов (128?128 в оригинале), а также более проработанные трёхмерные модели. Широко используются возможности движка, связанные с зеркальными отражениями — у оружия, снабжённого оптическим прицелом, можно видеть окружающую обстановку (но не модели других игроков) сзади игрока на линзе прицела, когда оно находится в не приближённом состоянии.</p>
<p>Звуковые эффекты теперь соответствуют акустическим условиям, введена поддержка колонок 5.1 и 7.1. Новые возможности движка помогли сделать карты более детализированными: появились валяющиеся на земле бутылки, пакеты, шины на которые также действует физическая модель. Физика полёта гранат, взрыв, а также эффект от их поражения изменены в сторону большей реалистичности.</p>
<p>Компания Valve с момента выпуска игры периодически выпускает обновления посредством системы Steam. Как правило, они представляют собой небольшие правки недоработок, но время от времени выходят и крупные обновления.</p>
<p>23 июня 2010 года вышло глобальное обновление, переводящее игру на более новую версию движка Source, добавляющее поддержку Mac OS X, т. н. «системы превосходства», новые экраны статистики и общей информации, новое отображение окончания раунда с интересными фактами об игроке, новую кинематографическую камеру смерти и 145 достижений.</p>
<p>Некоторым игрокам не понравилось обновление, в результате чего был учреждён сбор петиций для возврата игры к предыдущему состоянию. В числе претензий — «низкая частота смены кадров» и «ухудшение физики». Группой разработчиков-любителей была создана модификация «Counter-Strike: Source Classic», которая представляет «Counter-Strike: Source» без последнего обновления, и работает на базе «Half-Life 2: Deathmatch».</p>
<p>Разработчиками-энтузиастами создаются различные модификации к игре, такие как наборы карт, разнообразное игровое содержимое (новое оружие, новые модели заложников, террористов или спецназа) либо полноценные тотальные конверсии с другими условиями игры и иной стилистикой.</p>
<li>Zombie Mod: популярная модификация с игровом процессом в стиле «люди против зомби». Начинается раунд, игроки закупаются оружием, и на протяжение 20-30 секунд каждый игрок должен найти для себя убежище, после чего забаррикадироваться различными предметами. По истечении 20-30 секунд один или несколько игроков становятся зомби (телепортируются в СТ или Т точки), в арсенале которых только нож, которыми они заражают СТ и Т, превращая их в зомби. Задача людей: убить всех зомби или продержаться до конца раунда, задача зомби: инфицировать всех людей. Типы карт: ZM (Zombie) и ZE (Zombie Escape). См. также статью в «Викиучебнике».</li>
<li>CSS: DeathMatch: эта модификация имеет мало отличий от других детмач-модов. Игроки появляются на игровой карте в случайном порядке, и перед тем, как начать игру им даётся на выбор любое оружие, которое будет постоянно появляться. Игра ведется на фраги (количество убитых врагов). Типы карт: DM (Deathmatch), FY (FightYard), AIM (Aim)</li>
<li>CSS: RPG: модификация, подобная моду WCS. За убийство противника игрок получает кредиты, которые можно потратить на улучшение одной из 20 или более (в зависимости от версии мода) способности. Типы карт: любые.</li>
<li>Gun Game: модификация с игровом процессом типа Deathmatch. Единственным отличием является то, что оружие меняется в зависимости от количества убийств. Типы карт: GG (Gun Game).</li>
<li>Hide`n`Seek: модификация, игровой процесс которой заключается в поиске скрытых предметов (подобно логическим играм): СТ ищут в арсенале пистолеты, а Т выбирают, под чего маскироваться (под любой тип мебели). Типы карт HS (HideSeek).</li>
<li>Surf mod: модификация, похожая на обычную игру, с условием, что здесь нужно скользить по крутым поверхностям и выполнять разные трюки. Типы карт: SURF.</li>
<li>VIP mod: в стандартном комплекте Counter-Strike: Source не было (в отличие от Counter Strike 1.6) типа карт, где СТ должен сопровождать важную персону до точки его спасения, а Т — его ликвидировать. Этот мод возвращает данную возможность. Типы карт: AS (Assasin).</li>
<li>WCS mod, или Warcraft: Source — аналогична модификации WC3FT для Counter-Strike 1.6. Здесь главную роль играет развитие навыков расы игрока. С повышением общего уровня у игрока открывается доступ к более сильным расам. У каждой расы есть свои уникальные способности, такие как гравитация, более быстрая скорость, невидимость, длинный прыжок, взрыв после смерти и другое. Также есть магазин (shopmenu), где можно купить дополнительные усиления для персонажа. Типы карт: WC3, WCS.</li>
<li>Jail Mod: симуляция тюрьмы. Террористы в начале раунда появляются за решётками камер. После их открытия они должны выполнять приказы спецназа один за другим, пока не останется единственный выживший, который имеет право на последнее желание (мод Hosties). При вводе в чат !lr террористу предоставляется список желаний, такие как: рулетка, прыжки в длину, бой на ножах, метание Desert Eagle и многое другое (в зависимости от версии мода). Также террористы имеют право устраивать бунт. Типы карт: BA, JAIL, JB (JailBreak).</li>
<li>Death Run: модификация, где СТ или T (в зависимости от карты) должны пройти по полосе смертельных препятствий. Здесь выбранный случайно игрок активирует ловушки. Если кому-то удастся избежать эти ловушки, игроку предстоит бой с тем, кто их активирует. Типы карт: Deathrun.</li>
<li>Soccer Mod: футбол. В основном мод для игры 5 на 5. Террористы и спецназ появляются на поле, в середине которого лежит мяч. Задача каждой команды — загнать его ударами ножа во вражеские ворота, после чего произойдёт смерть проигравшей команды, и начнётся новый раунд. В этом моде нет урона от ножа. Типы карт: soccer.</li>
<li>Trikz Mod: командный мод. На карте может играть только одна команда. Основная задача: пройти через всяческие препятствия на карте, используя прыжки на ослепляющих гранатах, стрейфы и распрыжку. Типы карт: trikz.</li>
<li>props: модификация игры созданная по типу Minecraft. В нём одна команда ставит «пропсы», для того чтобы дать себе преимущество, а другая пытается их убить. Вся суть в том, что атакующая команда должна находиться в укрытии обороняющихся («пропсы» должны окружать укрытие как минимум с трёх сторон).</li>
<p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Зарегистрироваться</li>
<li>
Создать страницу
</li>
<li>
История
</li>
<p>Минимальные
</p>
<p>Counter-Strike: Source*— обновление многопользовательского командного шутера от первого лица Counter-Strike (Контр-Страйк). Игра CS Source была выпущена в 2004 году изначально в комплекте с Half-Life 2, а уже позднее стала отдельным коробочным изданием. Обновление игры коснулось в основном детализации карт и персонажей, в угоду более мощным компьютерам и графическим картам.
</p>
<p>Как и в оригинальной версии игры, в Counter-Strike: Sourcе друг другу противостоят команда террористов и команда контр-террористов (спецназа) в серии раундов, миссий.
</p>
<p>Каждый раунд выигрывается посредством выполнения определённой миссии (такой как подрыв бомбы, спасение заложников или VIP), либо после уничтожения всех членов вражеской команды.
</p>
<p>Игровой процесс почти полностью аналогичен таковому в Counter-Strike. Большинство видов оружия также идентично оружию в Counter-Strike 1.6, за исключением щита, который был доступен спецназовцам, а теперь нет. В поздних версиях покупка патронов стала производиться автоматически в начале раунда и при покупке нового оружия. Патроны теперь бесплатные, сразу дается полный боезапас при покупке оружия, их также можно пополнить вернувшись на место покупки.
</p>
<p>Все классические карты из оригинальной игры были воссозданы заново, с учетом новых возможностей игрового движка: повышена детализация за счет более проработанных текстур и моделей. В первой версии игры число карт было невелико, но позже разработчики добавляли с помощью системы Steam новые карты, расширяя возможности игры.
</p>
Как вычистить пустые строки (это вообще не проблема) и ненужные
"Зарегистрироваться", "Создать страницу", "История", "Минимальные" (а вот это - проблема. Кроме как вручную - не вижу способа) - решать тебе...
1
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
21.08.2013, 19:16  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Как вычистить пустые строки (это вообще не проблема) и ненужные
"Зарегистрироваться", "Создать страницу", "История", "Минимальные" (а вот это - проблема. Кроме как вручную - не вижу способа) - решать тебе...
Просто отфильтровать текст по количеству слов. Например строки,в которых слов меньше 10 не сохранять.В моем коде это есть.

Добавлено через 10 минут
А почему вы использовали
C++
1
 L"([а-яА-Я]{4,})+-?[^\\\s.-]*"
а не просто
C++
1
"([а-яА-Я]{4,})+-?[^\\\s.-]*"
На это были причины?
Да,кстати,почему-то эта часть кода не отработала:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
RegExp1->InputString=RegExp->Match[0];
RegExp1->Expression="([а-яА-Я]{4,})+-?[^\\\s.-]*"; // У меня тут L"([а-яА-Я]{4,})+-?[^\\\s.-]*"
RegExp1->Compile();
if(RegExp1->Exec(RegExp1->InputString))
            {
                do
                {
                    k++;
                }
                while (RegExp1->ExecNext());
            }
            if(k>10)
            {
                List->Add(RegExp->Match[0]);
                k=0;
            }
            else
                k=0;
Остались не многословные строки.

Добавлено через 4 часа 30 минут
UI, если добавить в конце кода еще парсинг и проверку на многословность,то текст на выходе получается такой,который и нужен.
И наверное после этого есть вероятность того,что в текст пролезет ненужный тег?!
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
21.08.2013, 20:12
Цитата Сообщение от Gdasar Посмотреть сообщение
А почему вы использовали
C++
1
L"([а-яА-Я]{4,})+-?[^\\\s.-]*"
Потому что у меня Windows нерусифицированная, и при попытке работать без L вылетает предупреждение: "W8114 Character represented by universal-character-name <...> cannot be represented in the current ansi locale", и естественно, это выражение вообще не отрабатывает, в результате - пустой Memo
Цитата Сообщение от Gdasar Посмотреть сообщение
строки,в которых слов меньше 10 не сохранять.
А, вон оно чего у тебя...

В общем, я тут значительно сократил объем кода и вычислений, вот первый набросок, в комментах сказано, чего еще можно сделать, у меня просто времени не хватает...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
TStringList *sL;
int CountWords(String s)
{
    sL->Clear();
    sL->DelimitedText = s;
    // Алгоритм можно поменять. Скажем, проходить по всем словам, и смотреть,
    // сколько букв, если больше 4-х, то увеличиватиь счетчик, как ты и делал
    // у себя в коде...
    return sL->Count;
}
 
void __fastcall TForm1::Button30Click(TObject *Sender)
{
    TRegExpr* RegExp=new TRegExpr;
    TStringList* List=new TStringList;
 
    sL = new TStringList;
    sL->Delimiter = ' ';
    sL->StrictDelimiter = true;
 
    int count = 0;
    RegExp->InputString=Memo1->Lines->Text;
    RegExp->Expression=L"(<p>([0-9а-яА-Я]|<a |<b>)(.*?)</p>|<li>([a-zA-Z]|<i>|<b>)(.*?)</li>)";
    RegExp->ModifierM = true; // Многострочные выражения
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        do
        {
            List->Add(RegExp->Match[0]);
            count += 1;
        }
        while (RegExp->ExecNext());
    }
 
    RegExp->InputString=List->Text;
    // Эту строку можно почистить, strong например, здесь встречаться не может, насколько я вижу
    RegExp->Expression="(<a(.*?)\\\">)|(<img(.*?)/>)|</a>|<b>|</strong>|<strong>|</b>|<i>|</i>|(<span(.*?)</span>)|(<br(.*?)/>)|(<small>(.*?)</small>)|(<strong(.*?)\\\">)|(<sup id=\\\"(.*?)/sup>)";
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        List->Text=RegExp->Replace(RegExp->InputString,"",false);
    }
 
    RegExp->InputString=List->Text;
    List->Clear();
    RegExp->Expression="(<p>(.*?)</p>)|(<li>(.*?)</li>)";
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        do
        {
            String s = RegExp->Match[0];
            int cnt = CountWords(s);
            if(cnt > 10)
            {
               List->Add(s);
            }
        }
        while (RegExp->ExecNext());
    }
 
    Memo1->Lines->Text=List->Text;
    delete RegExp;
    delete List;
    delete sL;
}
Вот результат:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<p>Counter-Strike: Source (CS: Source, CS:S) — компьютерная игра, многопользовательский командный шутер от первого лица, разработанный компаниями Valve и Turtle Rock Studios; ремейк Counter-Strike, модификации 1999 года для игры Half-Life. Построенная на игровом движке Source, игра была выпущена в 2004 году изначально в комплекте с Half-Life 2, однако позже появились и отдельные её издания.</p>
<p>Как и в оригинальной версии игры, в Counter-Strike: Sourcе друг другу противостоят команда контртеррористов (CT, спецназа) и команда террористов (Т) в серии раундов.
Каждый раунд выигрывается посредством выполнения определённой миссии, такой как подрыв бомбы или спасение заложников либо после уничтожения всех членов вражеской команды.</p>
<p>Игровой процесс аналогичен таковому в Counter-Strike. Большинство видов оружия также идентично Counter-Strike 1.6 за исключением щита, который был доступен контртеррористам. В поздних версиях покупка патронов стала производиться автоматически в начале раунда и при покупке нового оружия, выдается полный боезапас (абсолютно бесплатно). Общая цена закупки стала ниже. Что и вызвало негодования у опытных геймеров классической CS. Патроны также можно пополнить, вернувшись на место покупки.</p>
<p>Все карты игры в начале названия содержат буквенный индекс, обозначающий их принадлежность к конкретному типу игры:</p>
<li>de (Demolition) — террористы должны подорвать C4 в специальных точках закладки, а спецназ — помешать им или обезвредить бомбу.</li>
<li>cs (Hostage Rescue) — спецназ должен вывести заложников к точке спасения, а террористы — помешать этому.</li>
<li>aim — карты, предназначенные для тренировки одного или нескольких видов оружия; игрок лишён возможности «закупки» выбранного оружия. Карты типов awp, scout, sg (ShotGun), he (HE Grenade), ka (Knife Arena) и других отличаются от aim только тем, что по началу карты легко определить, какой тип оружия можно использовать.</li>
<li>glass — карты, на которых игроки ходят по стеклянному бьющемуся полу, под котором находится пропасть. Цель — убить соперников из другой команды.</li>
<li>ba (Battle Arena) — особые карты-тюрьмы, на которых участники команды CT являются тюремными охранниками, а T — заключёнными. В начале игры у террористов есть только нож, для охранников же есть оружейные с большим выбором оружия. Процесс игры такой: охранники выпускают террористов из камер тюрьмы, а далее приказывают им куда идти или что делать. При этом убивать каждого террориста можно только после того как он нанесёт любой урон CT, либо не выполнит приказ. Таким образом цель CT — уничтожить всех непослушных заключённых, цель T — поднять бунт и убить всех охранников</li>
<li>fy (Fight Yard) — обычно небольшие карты с отсутствием места для закладки бомбы и заложников. Цель — уничтожить силы противника. Особенности карт такого типа в том что на них нельзя покупать оружие, броню и т.д, так как все они лежат в определённых точках.</li>
<li>dm (DeathMatch) — большие карты, созданные специально для игры на серверах с модом DeathMatch.</li>
<li>surf (Surfing) — карты с наличием специальных пандусов, по которым игрок скользит до нужной ему точки.</li>
<li>zm (Zombie Mod) — карты, рассчитанные на большое количество игроков, с огромным количеством различных укрытий для защиты расы людей. Используются только на специальных серверах с установленным модом Zombie Mod.</li>
<li>ze (Zombie Escape) — аналог zm, где необходимо не просто спрятаться, а сбежать в безопасное место и уничтожить всех зомби ядерной ракетой.</li>
<li>as (Assassination) — карты, на которых задача спецназа вывести в точку эвакуации VIP персону, а террористов — помешать эвакуации или просто убить VIP’a.</li>
<li>props или prop — игроки делятся на две команды: одна строит себе убежище, из разных деталей, коробок, столбов, чтобы укрыться от противников; обязательно нужно оставить проход в убежище. Вторая команда выжидает нападения. Через 3 минуты после начала раунда противники начинают атаковать своих соперников. В конце игры команды меняются местами.</li>
<li>dr или deathrun (Death Run) — игроки делятся на две команды: команда спецназа бежит через полосу препятствий, на которой расположены разнообразные ловушки: вылетающие из стен шипы, проваливающийся пол с кислотой, двигающийся лазер и прочее. Террористы же должны следить за продвижением команды спецназа и вовремя активировать ловушки, тем самым убивая противников. В конце полосы испытаний находится в основном оружие, взяв которое прошедшие полосу смогут убить тех, кто активировал ловушки.</li>
<li>soccer — мод, в котором игроки играют в футбол. В случае попадания в ворота CT или T команда умирает. Удары по мячу осуществляются ножом, поэтому его можно считать дополнением к ka (отсюда и начало названия карт — ka_soccer)</li>
<li>gg (GunGame) — некое подобие DeathMatch, в котором игрок, начиная с самого слабого оружия — пистолета Glock — и в дальнейшем получая за убийство оппонентов более мощное, должен пройти всё оружие, представленное в CS:S, быстрее всех.</li>
<li>mg (Mini Game) — карты, включающие в себя мини-игры различной направленности.</li>
<li>xc (Xtrime Climb) — карты, цель в которых — пройти до конца карты, для чего необходимо идти ползком, прыгать, съезжать и др. Эти карты похожи на Bh, но они предполагают прохождение не по ровным участкам, а всё время спускаясь и поднимаясь. В xc, как и в bh, нет разницы играть за T или CT. Обычно одна из команд укомплектована.</li>
<li>bh/bhop (bunny hop) — карты, при прохождении которых нужно использовать особую технику прыжков. Обычно надо прыгать по проваливающимся блокам. Как и в xc, длинные и сложные карты предполагают наличие специального мода, который позволяет прописывать команды !menu и !cp,"!"scout", при помощи которых можно сохраняться.</li>
<li>hns (Hide 'n' Seek) — «прятки»; игроки делятся на две команды: команда террористов в начале раунда без права «закупки» оружия превращается в различные предметы и должна за определенное время спрятаться, после чего команда спецназа начинает искать противоположную команду; при обнаружении террориста игрок из команды спецназа должен убить противника, за каждый выстрел по которому у того отнимаются очки жизни. Если команда спецназа за время раунда обнаружит и убьёт всех террористов, команда выиграет, в противном же случае побеждают террористы.</li>
<p>Все классические карты из оригинальной игры были воссозданы заново с учетом новых возможностей игрового движка: повышена детализация за счёт более проработанных текстур и моделей. В первой версии игры число карт было невелико, но позже разработчики добавили с помощью системы Steam новые карты, расширяя возможности игры. В игре используются ремейки старых карт, а также несколько новых, созданных разработчиками специально для Source-версии. Существует 18 стандартных карт:</p>
<p>Дополнительные карты также производятся поклонниками игры. За период существования игры было создано более 28000 пользовательских карт. Существуют и глобальные модификации на основе Counter-Strike: Sourcе, изменяющие стилистику игры и правила боя.</p>
<p>По сравнению с оригинальным Counter-Strike оружие в игре не перетерпело значительных изменений (более подробное описание оружия см. Оружие в CS).</p>
<p>В этой игре для всего арсенала игрока предоставлено 5 слотов: первый — для основного оружия (то есть для дробовиков, пистолетов-пулемётов, штурмовых и снайперских винтовок и пулемёта); второй — для пистолета; третий — для ножа; четвертый — для гранат (единственный слот, который может вмещать в себя несколько видов оружия); пятый — для бомбы (её могут носить только террористы на картах типа Bomb/Defuse). Существуют следующие типы оружия:</p>
<p>Также бронежилет со шлемом и набор сапёра, который доступен игрокам за спецназ.</p>
<p>Основной идеей разработчиков был перенос культовой Counter-Strike на новый игровой движок, не задевая игровую механику оригинала. В сущности, CS:S имеет минимальные отличия в игровом плане от своего предшественника. Были переработаны хитбоксы, улучшен сетевой код и исправлены старые баги. Помимо этого, было увеличено вдвое (до 64) максимально допустимое количество игроков на сервере.</p>
<p>В игре используются более чёткие текстуры, средний размер которых 512?512 пикселов (128?128 в оригинале), а также более проработанные трёхмерные модели. Широко используются возможности движка, связанные с зеркальными отражениями — у оружия, снабжённого оптическим прицелом, можно видеть окружающую обстановку (но не модели других игроков) сзади игрока на линзе прицела, когда оно находится в не приближённом состоянии.</p>
<p>Звуковые эффекты теперь соответствуют акустическим условиям, введена поддержка колонок 5.1 и 7.1. Новые возможности движка помогли сделать карты более детализированными: появились валяющиеся на земле бутылки, пакеты, шины на которые также действует физическая модель. Физика полёта гранат, взрыв, а также эффект от их поражения изменены в сторону большей реалистичности.</p>
<p>Компания Valve с момента выпуска игры периодически выпускает обновления посредством системы Steam. Как правило, они представляют собой небольшие правки недоработок, но время от времени выходят и крупные обновления.</p>
<p>23 июня 2010 года вышло глобальное обновление, переводящее игру на более новую версию движка Source, добавляющее поддержку Mac OS X, т. н. «системы превосходства», новые экраны статистики и общей информации, новое отображение окончания раунда с интересными фактами об игроке, новую кинематографическую камеру смерти и 145 достижений.</p>
<p>Некоторым игрокам не понравилось обновление, в результате чего был учреждён сбор петиций для возврата игры к предыдущему состоянию. В числе претензий — «низкая частота смены кадров» и «ухудшение физики». Группой разработчиков-любителей была создана модификация «Counter-Strike: Source Classic», которая представляет «Counter-Strike: Source» без последнего обновления, и работает на базе «Half-Life 2: Deathmatch».</p>
<p>На данный момент существует 147 достижений для Counter-Strike: Source. Они подразделены на шесть типов:</p>
<p>Разработчиками-энтузиастами создаются различные модификации к игре, такие как наборы карт, разнообразное игровое содержимое (новое оружие, новые модели заложников, террористов или спецназа) либо полноценные тотальные конверсии с другими условиями игры и иной стилистикой.</p>
<li>Zombie Mod: популярная модификация с игровом процессом в стиле «люди против зомби». Начинается раунд, игроки закупаются оружием, и на протяжение 20-30 секунд каждый игрок должен найти для себя убежище, после чего забаррикадироваться различными предметами. По истечении 20-30 секунд один или несколько игроков становятся зомби (телепортируются в СТ или Т точки), в арсенале которых только нож, которыми они заражают СТ и Т, превращая их в зомби. Задача людей: убить всех зомби или продержаться до конца раунда, задача зомби: инфицировать всех людей. Типы карт: ZM (Zombie) и ZE (Zombie Escape). См. также статью в «Викиучебнике».</li>
<li>CSS: DeathMatch: эта модификация имеет мало отличий от других детмач-модов. Игроки появляются на игровой карте в случайном порядке, и перед тем, как начать игру им даётся на выбор любое оружие, которое будет постоянно появляться. Игра ведется на фраги (количество убитых врагов). Типы карт: DM (Deathmatch), FY (FightYard), AIM (Aim)</li>
<li>CSS: RPG: модификация, подобная моду WCS. За убийство противника игрок получает кредиты, которые можно потратить на улучшение одной из 20 или более (в зависимости от версии мода) способности. Типы карт: любые.</li>
<li>Hide`n`Seek: модификация, игровой процесс которой заключается в поиске скрытых предметов (подобно логическим играм): СТ ищут в арсенале пистолеты, а Т выбирают, под чего маскироваться (под любой тип мебели). Типы карт HS (HideSeek).</li>
<li>Surf mod: модификация, похожая на обычную игру, с условием, что здесь нужно скользить по крутым поверхностям и выполнять разные трюки. Типы карт: SURF.</li>
<li>VIP mod: в стандартном комплекте Counter-Strike: Source не было (в отличие от Counter Strike 1.6) типа карт, где СТ должен сопровождать важную персону до точки его спасения, а Т — его ликвидировать. Этот мод возвращает данную возможность. Типы карт: AS (Assasin).</li>
<li>WCS mod, или Warcraft: Source — аналогична модификации WC3FT для Counter-Strike 1.6. Здесь главную роль играет развитие навыков расы игрока. С повышением общего уровня у игрока открывается доступ к более сильным расам. У каждой расы есть свои уникальные способности, такие как гравитация, более быстрая скорость, невидимость, длинный прыжок, взрыв после смерти и другое. Также есть магазин (shopmenu), где можно купить дополнительные усиления для персонажа. Типы карт: WC3, WCS.</li>
<li>Jail Mod: симуляция тюрьмы. Террористы в начале раунда появляются за решётками камер. После их открытия они должны выполнять приказы спецназа один за другим, пока не останется единственный выживший, который имеет право на последнее желание (мод Hosties). При вводе в чат !lr террористу предоставляется список желаний, такие как: рулетка, прыжки в длину, бой на ножах, метание Desert Eagle и многое другое (в зависимости от версии мода). Также террористы имеют право устраивать бунт. Типы карт: BA, JAIL, JB (JailBreak).</li>
<li>Death Run: модификация, где СТ или T (в зависимости от карты) должны пройти по полосе смертельных препятствий. Здесь выбранный случайно игрок активирует ловушки. Если кому-то удастся избежать эти ловушки, игроку предстоит бой с тем, кто их активирует. Типы карт: Deathrun.</li>
<li>Soccer Mod: футбол. В основном мод для игры 5 на 5. Террористы и спецназ появляются на поле, в середине которого лежит мяч. Задача каждой команды — загнать его ударами ножа во вражеские ворота, после чего произойдёт смерть проигравшей команды, и начнётся новый раунд. В этом моде нет урона от ножа. Типы карт: soccer.</li>
<li>Trikz Mod: командный мод. На карте может играть только одна команда. Основная задача: пройти через всяческие препятствия на карте, используя прыжки на ослепляющих гранатах, стрейфы и распрыжку. Типы карт: trikz.</li>
<li>props: модификация игры созданная по типу Minecraft. В нём одна команда ставит «пропсы», для того чтобы дать себе преимущество, а другая пытается их убить. Вся суть в том, что атакующая команда должна находиться в укрытии обороняющихся («пропсы» должны окружать укрытие как минимум с трёх сторон).</li>
<p>Услышал прикольную музыку на сервера в CS:S, а в папке &quot;sounds&quot; ее нету :(</p>
<p>Counter-Strike: Source*— обновление многопользовательского командного шутера от первого лица Counter-Strike (Контр-Страйк). Игра CS Source была выпущена в 2004 году изначально в комплекте с Half-Life 2, а уже позднее стала отдельным коробочным изданием. Обновление игры коснулось в основном детализации карт и персонажей, в угоду более мощным компьютерам и графическим картам.
</p>
<p>Как и в оригинальной версии игры, в Counter-Strike: Sourcе друг другу противостоят команда террористов и команда контр-террористов (спецназа) в серии раундов, миссий.
</p>
<p>Каждый раунд выигрывается посредством выполнения определённой миссии (такой как подрыв бомбы, спасение заложников или VIP), либо после уничтожения всех членов вражеской команды.
</p>
<p>Игровой процесс почти полностью аналогичен таковому в Counter-Strike. Большинство видов оружия также идентично оружию в Counter-Strike 1.6, за исключением щита, который был доступен спецназовцам, а теперь нет. В поздних версиях покупка патронов стала производиться автоматически в начале раунда и при покупке нового оружия. Патроны теперь бесплатные, сразу дается полный боезапас при покупке оружия, их также можно пополнить вернувшись на место покупки.
</p>
<p>Все классические карты из оригинальной игры были воссозданы заново, с учетом новых возможностей игрового движка: повышена детализация за счет более проработанных текстур и моделей. В первой версии игры число карт было невелико, но позже разработчики добавляли с помощью системы Steam новые карты, расширяя возможности игры.
</p>
<p>На данный момент существует 147 достижений для Counter-Strike: Source. Достижения подразделены на шесть типов:
</p>
<p>Дата выхода: 5 сентября 2001 года. Изменения/дополнения: — Добавлена система HLTV. Неограниченное…</p>
Дорабатывай...
1
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
22.08.2013, 19:08  [ТС]
UI, маленькие непонятки вот с этой регуляркой:
C++
1
(<p>([0-9а-яА-Я]|<a |<b>)(.*?)</p>|<li>([a-zA-Z]|<i>|<b>)(.*?)</li>)
Она найдет мне все теги p между которыми встречаются цифры,русские строчные и заглавные буквы,теги <a и <b>,а также другой текст,лежащий между ними?
С тегом li ситуация такая же?!
Просто мне попался такой вот текст:
HTML5
1
2
<li> Global Offensive - 21 августа <a href="/2012" title="2012" class="mw-redirect">2012</a>. В ходе разработки по причине анальной несовместимости выпилена возможность играть на разных платформах, поэтому имеем то, что имеем — абсолютно те же яйца с точки зрения геймплея, но с <a href="/%D0%A1%D0%B2%D0%B8%D1%81%D1%82%D0%B5%D0%BB%D0%BA%D0%B8_%D0%B8_%D0%BF%D0%B5%D1%80%D0%B4%D0%B5%D0%BB%D0%BA%D0%B8" title="Свистелки и перделки">обновленным движком, графикой, слегка переделанными картами, оружием и нормальным управлением для консолей</a>. Игра стала <a href="/%D0%9B%D0%9F%D0%9F" title="ЛПП" class="mw-redirect">значительно упрощенной</a> и приближенной, наконец, к <a href="/%D0%9D%D1%83%D0%B1" title="Нуб">простым</a> игрокам. Из значимых - можно играть в соревнования 10 на 10, запилена тренировка. Одна часть школоты обсырает баланс, геймплей, хотя видели игру только на скринах и видео, ибо если полюбившийся им Соурс летал на их ведре, то новый движок уже <a href="/%D0%9D%D0%B8%D1%89%D0%B5%D0%B1%D1%80%D0%BE%D0%B4%D1%8B" title="Нищеброды" class="mw-redirect">не тянет</a>. Другая забила на игру и вернулись в свои каллдуты и баттлфилды. Valve срубила бабла и начала полировать игру на манер <a href="/TF2" title="TF2" class="mw-redirect">TF2</a>, всем похуй.
</li>
который по видимому не подходит под данную регулярку.
Попытался доработать ее вот таким образом,но ничего не вышло.
C++
1
<li>([a-zA--яА-Я]|<i>|<b>|<a |<b>)(.*?)</li>
Ну в общем не один тег li не попадает под нее.
Поправьте,если я не так понял Ваше рег.выражение.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
22.08.2013, 19:58
Цитата Сообщение от Gdasar Посмотреть сообщение
Она найдет мне все теги p между которыми встречаются цифры,русские строчные и заглавные буквы,теги <a и <b>,а также другой текст,лежащий между ними?
Она найдет тебе все теги <p>, текст внутри которых начинается с русской буквы, цифры или открывающего тега <a или <b>
Цитата Сообщение от Gdasar Посмотреть сообщение
Просто мне попался такой вот текст:
Да, этот текст не подпадает под такую регулярку. Там первым идет пробельный символ, а не одна их перечисленных выше комбинаций. Добавь еще пробельный символ:
Code
1
<li>([\sa-zA-Zа-яА-Я]|<i>|<b>|<a |<b>)(.*?)</li>
, по крайней мере NotePad++ с таким регэкспом прекрасно находит все три вхождения, и с пробелом, и без него:
Миниатюры
RegExp - найти ошибку в коде  
1
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
22.08.2013, 20:40  [ТС]
UI, если в notepad не ставить галочку напротив и новые строки,то он ничего не находит,в противном же случае находит все.
А как в RegExp включить данную опцию? Спрашиваю так как программа не находит этой строчки.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
22.08.2013, 20:52
Цитата Сообщение от UI Посмотреть сообщение
C++
1
RegExp->ModifierM = true; // Будет убивать многострочные скрипты
Внимательнее будь...

Кстати, когда ты этот регэксп задал, продублировать обратный слэш не забыл? Потому что у меня вот так:
C++
1
2
    RegExp->Expression=L"(<p>([0-9а-яА-Я]|<a |<b>)(.*?)</p>|<li>([\\sa-zA-Z]|<i>|<b>)(.*?)</li>)";
    RegExp->ModifierM = true; // Многострочные выражения
прекрасно находит все три вышеупомянутых выражения, один с пробелом вначале, два других - без...
0
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
22.08.2013, 22:20  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
продублировать обратный слэш не забыл?
каюсь,забыл Теперь все работает
Только у меня не \\s а \\\s.

Добавлено через 31 минуту
Есть ли разница,ставить 2 или 1 дополнительных слешей?

Добавлено через 9 минут
И вот еще,Ваш код считает количество букв,как русских так и английских?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
22.08.2013, 22:33
Цитата Сообщение от Gdasar Посмотреть сообщение
Есть ли разница,ставить 2 или 1 дополнительных слешей?
Дополнительные вообще не надо ставить. Надо просто экранировать те слеши, которые уже есть в строке.

Нет, мой код количество букв вообще не считает. Но если нужно - можно изобрести регулярку, которая будет в завершающей стадии парсинга (в моем коде из сообщения №30 это строки 47-61) воспринимать только те слова, которые состоят только из символов кириллицы, содержат только больше четырех букв, и таких слов внутри тегов, скажем, больше 10. Я вроде даже начинал делать такую регулярку, но потом бросил. Найду - доделаю Тогда весь код между строками 53-58 будет заменен всего одной строкой: добавлением найденного регуляркой соответствия в контейнер...
1
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
22.08.2013, 23:11  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Тогда весь код между строками 53-58 будет заменен всего одной строкой: добавлением найденного регуляркой соответствия в контейнер...
Так это я уже реализовывал Но,как это реализовать одной строкой не знаю
Или это можно сделать при помощи одного экземпляра регэксп?

Добавлено через 28 минут
Или регулярку с поиском текста в тегах p и li совместить с рег.выражением по фильтрации? Я в правильном направлении?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
23.08.2013, 00:36
Цитата Сообщение от Gdasar Посмотреть сообщение
Я в правильном направлении?
Как говорится, направление - правильное, но поезд не тот

Что-то не получилось у меня написать такой регэксп, как хотелось. Ну да и фиг с ним. Вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Здесь вычищаются все лишние теги из <p> / <li>, и остается только выбрать те из них,
// которые содержат более 10 русских слов длиной по 4 и больше символа.
 
// Вот так я это переписал:
    TRegExpr* innerRe = new TRegExpr; // Это второй регэксп, создаем его сразу ...
    innerRe->ModifierM = true;
    innerRe->Expression = L"(\\s*[а-яА-Я]{4,})"; // Задаем ему выражение ...
    innerRe->Compile(); // ... и компилируем его, чтобы потом, в цикле, не терять времени
 
    TStringList* sL = new TStringList; // также создаем доп. StringList, чуть ниже увидишь, для чего
 
    // Берем текст, содержащий вычищенные <p> и <li> теги
    RegExp->InputString=Memo2->Lines->Text;
    // Еще раз проходим во всем тегам
    RegExp->Expression=L"(<p>([\\s0-9а-яА-Я]|<a |<b>)(.*?)</p>|<li>([\\sa-zA-Z]|<i>|<b>)(.*?)</li>)";
    RegExp->ModifierM = true;
    RegExp->Compile();
    if(RegExp->Exec(RegExp->InputString))
    {
        do
        {
            String s = RegExp->Match[1];
            if(innerRe->Exec(s))
            {
                sL->Clear();
                innerRe->Split(innerRe->InputString, sL); // И делаем вот такой трюк
                if(sL->Count > 10) // Строка будет разбита на слова по регулярке
                {
                    Memo6->Lines->Add(s); // Больше 10 слов - вносим в контейнер
                }
            }
        }
        while (RegExp->ExecNext());
    }
    delete RegExp;
    delete innerRe;
    delete sL;
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.08.2013, 18:18
К стати для парсинга html есть еще библиотека libxml2, с ней конечно не все так понятно, но все же альтернатива.

Добавлено через 17 минут
P.S.

C++
1
(<p>([\\s0-9а-яА-Я]|<a |<b>)(.*?)</p>|<li>([\\sa-zA-Z]|<i>|<b>)(.*?)</li>)
Можно попробовать упросить до

C++
1
<(p|li)>([\\s0-9а-яА-Я]|<a |<b>)(.*?)</\1>
1
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
23.08.2013, 18:44  [ТС]
Avazart, а что вот это \1 значит?
Гуглил,но не нашел значения.
Или это (p|li),только записанное иначе?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.08.2013, 18:44
Помогаю со студенческими работами здесь

Программа с RegExp выдает ошибку
Использую следующую схему в ms access: Dim re As New RegExp re.Pattern = &quot;(?&lt;=)({5})(?!)&quot; For Each m In re.Execute(&quot;101000,...

Найти ошибку в коде
Здравствуйте! В общем вот код: &lt;?php /* Принимаем данные из формы */ if(get_magic_quotes_gpc()==1) { ...

Найти ошибку в коде
пожалуйста найдите ошибку((( #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #define FALSE 0 ...

Найти ошибку в коде
procedure TForm1.Button1Click(Sender:TObject); var xn, xk, x, s, h, y, al, del, p, f: extended; n, i: integer; begin n...

Найти ошибку в коде
нужно найти все значения с по формуле ck=a(k)+x*s(k-1) c0=a0 с помощью рекурсии. У меня программа работает правильно(наверно) но как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru