Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
6 / 6 / 5
Регистрация: 03.11.2012
Сообщений: 353
1

Нужно удалить все строчки, которые удовлетворяют условию заданой строчки

28.02.2017, 19:05. Просмотров 938. Ответов 3
Метки нет (Все метки)

нужно удалить все строчки которые удовлетворяют условию заданой строчки, а то написал находит щитает все строчки с искомым словом, а хочется чтоб программа находила и удаляла именно искомые строчки полностью.
Pascal
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
uses crt;
var
d: char;
{a,Val,a1,}s,{,u,w,DeleteFile_string}ds{,Length}: string;
a3:array[0..1000] of string;
index:array[0..99] of integer;
f{,t}:Text;
I,del:integer;
begin
Writeln(' нажите клавишу, сделайте свой выбор :');
Writeln(' * * * * * * * * * * * * * * * * * * *1 * * * *Insert дописать в файл: ');
Writeln(' * * * * * * * * * * * * * * * * * * *2 * * * *Delete удалить из файл: '); 
Writeln(' * * * * * * * * * * * * * * * * * * *3 Wiev показать на матрицу файл: ');
Writeln(' * * * * * * * * * * * * * * * * * * *4, Esc ** * *выйти из программы: ');
d := ReadKey;
case d of
#50:
begin
Writeln(' нажата клавиша 2');
Write(' Введіть назву файлу, який треба прочитать: ');
Readln(s);{s:='1.txt';}
I := 0;
Assign(f, s);
Reset(f);
Writeln(' file IsConsoleApplication ', s, ' Assigned, можно показать на матрицу:');
Writeln(' Введите строчку которую нужно найти и удалить : ');
Read(ds);
{Length:=SetLength(ds);}
{del:=0;}
while not Eof(f) do
begin{Writeln(' файл прочитан в переменную w');}
{SetLength(a3,i);}{первый символ 1}
I := I + 1;
readln(f,a3[i]);
index[del]:=I;
index[del]:=del+1;
{Close(f);}
{if a3[I]=ds then index[del]:=i; del:=del+1;}
Writeln(' ',a3[I],' ',I);{exit;}
end;
Writeln(index[del]);
KeyPressed; 
end;{delete}
end;
end.
0
Миниатюры
Нужно удалить все строчки, которые удовлетворяют условию заданой строчки  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2017, 19:05
Ответы с готовыми решениями:

Нужно вывести из Listbox текст выбранной строчки и скачать файл с именем строчки
Дело такое. Программа при запуске сканирует файлы в нужной папку на ftp сервере и забивает имена в...

Удалить все спецсимволы из строчки
В строчке есть изображения из символов, символов море. Вопрос в том, как их сразу все удалить...

Нужно прокомментировать все строчки
Ну или хотя бы все важные вещи. import caurina.transitions.*;//библиотека для анимации var...

Как удалить все строчки в TTable?
По идее, должна быть какая-то процедура для этого? Индусские варианты вроде With...

3
1731 / 1326 / 1405
Регистрация: 28.10.2016
Сообщений: 4,265
28.02.2017, 20:59 2
Т.е. нужно удалить все строки, в которых содержится конкретное слово?
1
6 / 6 / 5
Регистрация: 03.11.2012
Сообщений: 353
02.03.2017, 17:30  [ТС] 3
да, точно.
0
1731 / 1326 / 1405
Регистрация: 28.10.2016
Сообщений: 4,265
02.03.2017, 22:11 4
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Работает, НО! Строки в файле должны быть более одного символа, а слова разделены пробелами. Адрес файла нужно указывать полный, в стиле C:\file.txt, если он конечно не находится в корне
Pascal
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
label menu;
var
s:array [1..100] of string;
c:integer;
st,sd:string;
f:text;
begin
  writeln('Укажите адрес файла:');
  var address:=ReadString;
  assign(f,address);
  menu:
  repeat
    writeln('Выберите действие:');
    writeln('1. Дописать строки в файл');
    writeln('2. Удалить строки из файла');
    writeln('3. Вывести содержимое файла');
    writeln('4. Выход'); c:=ReadInteger;
  until (c>=1) and (c<=4);
  case c of
    1:  begin
          writeln('Сколько строк добавить?');
          append(f);
          var n:=ReadInteger;
          for var i:=0 to n do begin
              readln(st);
              writeln(f,st);
            end;
          close(f);
          writeln('Готово!'); goto menu;
        end;
    2:  begin
          writeln('Введите слово, строки с которым надо удалить:');
          repeat
          sd:=ReadString;
          until sd.Length>0;
          var j:=0;
          reset(f);
            While not eof(f) do begin
                j+=1;
                readln(f,s[j]);
              end;
          close(f);
          for var i:=1 to j do begin
            var w:=1;
            While w<s[i].length do
              begin
                st:=Copy(s[i],w,length(sd));
                if st=sd then Delete(s[i],1,length(s[i]));
                w+=1;
              end;
          end;
          rewrite(f);
            for var i:=1 to j do
              if s[i]<>'' then writeln(f,s[i]);
          close(f);
          writeln('Готово!'); goto menu;
        end;
    3:  begin
        var j:=0;
        reset(f);
          While not eof(f) do begin
              j+=1;
              readln(f,s[j]);
            end;
        close(f);
        writeln('---------------------');
        for var i:=1 to j do
          if s[i]<>'' then writeln(s[i]);
        writeln('---------------------');
        goto menu;
        end;
    4:  exit;
  end;
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2017, 22:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нужно переместить в строчки все символы
Всем доброго времени суток! Прощу вашей бесценной помощи :) 1. Нужно переместить в строчки все...

Удалить из строчки S1 длиной до 40 символов все слова
Помогите пжл с решением задачи: Удалить из строчки S1 длиной до 40 символов все слова,...

Текстовые файлы. Вывести все строчки, которые начинаются с vb
короче говоря в файле in.text записоноvb 1 1esf sf 3 ds vb 5 vb 3 vb12 wrw vb100

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

Нужно суммировать только те ячейки, которые удовлетворяют условию
если вот такая таблица: ЦФУ ДОЛГ ПОГАШЕНО ола 160 000 долг ила 195 000 195 000 ола 90...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.