Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133

Удалить абзац

04.06.2013, 08:41. Показов 3413. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Слишком сложно для меня((
Дано целое число K и текстовый файл. Удалить из файла абзац с номером K (абзацы отделяются друг от друга одной или несколькими пустыми строками). Пустые строки, предшествующие и следующие за удаляемым абзацем, не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.06.2013, 08:41
Ответы с готовыми решениями:

дан текст, 2-3 абзаца, посчитать в нем все символы(включая переход на новую строку, абзац и т.д.)
Ребят, доброго времени суток! помогите пожалуйста, дан текст, 2-3 абзаца, посчитать в нем все символы(включая переход на новую строку,...

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

Удалить абзац по условию
Здравствуйте, уважаемые форумчане! Помогите с созданием макроса. Есть файл MS Word, в котором содержится несколько тысяч пунктов (по...

7
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.06.2013, 09:36
Вроде так
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
var f,g:text;
    k,n:integer;
    nf,ng,s1,s2:string;
    b:boolean;
begin
clrscr;
write('Имя файла для чтения: ');
read(nf);
nf:=nf+'.txt';
assign(f,nf);
if not Fileexists(nf) then
 begin
  writeLn('Не могу открыть файл ',nf);
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end
else reset(f);
write('Имя файла для записи: ');
read(ng);
ng:=ng+'.txt';
assign(g,ng);
rewrite(g);
write('Введите номер абзаца k=');
read(k);
n:=0;{считаем абзацы}
b:=false;{нет нужного абзаца}
readln(f,s1);{читаем первую строку}
if s1='' then writeln(g,s1){если пустая}
else {иначе начало абзаца}
 begin
  n:=n+1;
  if n<>k then writeln(g,s1);
 end;
while not eof(f) do
 begin
  readln(f,s2);{читаем следующие}
  if (s2<>'')and(s1='') then n:=n+1;{если не пустая, а перед ней пустая,
                                    это новый абзац}
  if n=k then b:=true else b:=false;{если номер нужный, то меняем флаг на true,
                                     если не нужный - обратно}
  if not b or(s2='') then writeln(g,s2);{если не наш абзац или пустая строка,
                                         то пишем в новый файл}
  s1:=s2;{запоминаем последнюю прочитанную строку}
 end;
close(f);
close(g);
writeln('Измененный файл записан в файл ',ng);
if n<k then write('Абзаца с номером ',k,' нет');
end.
1
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
04.06.2013, 20:28  [ТС]
а вам не кажется, что она немного абсурдна и перестает работать еще в самом начале?
0
SausageFlat
 Аватар для Striker
242 / 221 / 154
Регистрация: 19.08.2012
Сообщений: 499
Записей в блоге: 1
04.06.2013, 21:26
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
var
  F, R: Text;
  N, K: Integer;
  S, FName: String;
  B: Boolean;
 
function AbzCount: Integer;
begin
  Assign(F, FName);
  Reset(F);
  ReadLn(F, S);
  if S = '' Then
  begin
    N := 0;
    B := False;
  end Else
  begin
    N := 1;
    B := True;
  end;
  repeat
    ReadLn(F, S);
    if S = '' Then B := False Else
    begin
      if B = False Then
        Inc(N);
      B := True;
    end;
  until EoF(F);
  AbzCount := N;
end;
 
begin
  Write('Имя файла: ');
  ReadLn(FName);
  Write('Номер абзаца: ');
  ReadLn(K);
  if K > AbzCount Then
    WriteLn('Данного абзаца не существует') Else
  begin
    Write('Имя выходного файла: ');
    ReadLn(S);
    Assign(R, S);
    ReSet(F);
    ReWrite(R);
    ReadLn(F, S);
    if S = '' Then
    begin
      N := 0;
      B := False;
    end Else
    begin
      N := 1;
      B := True;
      if K <> 1 Then
        WriteLn(R, S);
    end;
    repeat
      ReadLn(F, S);
      if S = '' Then B := False Else
      begin
        if B = False Then
          Inc(N);
        B := True;
      end;
      if N <> K Then
        WriteLn(R, S) Else
      if S = '' Then
        WriteLn(R, S);
    until EoF(F);
    Close(R);
    WriteLn('Готово!');
  end;
end.
Добавлено через 7 минут
Вариант, который предложил Puporev, тоже работоспособный. Не знаю что Вам в нём не понравилось.
1
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
04.06.2013, 21:31  [ТС]
огромное спасибо)))
а не могли бы вы дописать комментарии к действиям? был бы очень признателен
0
SausageFlat
 Аватар для Striker
242 / 221 / 154
Регистрация: 19.08.2012
Сообщений: 499
Записей в блоге: 1
04.06.2013, 21:47
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
var
  F, R: Text;
  N, K: Integer;
  S, FName: String;
  B: Boolean;
 
function AbzCount: Integer;//Узнаём сколько абзацев одержит файл.
begin
  Assign(F, FName);
  Reset(F);
  ReadLn(F, S);
  if S = '' Then
  begin
    N := 0;
    B := False;
  end Else
  begin
    N := 1;
    B := True;
  end;
  repeat
    ReadLn(F, S);
    if S = '' Then B := False Else
    begin
      if B = False Then
        Inc(N);
      B := True;
    end;
  until EoF(F);
  AbzCount := N;
end;
 
 
begin
  Write('Имя файла: ');
  ReadLn(FName);
  Write('Номер абзаца: ');
  ReadLn(K);
  if K > AbzCount Then //Сверяемся с функцией, еслть ли такой абзац или нет.
    WriteLn('Данного абзаца не существует') Else
  begin
    Write('Имя выходного файла: ');
    ReadLn(S);
    Assign(R, S);
    ReSet(F);
    ReWrite(R);
    ReadLn(F, S);
    if S = '' Then
    begin
      N := 0;
      B := False;
    end Else
    begin
      N := 1;
      B := True;
      if K <> 1 Then
        WriteLn(R, S);
    end;
    repeat//Записываем всё в новый файл, кроме абзаца, который выбрал пользователь на удаление.
      ReadLn(F, S);
      if S = '' Then B := False Else
      begin
        if B = False Then
          Inc(N);
        B := True;
      end;
      if N <> K Then
        WriteLn(R, S) Else
      if S = '' Then
        WriteLn(R, S);
    until EoF(F);
    Close(R);
    WriteLn('Готово!');
  end;
end.
1
05.06.2013, 07:01

Не по теме:

Цитата Сообщение от maksim94 Посмотреть сообщение
а вам не кажется, что она немного абсурдна и перестает работать еще в самом начале?
А Вам не кажется что Ваш мозг и знания Паскаля значительно ниже ватерлинии?

0
 Аватар для timsc1
15 / 15 / 2
Регистрация: 27.11.2011
Сообщений: 714
05.06.2013, 14:30
Puporev один из лучших в Паскале!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2013, 14:30
Помогаю со студенческими работами здесь

Удалить из файла абзац с номером
Дано целое число K и текстовый файл. Удалить из файла абзац с номером K (абзацы выделяются с помощью красной строки— т.е. абзац...

Удалить из файла абзац с номером N
2)Дано число N и текстовый файл. Удалить из файла абзац с номером N (абзацы отделяются друг от друга одной или несколькими пустыми строками...

Удалить из файла абзац с заданным номером
Дано целое число K и текстовый файл. Удалить из файла абзац с номером K (абзацы отделяются друг от друга одной или несколькими...

Удалить пустой абзац после таблицы
Есть вот такой вот файлик (для примера). Как в нем автозаменой удалить лишние абзацы ? Если б без таблиц - &quot;^p^p&quot; в поиске...

Как удалить абзац в конце файла ?
Всем привет подскажите как удалить абзац в конце файла который появляется сам по себе Использую вот такую функцию procedure...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru