Аватар
Информатика, опубликовано 2018-08-22 21:50:08 by Гость

Дан текстовый файл f, каждая строка которого состоит из слов, разделенных одним и более пробелами. Записать все строки, в которых количество слов минимально, но больше нуля, в новый файл g.

Аватар
Ответ оставил Гость

//Pascal ABC.NET 3.1 сборка 1219

Var
 f:text;
 ars:array of string;
 s,s1:string;
 min,n,i:integer;
begin
n:=1;
min:=integer.MaxValue;
assign(f,text.txt);
reset(f);
while not(Eof(f)) do
 begin
  readln(f,s);
  s1:=s;
  s:=s.Trim;
  i:=1;
  while ilength(s) do
    if (s[i]= ) and (s[i+1]= ) then delete(s,i,1) else inc(i);
  if ((s.split).length0) then
  begin
   if (s.split).length=min then
    begin
     inc(n);
     setlength(ars,n);
     ars[n-1]:=s1;
    end
    else
    begin
     n:=1;
     setlength(ars,n);
     ars[n-1]:=s1;
    end;
    min:=(s.split).length;
   end;
  end;
close(f);
assign(f,text1.txt);
rewrite(f);
for i:=0 to n-1 do
writeln(f,ars[i]);
close(f);
end.

Содержимое файла text.txt:
Хей патимейкер
уличный
денсер
шейкер                   шейкер
Содержимое файла text1.txt:
уличный
денсер

Вопрос
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.