0 / 0 / 3
Регистрация: 01.06.2012
Сообщений: 141
1

Удаление части текста

03.11.2015, 22:27. Показов 2286. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Имееться допустим тхт файл, помогите любым средством, удалить часть текста, по найденый параметрам.

Допустим текст:

{
"origin" "272 1776 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "16 1776 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-128 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "16 1776 -36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "-128 1920 36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "-256 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-384 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-528 -1264 0"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "-400 -1424 -4"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}




Задача! Удалить кусок текста, где встречается слово или слова

info_player_start или info_player_deathmatch

если нашли то удалить целый фрагмент кода
{
"origin" "-400 -1424 -4"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}

короче текст, тот что между знаками {}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2015, 22:27
Ответы с готовыми решениями:

Удаление части текста
Здравствуйте! Имеется текстовый файл следующего содержания: <Раздел Первый> выпыпрыр аврварвр...

Удаление и копирование части текста до слова
1) Как можно удалить часть текста, до определенного слова? До первого вхождения? До последнего...

Удаление части содержимого WebBrowser
Здравствуйте уважаемые! Подскажите, возможно из компонента WebBrowser убрать то, что я выделил...

Выделение части текста в СтрингГрид
Уважаемы знатоки, подскажите, как в StringGrid выделить часть строки в таблице. Например...

23
144 / 129 / 46
Регистрация: 12.08.2015
Сообщений: 1,203
Записей в блоге: 1
04.11.2015, 05:45 2
Кинь Memo, загружай туда текст, и выполняй код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var i1:Integer;
var i2:Integer;
begin
for i1 := 0 to Memo1.Lines.Count-1 do
begin
if Memo1.Lines[i1] = 'info_player_start' then
begin
i2 := i1+1;
while Memo1.Lines[i2]<>'}' do
begin
Memo1.Lines.Delete(i2);
end;
end;
if Memo1.Lines[i1] = 'info_player_deathmatch' then
begin
i2 := i1+1;
while Memo1.Lines[i2]<>'}' do
begin
Memo1.Lines.Delete(i2);
i2 := i2+1;
end;
end;
end;
end;
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,120
04.11.2015, 06:21 3
RostorLuxor, var дважды?
0
144 / 129 / 46
Регистрация: 12.08.2015
Сообщений: 1,203
Записей в блоге: 1
04.11.2015, 07:10 4
Sorry, предыдущий код был ошибочным. Вроде исправил:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var i1:Integer;
begin
for i1 := 0 to Memo1.Lines.Count-1 do
begin
if Memo1.Lines[i1] = 'info_player_start' then
begin
Memo1.Lines.Delete(i1-1);
Memo1.Lines.Delete(i1-1);
Memo1.Lines.Delete(i1-1);
Memo1.Lines.Delete(i1);
Memo1.Lines.Delete(i1+1);
end;
if Memo1.Lines[i1] = 'info_player_deathmatch' then
begin
Memo1.Lines.Delete(i1-1);
Memo1.Lines.Delete(i1-1);
Memo1.Lines.Delete(i1-1);
Memo1.Lines.Delete(i1);
Memo1.Lines.Delete(i1+1);
end;
end;
end;
0
0 / 0 / 3
Регистрация: 01.06.2012
Сообщений: 141
05.11.2015, 00:06  [ТС] 5
нет. Код ничего не удалил. текст остаётся без изминений
0
3217 / 2360 / 540
Регистрация: 11.09.2009
Сообщений: 8,597
05.11.2015, 00:25 6
Цитата Сообщение от Shur1k_ua Посмотреть сообщение
Код ничего не удалил.
Конечно. И не должен.
Если бы вы этот "код" прочитали, то заметили бы, что ищется строка 'info_player_start', а у вас в тексте таких строк нет, а есть совсем другие - "classname" "info_player_start".
0
northener
05.11.2015, 01:14
  #7

Не по теме:

Цитата Сообщение от droider Посмотреть сообщение
RostorLuxor, var дважды?
Да хоть трижды, четырежды и т.д.

0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
05.11.2015, 07:30 8
RostorLuxor, я чутка отредактирую твой код..
Delphi
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
var 
  i1:Integer;
  p:integer;
begin
  for i1 := 0 to Memo1.Lines.Count-1 do
    begin
      p:=0;
      p:=pos('info_player_start',Memo1.Lines[i1])
      if  p<>0 then
        begin
          Memo1.Lines.Delete(i1-3);
          Memo1.Lines.Delete(i1-2);
          Memo1.Lines.Delete(i1-1);
          Memo1.Lines.Delete(i1);
          Memo1.Lines.Delete(i1+1);
        end;
      p:=0;
      p:=pos('info_player_deathmatch',Memo1.Lines[i1])
      if  p<>0 then
        begin
          Memo1.Lines.Delete(i1-3);
          Memo1.Lines.Delete(i1-2);
          Memo1.Lines.Delete(i1-1);
          Memo1.Lines.Delete(i1);
          Memo1.Lines.Delete(i1+1);
        end;
    end;
end;
0
0 / 0 / 3
Регистрация: 01.06.2012
Сообщений: 141
06.11.2015, 00:20  [ТС] 9
что то не помогает.. Удаляет совсем не то, что нада


{
"origin" "-384 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
"origin" "-528 -1264 0"
"classname" "info_player_deathmatch"
{
"angles" "0 0 0"
}
"origin" "-272 -1424 -4"
"classname" "info_player_deathmatch"
{
"angles" "0 0 0"
}
"origin" "144 -1280 -36"
"classname" "info_player_deathmatch"
{
"angles" "0 0 0"
}
"origin" "368 -1280 -36"
"classname" "info_player_deathmatch"
{
"angles" "0 0 0"
}
"origin" "624 -1280 -36"
"classname" "info_player_deathmatch"
{
"angles" "0 0 0"
}
"origin" "-491 -1360 -34"
"classname" "info_player_deathmatch"
{
"angles" "0 89 0"
}
"origin" "198 -1207 -82"
"classname" "info_player_deathmatch"
{
"angles" "0 89 0"
}
"origin" "588 -1208 -82"
"classname" "info_player_deathmatch"
{
"angles" "0 91 0"
}







"origin" "640 1920 36"
"classname" "info_player_start"
{
"angles" "0 270 0"
}
"origin" "384 1920 36"
"classname" "info_player_start"
{
"angles" "0 270 0"
}
"origin" "144 1776 -36"
"classname" "info_player_start"
{
"angles" "0 270 0"
}
"origin" "-128 1920 36"
"classname" "info_player_start"
{
"angles" "0 270 0"
}
"origin" "-384 1920 36"
"classname" "info_player_start"
{
"angles" "0 270 0"
}
"origin" "781 1818 -18"
"classname" "info_player_start"
{
"angles" "0 260 0"
}
"origin" "570 1845 -18"
"classname" "info_player_start"
{
"angles" "0 269 0"
}
"origin" "96 1912 -82"
"classname" "info_player_start"
{
"angles" "0 274 0"
}

{
"origin" "752 -1408 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
06.11.2015, 00:41 10
Через пол часа буду дома напишу...
Напиши откуда ты получаешь этот текст..
Сам вствляешь или получаешь с сайта?
0
Hadros
06.11.2015, 00:47
  #11

Не по теме:


похоже на редактор карт из Quake2

0
0 / 0 / 3
Регистрация: 01.06.2012
Сообщений: 141
06.11.2015, 00:53  [ТС] 12
текст якобы находится в тхт файле, да это респавны для карт в кс 1,6.

Полный текст почти такой:

Кликните здесь для просмотра всего текста
{
"wad" "\sierra\half-life\valve\halflife.wad;\sierra\half-life\cstrike\cs_dust.wad;"
"mapversion" "220"
"classname" "worldspawn"
"MaxRange" "8000"
"skyname" "des"
"classname" "worldspawn"
}
{
"origin" "768 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "640 1936 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "512 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "384 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "144 1776 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "272 1776 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "16 1776 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-128 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-256 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-384 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-528 -1264 0"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "-400 -1424 -4"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "-272 -1424 -4"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "-32 -1424 -36"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "144 -1280 -36"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "272 -1408 -36"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "368 -1280 -36"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "496 -1408 -36"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "624 -1280 -36"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "752 -1408 -36"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "-491 -1360 -34"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}
{
"origin" "-92 -1280 -50"
"angles" "0 89 0"
"classname" "info_player_deathmatch"
}
{
"origin" "198 -1207 -82"
"angles" "0 90 0"
"classname" "info_player_deathmatch"
}
{
"origin" "474 -1183 -82"
"angles" "0 89 0"
"classname" "info_player_deathmatch"
}
{
"origin" "588 -1208 -82"
"angles" "0 86 0"
"classname" "info_player_deathmatch"
}
{
"origin" "807 -1262 -82"
"angles" "0 91 0"
"classname" "info_player_deathmatch"
}







{
"origin" "640 1920 36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "512 1920 36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "384 1920 36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "272 1776 -36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "144 1776 -36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "16 1776 -36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "-128 1920 36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "-256 1920 36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "-384 1920 36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "768 1920 36"
"angles" "0 270 0"
"classname" "info_player_start"
}
{
"origin" "781 1818 -18"
"angles" "0 267 0"
"classname" "info_player_start"
}
{
"origin" "686 1841 -18"
"angles" "0 260 0"
"classname" "info_player_start"
}
{
"origin" "570 1845 -18"
"angles" "0 266 0"
"classname" "info_player_start"
}
{
"origin" "477 1818 -18"
"angles" "0 269 0"
"classname" "info_player_start"
}
{
"origin" "96 1912 -82"
"angles" "0 268 0"
"classname" "info_player_start"
}
{
"origin" "-530 1886 -18"
"angles" "0 274 0"
"classname" "info_player_start"
}

{
"origin" "752 -1408 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "624 -1280 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "496 -1408 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "368 -1280 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "272 -1408 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "144 -1280 -100"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-32 -1424 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-272 -1424 -72"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-400 -1424 -72"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-528 -1264 -64"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "896 -1552 272"
"angle" "43"
"pitch" "-60"
"_light" "255 255 128 70"
"angles" "0 114 0"
"classname" "light_environment"
}
{
"model" "*1"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*2"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*3"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*4"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*5"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*6"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*7"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*8"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*9"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*10"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*11"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*12"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*13"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*14"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*15"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*16"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*17"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*18"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*19"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*20"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*21"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*22"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*23"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*24"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*25"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"model" "*26"
"rendercolor" "0 0 0"
"classname" "func_wall"
}
{
"origin" "-304 -1460 72"
"deceleration" "500"
"acceleration" "500"
"wait" "10"
"target" "cam1"
"classname" "trigger_camera"
}
{
"origin" "-224 -1268 24"
"targetname" "cam1"
"classname" "info_target"
}
{
"origin" "724 1752 56"
"targetname" "cam2"
"classname" "info_target"
}
{
"origin" "804 1944 104"
"deceleration" "500"
"acceleration" "500"
"wait" "10"
"target" "cam2"
"classname" "trigger_camera"
}



Суть повырезать сами эти точки респавнов.

Добавлено через 41 секунду
Лежат в папке с картой, через мемо загружаю и в нём и редачю
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
06.11.2015, 01:53 13
вобщем понятно почему она так удаляет

Добавлено через 13 секунд
решение простое

Добавлено через 42 минуты
Delphi
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
procedure TForm1.btn1Click(Sender: TObject);
var
  i1:Integer;
  p,pp:integer;
  s,subs,temp:string;
begin
  s:=mmo1.Text;
  while Length(s)>5 do
    begin
      p:=Pos('{',s);
      pp:=Pos('}',s);
      Insert(Copy(s,p,pp),temp,Length(temp));
      Delete(s,1,pp);
 
      p:=0;pp:=0;
      p:=Pos('deathmatch',temp);
      pp:=Pos('start',temp);
        if (p<>0)or(pp<>0) then
          begin
            temp:='';
          end
            else
              begin
                subs:=subs+temp;
                temp:='';
              end;
    end;
  ShowMessage(subs);
end;
Добавлено через 1 минуту
в конечном результате, отпарсеный текст записан в строке subs
1
36 / 36 / 17
Регистрация: 12.04.2012
Сообщений: 169
Записей в блоге: 1
06.11.2015, 02:04 14
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// на форме Memo1, Edit1, Button1
// после запуска в edit1 надо написать руками строку на удаление, например такую:
// "classname" "info_player_deathmatch"
// в memo1 надо поместить любым удобным способом содержимое файла
procedure TForm1.Button1Click(Sender: TObject);
var s:int64;
begin
  s:=1;
  while s<memo1.Lines.Count-1 do if memo1.Lines[s]=edit1.Text
     then begin
          memo1.Lines.Delete(s-4);
          memo1.Lines.Delete(s-4);
          memo1.Lines.Delete(s-4);
          memo1.Lines.Delete(s-4);
          memo1.Lines.Delete(s-4);
          memo1.Lines.Delete(s-4);
        end
      else inc(s);
end;
Добавлено через 10 минут
один memo1.Lines.Delete(s-4) у меня лишний, должно быть пять
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
06.11.2015, 02:21 15
Цитата Сообщение от Hadros Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// на форме Memo1, Edit1, Button1
// после запуска в edit1 надо написать руками строку на удаление, например такую:
// "classname" "info_player_deathmatch"
// в memo1 надо поместить любым удобным способом содержимое файла
procedure TForm1.Button1Click(Sender: TObject);
var s:int64;
begin
 s:=1;
 while s<memo1.Lines.Count-1 do if memo1.Lines[s]=edit1.Text
 then begin
 memo1.Lines.Delete(s-4);
 memo1.Lines.Delete(s-4);
 memo1.Lines.Delete(s-4);
 memo1.Lines.Delete(s-4);
 memo1.Lines.Delete(s-4);
 memo1.Lines.Delete(s-4);
 end
 else inc(s);
end;
Это не будет работать ты не учитываешь что при удалении строк меняется их количество тобишь мемо.лайнес.каунт и изза этого будут пропускаться строки.
более того твой инкремент вне цикла и посему цикл зависнет
0
36 / 36 / 17
Регистрация: 12.04.2012
Сообщений: 169
Записей в блоге: 1
06.11.2015, 03:06 16
CheshireesCat, а memo1.Lines.Count разве не вычисляется на каждой итерации? Инкремент как раз внутри цикла, просто неудачно отформатировано. Инкремент срабатывает, когда НЕ срабатывает IF

Добавлено через 5 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
var s:int64;
begin
  s:=1;
  while s<memo1.Lines.Count-1 do
    // между этим комментарием и следующим находится тело цикла
    if memo1.Lines[s]=edit1.Text
      then begin
        memo1.Lines.Delete(s-4);
        memo1.Lines.Delete(s-4);
        memo1.Lines.Delete(s-4);
        memo1.Lines.Delete(s-4);
        memo1.Lines.Delete(s-4);
      end
      else inc(s);
    // между этим комментарием и предыдущим находится тело цикла
end;
Добавлено через 1 минуту
это то же самое, только отформатировано негляднее

Добавлено через 3 минуты
Цитата Сообщение от CheshireesCat Посмотреть сообщение
и изза этого будут пропускаться строки.
Аааа, я что-то не сразу понял, в чём ты видишь проблему. В пропуске строк. Нет строки пропускаться не будут, т.к. инкремент не срабатывает, когда срабатывает IF

Добавлено через 19 минут
Да, кстати, если без Edit1, то можно так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.Button1Click(Sender: TObject);
var s:int64;
begin
  s:=1;
  while s<memo1.Lines.Count-1 do
    if (memo1.Lines[s]='"classname" "info_player_deathmatch"')
    or (memo1.Lines[s]='"classname" "info_player_start"')
      then begin
        memo1.Lines.Delete(s-4);
        memo1.Lines.Delete(s-4);
        memo1.Lines.Delete(s-4);
        memo1.Lines.Delete(s-4);
        memo1.Lines.Delete(s-4);
      end
      else inc(s);
end;
0
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,140
06.11.2015, 05:49 17
Цитата Сообщение от Shur1k_ua Посмотреть сообщение
Задача! Удалить кусок текста, где встречается слово или слова
info_player_start или info_player_deathmatch
ты там двигло GoldScr ковыряешь чтоли?

Добавлено через 1 час 53 минуты
Цитата Сообщение от Shur1k_ua Посмотреть сообщение
текст якобы находится в тхт файле, да это респавны для карт в кс 1,6.
а..теперь понятно
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
06.11.2015, 06:52 18
У тебя есть мемо с строками .. Скажем двадцать строк с цыфрами от 0 до 19..
И переменная цыкла с номером 4 ты тобишь пятая строка ты удаляешь 3предыдущих строки эту строку и следующую и остаются строки 0 6 7 8 9..19 но переменная цикла по-прежнему 4 и наседующей итерации уже пять ты наченаешь проверять с шестой строки тобишь нашем случае с 10,
а строки 6,7,8,9 остались не проверенными
0
36 / 36 / 17
Регистрация: 12.04.2012
Сообщений: 169
Записей в блоге: 1
06.11.2015, 17:02 19
Цитата Сообщение от CheshireesCat Посмотреть сообщение
нашем случае с 10,
а строки 6,7,8,9 остались не проверенными
Вот тут у тебя ошибка в рассуждениях

Добавлено через 12 минут
На самом деле, т.к. инкремент не срабатывает, когда срабатывает IF, то переменная цикла по-прежнему равна 4, а мемо в твоём примере выглядит вот так:
0-й элемент = 0
1-й элемент = 6
2-й элемент = 7
3-й элемент = 8
4-й элемент = 9
5-й элемент = 10
6-й элемент = 11
7-й элемент = 12
8-й элемент ...
Попробуй ответить на эти вопросы:
- с какой строки будет продолжена проверка, если переменная s=4
- что содержится внутри 0-го и 1-го элементов (в смысле, не какая цифра, а какая строка исходного текста автора темы). Это сложный вопрос, но постарайся на него ответить, ответить можно с уверенностью.
- что будет содержаться внутри 2-го и 3-го элементов, если, вдруг, у нас сработает IF на следующей проверке. Если IF сработал, то ответить можно с уверенностью (в смысле, не какая цифра, а какая строка исходного текста автора темы). Нужно ли проверять в таком случае 2-й и 3-й элемент?

Добавлено через 8 минут
ещё вопрос:
- может ли сработать IF на 1-м, 2-м или 3-м элементе?
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
06.11.2015, 18:57 20
Hadros, да просто вставь код в программу и всё станет видно
вот что осталось после парсинга твоим методом
Кликните здесь для просмотра всего текста
{
"origin" "272 1776 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "16 1776 -104"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-128 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-256 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-384 1920 -32"
"item" "10"
"count" "1"
"classname" "armoury_entity"
}
{
"origin" "-528 -1264 0"
"angles" "0 0 0"
"classname"
"info_player_deathmatch"
}
{
"origin" "-400 -1424 -4"
"angles" "0 0 0"
"classname"
"info_player_deathmatch"
}
0
06.11.2015, 18:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2015, 18:57
Помогаю со студенческими работами здесь

Копирование части текста из файла
Здравствуйте, есть такая проблема, на форме два Edita, в которые будут писаться начало и конец для...

Word, изменение шрифта части текста
Помогите, пожалуйста, реализовать следующее: Программа создаёт письмf в форматах rtf, doc с...

Замена части текста в memo или richedit
Привет всем.Как известно для брута нужно список логинов и паролей, но иногда бывает затруднительно...

кто подскажет как создать примечания для части текста
Друзья !!! Все мы знаем как открывать, создавать, редактировать *.doc в Word 2007 программно при...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru