9 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 80
1

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

21.02.2014, 17:43. Показов 835. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан текстовый файл,содержащий некоторые пояснения,заключенные
в скобки. Убрать эти пояснения вместе со скобками. Выровнять
измененный файл по левому и правому краю,равномерно добавив прбелы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2014, 17:43
Ответы с готовыми решениями:

Удалить часть символьной строки, заключенный в скобки(вместе со скобками).
Удалить часть символьной строки, заключенный в скобки(вместе со скобками).

Удалить часть символьной строки, заключённой в скобки (вместе со скобками)
Удалить часть символьной строки, заключённой в скобки (вместе со скобками)

В заданном тексте удалить все фрагменты, заключенные в круглые скобки (вместе со скобками)
В заданном тексте удалить все фрагменты, заключенные в круглые скобки (вместе со скобками). Текст...

В заданном тексте удалить все фрагменты, заключенные в круглые скобки (вместе со скобками)
В заданном тексте удалить все фрагменты, заключенные в круглые скобки (вместе со скобками)

7
228 / 225 / 220
Регистрация: 03.07.2012
Сообщений: 466
22.02.2014, 08:34 2
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
uses
  crt;
var
  s, s1 : string;
  t, g : text;
  i, max : byte;
begin
  clrscr;
  write('имя файла : '); readln(s);
  assign(t,s);
  assign(g,'temp.txt');
  {$i-}
  reset(t);
  {$i+}
  If IOResult <> 0 then begin
    writeln('Файл ',s,' не найден.');
    readln;
    exit;
  end;
  rewrite(g);
  max := 0;
  while not eof(t) do begin
    readln(t,s);
    while pos('(',s) <> 0 do delete(s,pos('(',s),pos(')',s)-pos('(',s)+2);
    writeln(g,s);
    If Length(s) > max then max := length(s);
  end;
  reset(g);
  rewrite(t);
  while not eof(g) do begin
    readln(g,s);
    s1 := '';  
    if s[1] <> ' ' then s1 := s1 + s[1];
    for i := 2 to length(s)-1 do begin
      if s[i] <> ' ' then s1 := s1 + s[i];
      if (s[i] = ' ') and (s[i+1] <> ' ') and (s[i-1] <> ' ') then 
        s1 := s1 + ' ';
    end;    
    if s[length(s)] <> ' ' then s1 := s1 + s[i];
    while length(s1) <> max do begin
    i := 1; 
    while i <= (length(s1)-1) do begin
      if (s1[i] = ' ') and (s1[i+1] <> '') then begin 
        insert(' ',s1,i);
        inc(i);
      end;  
      if  length(s1) = max then break;
      inc(i);
    end;
    end;
    writeln(t,s1);
  end;
  close(t);
  close(g);
  readln;
end.
0
9 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 80
24.02.2014, 16:46  [ТС] 3
Спасибо, скажите пожалуйста, как можно по другому сделать без помощи IOresult?
0
228 / 225 / 220
Регистрация: 03.07.2012
Сообщений: 466
25.02.2014, 05:12 4
IOResult здесь проверяет есть ли ошибка при открытии исходного файла с текстом, т. е. найден ли этот файл. Можно просто удалить с 15-ой по 19-ую строки и 12, 14 строки на предложенный алгоритм выравнивания текста это не влияет.

Добавлено через 9 минут
IOResult здесь проверяет есть ли ошибка при открытии исходного файла с текстом, т. е. найден ли этот файл. Можно просто удалить с 15-ой по 19-ую строки и 12, 14 строки на предложенный алгоритм выравнивания текста это не влияет.
0
9 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 80
26.02.2014, 16:48  [ТС] 5
спасибо! скажите, пожалуйста, как оформить программу с помощью процедур и функций?
0
228 / 225 / 220
Регистрация: 03.07.2012
Сообщений: 466
26.02.2014, 17:08 6
Сейчас времени нет, завтра напишу
0
9 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 80
26.02.2014, 17:09  [ТС] 7
Хорошо, спасибо, буду ждать!
0
228 / 225 / 220
Регистрация: 03.07.2012
Сообщений: 466
27.02.2014, 07:54 8
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
75
76
77
78
79
80
81
82
83
uses
  crt;
procedure DelBrack(var s : string);
var i   : byte;
    bol : boolean;
    s1  : string;
begin
  bol := true; s1 := ''; i := 1;
  while (i <= length(s)) do begin
    If s[i] = '(' then bol := false;
    If bol then s1 := s1 + s[i];
    If s[i] = ')' then begin 
      bol := true;
      inc(i);
    end;  
    inc(i);
  end;
  s := s1; 
end;  
function LongStr(var t : text) : byte;
var max : byte; s : string;
begin
  max := 0;
  while not eof(t) do begin
    readln(t,s);
    If length(s) > max then max := length(s);
  end;
  LongStr := max;
end;
procedure Vyrovn(var s : string; max : byte);
var i : byte; s1 : string;
begin
  s1 := '';  
    if s[1] <> ' ' then s1 := s1 + s[1];
    for i := 2 to length(s)-1 do begin
      if s[i] <> ' ' then s1 := s1 + s[i];
      if (s[i] = ' ') and (s[i+1] <> ' ') and (s[i-1] <> ' ') then 
        s1 := s1 + ' ';
    end;    
    if s[length(s)] <> ' ' then s1 := s1 + s[i];
    while length(s1) <> max do begin
    i := 1; 
    while i <= (length(s1)-1) do begin
      if (s1[i] = ' ') and (s1[i+1] <> '') then begin 
        insert(' ',s1,i);
        inc(i);
      end;  
      if  length(s1) = max then break;
      inc(i);
    end;
    end; 
    s := s1;
end;
var
  s : string;
  t, g : text;
  i, max : byte;
begin
  clrscr;
  write('имя файла : '); readln(s);
  assign(t,s);
  assign(g,'temp.txt');
  reset(t);
  rewrite(g);
  max := 0;
  while not eof(t) do begin
    readln(t,s);
    DelBrack(s);
    writeln(g,s);
  end;
  reset(g);
  max := LongStr(g);
  reset(g);
  rewrite(t);
  while not eof(g) do begin
    readln(g,s);
    Vyrovn(s,max);
    writeln(t,s);
  end;
  close(t);
  close(g);
  readln;
end.
0
27.02.2014, 07:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2014, 07:54
Помогаю со студенческими работами здесь

Дан текстовый файл содержащий вещественные числа по одному в каждой строке. Поместить эти числа в другой файл
Дан текстовый файл содержащий вещественные числа по одному в каждой строке. Поместить эти числа в...

Дан файл содержащий произвольный текст. Определить правильно ли в нем расставлены скобки
Дан файл содержащий произвольный текст. Определить правильно ли в нем расставлены скобки....

В тексте удалить символы, заключенные в круглые скобки, вместе со скобками
//--------------------------------------------------------------------------- #include...

Удалить из строки все последовательности символов, заключенные в скобки, вместе со скобками
Ввести строку (с нуль-окончанием). Удалить из введенной строки все последовательности символов,...


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

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

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