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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2007, 13:47   #1
SpeedMaster
Новичок
Джуниор
 
Регистрация: 21.01.2007
Сообщений: 2
Радость Задача с текстовыми файлами

Всем привет попросили найти задачу к следующему условию( сам ни чего непонимаю поэтому прошу вас решить) условие

Даны текстовые файла F и G. Переписать в файл Q начальные совпадающие слова из файлов F и G.

знаю что звучит коряво но как я понял надо переписать по одному слову (совподающему) в 3 файл нужно уже на вечер т,е, через прару часов... зарание благодарен
SpeedMaster вне форума Ответить с цитированием
Старый 21.01.2007, 18:48   #2
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Все-таки очень непонятное задание. Нужно исключить дубли или наоборот только дубли нас и интересуют? Чем разделяются слова в файлах? Совпадать могут только слова стоящие на одинаковых позициях или любое слово с любым словом? Если еще актуально - уточни.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 22.01.2007, 06:54   #3
Prowler
Форумчанин
 
Регистрация: 30.11.2006
Сообщений: 128
По умолчанию

Наверное так:
var
nf1,nf2,nf3:string;
tf1,tf2,tf3:text;
st1,st2:string;
begin
write('имя первого файла: ');
readln(nf1);
write('второго: ');
readln(nf2);
write('Имя файла для записи: ');
readln(nf3);
assign(tf1,nf1);
assign(tf2,nf2);
assign(tf3,nf3);
reset(tf1);
reset(tf2);
reset(tf3);
while not(eof(tf1)) do
begin
read(tf1,st1);
while not(eof(tf2)) do
begin
read(tf2,st2);
if st1=st2 then write(tf3,st1)
end;
end;
end.
Думаю будет работать проверить не могу.
nosce te ipsumj...
Prowler вне форума Ответить с цитированием
Старый 22.01.2007, 16:08   #4
SpeedMaster
Новичок
Джуниор
 
Регистрация: 21.01.2007
Сообщений: 2
По умолчанию

Нас интересуют 2 слова стоящие на любой позиции найти одинаковые
разделяют пробелы запятые точки.

задание мне тожене понятно относительно взяли упрепода написанотак так слово в слово ("даны текстовые файла" так и написано) до сих пор смеёмся...

за пример спасибо но он не рабочий т,к, не выбирает слова...

сам писал помогите испавить чтоб работало... знаю что коряво (смотри первый пост )

PROGRAM qqq;

uses
crt,strings;

const
kolsimv = 1000;

var
f1,f2,f3: Text;

m1,m2,m3,tm1,tm2:string; {array[1..kolsimv] of char;}

v,i,j,i1,j1,s1,s2:integer;

begin
clrscr;
assign(f1,'F.txt');
assign(f2,'G.txt');
assign(f3,'Q.txt');
reset(f1);
reset(f2);
rewrite(f3);
i:=1;
while not EOf(f1) and (i<=kolsimv) do
begin

read(f1,m1[i]);


i:=i+1;
end;
close(f1);

i:=1;
while not EOf(f2) and (i<=kolsimv) do
begin

read(f2,m2[i]);


i:=i+1;
end;
close(f2);

for i:=1 to 1000 do
begin
tm1[i1]:=m1[i];
if m1[i+1]=' ' then

begin
for j:=1 to 1000 do
begin
tm2[j1]:=m2[j];
if m2[j+1]=' '

then
begin
s2:=1;
for s1:=1 to 10 do
begin
if tm1[s1]=tm2[s2] then s2:=1 else s2:=0
end;

end;

end;

end;
for v:=1 to 10 do write(f3,tm1[v]);
end;
{for i:=1 to 1000 do write(m1[i]);}
readln
end.
SpeedMaster вне форума Ответить с цитированием
Старый 02.04.2007, 15:43   #5
RSLoader
_________
Пользователь
 
Аватар для RSLoader
 
Регистрация: 27.03.2007
Сообщений: 69
По умолчанию

Насчёт разделителей - разве только пробелы, точки и запятые?
А как же '-#13?!:;' Разве они не разделяют слова?
Код:
type
  mas=array[1..1000] of string[16];
const
  {Все буквы латинского и русского алфавита}
  w=[#65..#90,#97..#122,#192..#255,#168,#184];
var
  q:text;
  i,j,fwm,gwm:integer;
  fmas,gmas:mas;
{Функция создаёт массив wm всех неодинаковых слов, встречающихся в файле fname. 
 Слова состоят только из русских и латинских букв, дефисов и апострофов.
 Все остальные символы считаются разделителями.
 Регистр символов учитывается, т.е. слова "pascal" и "PasCaL" - неодинаковые.
 Возвращаемое значение - количество элементов массива}
function WordMas(fname:string;var wm:mas):integer;
var
  f:text;
  ch,ch1:char;
  s:string;
  i,n:integer;
  b,flag:boolean;
begin
  assign(f,fname);
  reset(f);
  n:=0;
  s:='';
  while not eof(f) do
  begin
    read(f,ch);
    if ch in w then s:=s+ch
    else
    if s<>'' then
    begin
      flag:=false;
      if ch in [#45,#39]  then
      begin
        read(f,ch1);
        if ch1 in w then s:=s+ch+ch1
        else flag:=true;
      end
      else flag:=true;
      if flag then
      begin
        b:=true;
        for i:=1 to n do if s=wm[i] then
        begin
          b:=false;
          break;
        end;
        if b then
        begin
          inc(n);
          wm[n]:=s;
        end;
        s:='';
      end;
    end;
  end;
  close(f);
  WordMas:=n;
end;
begin
  fwm:=WordMas('f.txt',fmas);
  gwm:=WordMas('g.txt',gmas);
  assign(q,'q.txt');
  rewrite(q);
  for i:=1 to fwm do
  for j:=1 to gwm do
  if fmas[i]=gmas[j] then
  begin
    writeln(q,fmas[i]);
    break;
  end;
  close(q);
end.

Последний раз редактировалось RSLoader; 02.04.2007 в 15:54.
RSLoader вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовыми файлами (Delphi) Omedus Помощь студентам 6 18.12.2012 00:31
Помогите по работе с текстовыми файлами ЕвгениуS Помощь студентам 9 17.01.2010 15:10
Работа с Текстовыми файлами wwww Общие вопросы Delphi 5 29.10.2007 11:17
Прога для работы с текстовыми файлами f-only Софт 4 04.10.2007 23:35
Работа с текстовыми файлами DartMrakkk Общие вопросы Delphi 3 14.07.2007 16:52