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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2016, 23:08   #1
destra1j
Пользователь
 
Регистрация: 04.05.2016
Сообщений: 47
По умолчанию [PascalABC]Пользователь вводит данные в файл разбитый на строки. Напечатать все строки, состоящие из шести букв.

Дано текстовый файл, разбитый на строки. Напечатать все строки, состоящие из шести букв.
Код:
program filestr;
var
  f:text;
  ml:integer;
  s:string;
begin
  
  
  assign(f,'f.txt');
  reset(f);
  
 
   while not eof(f) do
  begin
    readln(f,s);
    if length(s)=6 then
      writeln(s);
  end;
  
  close(f);
  readln;
end.
он у мня работает но только для одной строчки а нужно чтобы сколько захочет пользователь.

Последний раз редактировалось destra1j; 15.05.2016 в 10:56.
destra1j вне форума Ответить с цитированием
Старый 14.05.2016, 23:13   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Что такое m1? Может в файле всего одна строка? Пробелы, цифры учитываются({{{3364йцукен3%4) строка из 6 букв?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 14.05.2016, 23:30   #3
destra1j
Пользователь
 
Регистрация: 04.05.2016
Сообщений: 47
По умолчанию

только буквы не цыфры и не какието другие символы
destra1j вне форума Ответить с цитированием
Старый 15.05.2016, 07:28   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от destra1j Посмотреть сообщение
только буквы не цыфры и не какието другие символы
Извините, но это очень расплывчиво.
Если нужны только буквы, то, будьте любезны указать какие именно буквы нужно проверять (русские, латинские/английские, казахские, вьетнамские, китайские, японские, арабские, иврит...)?

я уже молчу о том, что текстовый файл имеет свою кодировку этих самых национальных буковок!

подсчитать количество латинских буковок в строке можно так:
Код:
while not eof(f) do
  begin
    readln(f,s);
    m1:=0;
    for i:=1 to Length(s) do 
      if s[i] in ['a'..'z','A'..'Z'] then Inc(m1);
    writeln('В строке латинских букв: ',m1,' Сама строка: ',s);
  end;


Цитата:
он у мня работает но только для одной строчки а нужно чтобы сколько захочет пользователь.
Вы заблуждаетесь. Ваш код обрабатывает ВСЕ строчки исходного текстового файла. Раз он Вам выводит только одну строку, значит, только одна строчка в вашем файле имеет длину 6 символов.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.05.2016, 08:16   #5
destra1j
Пользователь
 
Регистрация: 04.05.2016
Сообщений: 47
По умолчанию

А как сделать так чтобы пользователю не приходилось заходить в файл и там печатать строчки а непосредственно в программе это происходило?

Последний раз редактировалось destra1j; 15.05.2016 в 08:20.
destra1j вне форума Ответить с цитированием
Старый 15.05.2016, 09:32   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Никак. У Вас же другое задание:
Цитата:
Дано текстовый файл, разбитый на строки.
изменяйте своё задание, тогда можно сделать и по другому.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.05.2016, 10:57   #7
destra1j
Пользователь
 
Регистрация: 04.05.2016
Сообщений: 47
По умолчанию

Цитата:
Пользователь вводит данные в файл разбитый на строки. Напечатать все строки, состоящие из шести букв.
Изменил
Цитата:
изменяйте своё задание, тогда можно сделать и по другому.
Как?
destra1j вне форума Ответить с цитированием
Старый 15.05.2016, 11:04   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Пользователь вводит данные в файл разбитый на строки
Код:
{создание и заполениние пользователем текстового файла}
WriteLn('Введите имя текстового файла:');
ReadLn(fName);
assign(f,fName);
rewrite(f);
WriteLn('Вводите строки для записи в файл по одной, для окончания ввода введите пустую строку:');
repeat
  ReadLn(s);
  if s<>'' then WriteLn(f,s);
until s='';
Close(f);

потом можно делать Reset(f); и читать из этого файла...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль(файлы). Дан текстовый файл f. Вывести все строки файла длина которых больше 30 символов. Артемdgty Помощь студентам 0 09.10.2013 00:37
Дан текстовый файл.Напечатать все его строки начинающиеся с символа "Т". Richik123 Паскаль, Turbo Pascal, PascalABC.NET 2 31.05.2012 19:37
C++ Дан текстовый файл. Напечатать все строки, длина которых равна данному числу. SaratovAreaNetwork Помощь студентам 3 18.04.2012 18:50
Создать текстовый файл, строки которого содержат целые числа. Обработать файл следующим образом: напечатать все отрицательные числ Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 3 29.02.2012 17:30
Создать текстовый файл, строки которого содержат целые числа. Обработать файл следующим образом: напечатать все отрицательные... Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 2 08.02.2012 19:23