Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2010, 15:40   #1
valis
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 17
По умолчанию Работа с текстовыми файлами.Pascal

Создать в текстовом редакторе файл, состоящий из символов: Латинские буквы, цифры, запятые, точки. и 7 строк. Описать процедуру или функцию, которая Удаляет из текста все цифры.. Результат вывести на экран. В конец исходного файла программно занести свои имя и фамилию.

Объясните пожалуйста,как удалить из текста все цифры,какое условие добавить?
valis вне форума Ответить с цитированием
Старый 29.03.2010, 16:20   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от valis Посмотреть сообщение
Создать в текстовом редакторе файл, состоящий из символов: Латинские буквы, цифры, запятые, точки. и 7 строк. Описать процедуру или функцию, которая Удаляет из текста все цифры.. Результат вывести на экран. В конец исходного файла программно занести свои имя и фамилию.

Объясните пожалуйста,как удалить из текста все цифры,какое условие добавить?
Делаешь процедуру парсинга текстового файла, т.е разбиваешь его строки, потом строки разбиваешь на слова, потом в каждом слове ищешь символы, входящие в ['0'..'9'] и удаляешь их. В результате получаешь строки без символов цифр, выводишь их на экран. Исходный файл переоткрываешь процедурой Append и добавляешь в конец файла свои данные...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 29.03.2010, 16:27   #3
valis
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 17
По умолчанию

Можно как-нибудь подробнее о парсинге. Впервые слышу о нем
valis вне форума Ответить с цитированием
Старый 29.03.2010, 16:29   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от valis Посмотреть сообщение
Можно как-нибудь подробнее о парсинге. Впервые слышу о нем
Тебе всегда поможет Google...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 29.03.2010, 16:29   #5
valis
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 17
По умолчанию

Код:
assign (f, 'I:\Program Files\PABC\part2.txt');
   reset(f);
...............
..............

for i:=length(str) downto 1 do
if str[i] in ['0'..'9'] then delete(str,i,1);
     end;
     writeln(str);
          end;
   close(f);

 {vvod novoi zapisi v file}
{append (f);
writeln(f, ' name');
close(f);
readkey;
end;
end;
Вот что добавить на место троеточия?

Последний раз редактировалось valis; 29.03.2010 в 16:33.
valis вне форума Ответить с цитированием
Старый 29.03.2010, 17:59   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
while Not Eof(f) do begin
  Readln(f, str); {прочитали одну строчку из файла}

  {удалили цифры}
  for i:=length(str) downto 1 do
      if str[i] in ['0'..'9'] then delete(str,i,1);

  WriteLn(str); {вывели на экран - уже без цифр}
end;
а вообще, то, что у Вас в файле 7 строк, можно использовать.
сохраняете все строчки в массив (удаляя цифры), потом перезаписываете файл...

примерно так:
Код:
var 
  MasStr : array[1..7] of string;
  k : integer;
...
begin
  Assign(f, 'имя_файла');
  Reset(f);
  for k:=1 to 7 do
    if Not Eof(f) then Readln(f, MasStr[k])
                      else MasStr[k] := '';
  Close(f);

  {выведем исходный файл на экран}
  for k:=1 to 7 do
   WriteLn(MasStr[k]);

  {удалим все цифры}
  for k:=1 to 7 do
     for i:=length(MasStr[k]) downto 1 do
     if MasStr[k][i] in ['0'..'9'] then delete(MasStr[k],i,1);

  {выведем результат на экран}
  WriteLn('----- RESULTAT ------');
  for k:=1 to 7 do
   WriteLn(MasStr[k]);

  Rewrite(f); {ВНИМАНИЕ! ЭТО ПЕРЕЗАПИСЬ ИСХОДНОГО ФАЙЛА}

  for k:=1 to 7 do
   WriteLn(аб MasStr[k]);

  {добавим в файл фамилию}
  WriteLn(f,'Моя фамилия и имя...')

  Close(f); {закрыть файл}

end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
две задачи в Pascal с текстовыми файлами student2008 Помощь студентам 4 23.06.2009 10:23
Работа с текстовыми файлами в ЯП Turbo Pascal JayDe23 Паскаль, Turbo Pascal, PascalABC.NET 0 04.06.2009 19:50
Pascal работа с текстовыми файлами Andrey89 Помощь студентам 3 25.12.2007 19:21