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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2011, 13:56   #1
Pepsik
Пользователь
 
Регистрация: 10.07.2011
Сообщений: 15
Лампочка Паскаль. Обработка файлов

Задание такое: Дан текстовый файл. Преобразовать его, оставив в каждой строке только самое длинное слово.
у меня есть программа, ищущая самое длинное слово во всём файле. Помогите, пожалуйста, переделать её под данное задание.
Код:
program lab8_22a;
var maxs,s:string;
f:file of char;
c:char;
w:boolean;
maxe,e,i:integer;
begin
assign(f,'file1.txt');
reset(f);
w:=false;
maxs:='';
maxe:=0;
while not eof(f) do
 begin
read(f,c);
while (not eof(f))and(c<>' ') do
begin
s:=s+c;
read(f,c);
end;
for i:=1 to length(s) do
if pos(s[i],'eyuioa')<>0 then
inc(e);
if e>maxe then
 begin
  maxe:=e;
      end;
if length(maxs)<length(s) then
maxs:=s;
 s:='';
while (not eof(f)) do
 begin
 read(f,c);
end;
end;
close(f);
writeln('Самое длинное слово:',maxs);
readln;
end.
Pepsik вне форума Ответить с цитированием
Старый 13.07.2011, 14:23   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

извините, но эта программа выводит первое слово из файла, если перед ним нет пробелов ...
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 13.07.2011, 15:21   #3
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Примерно так будет.
Код:
Var
  FF:Text;
  i:Byte;
  st,MaxSl,buf:String;
begin
  Assign(ff,'File.txt');
  Reset(ff);
  While Not EOF(ff) do
  Begin
    Readln(ff,St);
    MaxSl:='';
    Buf:='';
    For i:=1 to Length(St) do
    Begin
      If (St[i] <> ' ') and (i <=Length(St)) then buf:=buf+St[i];
      If (St[i] =  ' ') or (i = Length(St)) then
      Begin
        If Buf <> '' then
        Begin
          If Length(Buf) >= Length(MaxSl) then MaxSl:=buf;
          buf:=''
        End;
      End;
    End;
    Writeln(MaxSl)
  End;
  Close(ff);
  Readln
End.
О том как записать результат в файл(если это нужно) подумайте сами.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Обработка файлов teach Помощь студентам 5 02.04.2011 16:41
Обработка файлов FauLL Общие вопросы C/C++ 1 23.06.2010 21:34
Обработка файлов. Morzik8 Помощь студентам 2 17.05.2010 20:05
Обработка файлов последовательного доступа.Турбо Паскаль. Kabuto07 Помощь студентам 2 24.04.2010 15:30
Обработка файлов Си++ modulrev Помощь студентам 22 19.02.2009 18:53