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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2014, 15:22   #11
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Ааааа, дошло
Код:

var s:string;

 procedure dict;
 var k:string; f:text;
 begin
  assign(f,'diction.txt'); reset(f);
   while not eof(f) do begin readln(f,k);s:=s+k+' ';end;
  close(f);
 end;

 var k:string; i:integer;
  fin,fout:text;
begin dict;
   assign(fin,'input.txt'); assign(fout,'output.txt');
   Reset(fin); rewrite(fout);
   while not eof(fin) do begin
    Readln(fin,k);
    i:=pos(' ',k);
    while i<>0 do begin
     if pos(copy(k,1,i-1),s)<>0 then writeln(copy(k,1,i-1));
     delete(k,1,i+1); i:=pos(' ',k);
    end;
      Writeln(fout,k);
   end;
  Close(fin);close(fout);
end.
Не проверено, комп пока отсутсвует

Последний раз редактировалось ZX Spectrum-128; 04.05.2014 в 15:28.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 04.05.2014, 15:24   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
rewrite(output); // <-- добавьте
Странно... Я думал что такие стандарты сам паскаль открывает...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.05.2014, 15:26   #13
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

По умолчанию, input - ввод с клавиатуры, output - выводна экран. Могу ошибаться.

Рискнул предложить свой вариант
Код:
const
  limits = [#0..#32,'.',',',':',';','!','?','"'];
type
   TWords = array[1..40] of string;
var
  k:string;
  count,i:integer;
  dict,fin,fout:text;
  texts : string;
  mywords,words : TWords;
  text : string[80];
//  mywords:allwords;
  f : textfile;
  nwords:word;


function GetWords(s : string; var w : TWords) : byte;
var
   i,back,n : byte;
begin
   i := 1;
   n := 0;
   while(i<=length(s)) do begin
      while(i<=length(s)) and (s[i] in limits) do
       inc(i);
      if i<=length(s) then begin
         back := i;
         while(i<=length(s)) and not(s[i] in limits) do
          inc(i);
         inc(n);
         w[n] := copy(s, back, i-back);
      end;
   end;
  getwords:=n;
end;

begin
  assign(dict,'diction.txt');
  reset(dict);
  count:=0;
  while not eof(dict) do
    begin
      readln(dict,texts);
      nwords:=getwords(texts,words);
      for i:=1 to nwords do
        mywords[i+count]:=words[i];
      count:=count+nwords;
    end;
  close(dict);

  assign(fin,'input.txt');
  assign(fout,'output.txt');
  Reset(fin);
  rewrite(fout);
  while not eof(fin) do
    begin
      Readln(fin,k);
      for i:=1 to count do
        delete(k,pos(mywords[i],k),length(mywords[i]));
      writeln(fout,k);
    end;
  Close(fin);close(fout); 
end.

Последний раз редактировалось Stilet; 04.05.2014 в 18:28.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 04.05.2014, 18:34   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
По умолчанию, input - ввод с клавиатуры, output - выводна экран. Могу ошибаться.
Ну да. Так и есть. И их можно перенаправить, что я и попытался. Но видимо неудачно, ибо подзабыл нужно ли их открывать и закрывать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2014, 18:41   #15
Polina25
 
Регистрация: 03.05.2014
Сообщений: 8
По умолчанию Работа с текстовыми файлами

как же мне проверить работает программа или нет?
Polina25 вне форума Ответить с цитированием
Старый 05.05.2014, 19:37   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Polina25 Посмотреть сообщение
как же мне проверить работает программа или нет?
Можно заполнить файлы и запустить программу.
Если в output.txt попадут нужные слова, значит, программа работает.
Если нет - то не работает.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2014, 19:39   #17
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Цитата:
Сообщение от Polina25 Посмотреть сообщение
как же мне проверить работает программа или нет?
Работает. Я проверял на ваших же файлах.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 07.05.2014, 17:49   #18
Polina25
 
Регистрация: 03.05.2014
Сообщений: 8
По умолчанию Работа с текстовыми файлами

спасибо большое еще раз, вы меня очень выручили!
Polina25 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделавание кода на считывание из файла в файл output.txt input.txt !!! airesjke Помощь студентам 0 29.05.2013 14:07
Переписать в новый файл все слова, которые содержат только буквы латин.алф. volchica Паскаль, Turbo Pascal, PascalABC.NET 3 18.02.2011 16:22