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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2009, 19:13   #1
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
Восклицание Задача по файлам нужна помощь!

Доброго времени суток!
Есть очень простая задача, но у меня она не выводит на экран что требуется и ошибки я не вижу. Подскажите, ок?
Код:
 {Данны два текстовых файла.
Добавить в конец первого файла содержимое второго.}
uses crt;
var
  s2,s1,fn1,fn2:string;
  f1:text;
  f2:text;

begin
  cls;
  write('Введите имя для первого файла: ');
  read(fn1);
  write('Введите имя для второго файла: ');
  read(fn2);

  {Записываем строку в первый файл}
  writeln('Введите данные в 1 файл: ');
  Assign(f1,fn1);
  rewrite(f1);
  readln(s1);
  close(f1);
  {Тоже самое проделываем со вторым}
  writeln('Введите данные во 2 файл: ');
  assign(f2,fn2);
  rewrite(f2);
  readln(s2);
  close(f2);
  {Ставим указатель в первом файле в его конец}
   Assign(f1,fn1);
  Append(f1);
  {Второй открываем просто для чтения\считывания}
  Assign(f2,fn2);
  Reset(f2);
  {в цикле считываем данные со второго и записываем в первый файл}
  while not Eof(f2) do
  begin
    readln(f2,s2);
    writeln(f1,s2);
  end;
  CLose(f1);
  CLose(f2);
{Открываем первый файл для чтения и здесь на экран он должен вывести "сплюсованные" данные с 2 файлов..}
assign(f1,fn2);
reset(f1);
readln(s2);

close(f1);
end.
Всем буду очень признателен!!!
RomT24 вне форума Ответить с цитированием
Старый 15.06.2009, 21:08   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, имена файлов читайте readln'ом, а не read'ом. Иначе могут быть проблемы.
Во-вторых, данные вы читаете, но в файлы не записываете.
В-третьих, в конце вы файл открываете, но из него ничего не читаете.

Код:
 {Данны два текстовых файла.
Добавить в конец первого файла содержимое второго.}
uses crt;
var
  s2,s1,fn1,fn2:string;
  f1:text;
  f2:text;

begin
  clrscr;
  write('Введите имя для первого файла: ');
  readln(fn1);
  write('Введите имя для второго файла: ');
  readln(fn2);

  {Записываем строку в первый файл}
  writeln('Введите данные в 1 файл: ');
  Assign(f1,fn1);
  rewrite(f1);
  readln(s1);
  writeln(f1,s1);
  close(f1);
  {Тоже самое проделываем со вторым}
  writeln('Введите данные во 2 файл: ');
  assign(f2,fn2);
  rewrite(f2);
  readln(s2);
  writeln(f2,s2);
  close(f2);
  {Ставим указатель в первом файле в его конец}
   Assign(f1,fn1);
  Append(f1);
  {Второй открываем просто для чтения\считывания}
  Assign(f2,fn2);
  Reset(f2);
  {в цикле считываем данные со второго и записываем в первый файл}
  while not Eof(f2) do
  begin
    readln(f2,s2);
    writeln(f1,s2);
  end;
  CLose(f1);
  CLose(f2);
{Открываем первый файл для чтения и здесь на экран он должен вывести "сплюсованные" данные с 2 файлов..}
assign(f1,fn2);
reset(f1);
while not Eof(f1) do
 begin
 readln(f1,s2);
 writeln(s2);
 end;

close(f1);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 15.06.2009, 21:13   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Вы во-первых ничего в файлы не записали, а во-вторых считать то считали, но вот на экран не вывели, и к тому же считали из второго файла
Код:
uses crt;
var
  s2,s1,fn1,fn2:string;
  f1:text;
  f2:text;

begin
  write('Введите имя для первого файла: ');
  readln(fn1);
  write('Введите имя для второго файла: ');
  readln(fn2);

  {Записываем строку в первый файл}
  writeln('Введите данные в 1 файл: ');
  Assign(f1,fn1);
  rewrite(f1);
  readln(s1);
  write(f1, s1);
  close(f1);
  {Тоже самое проделываем со вторым}
  writeln('Введите данные во 2 файл: ');
  assign(f2,fn2);
  rewrite(f2);
  readln(s2);
  write(f2, s2);
  close(f2);
  {Ставим указатель в первом файле в его конец}
   Assign(f1,fn1);
  Append(f1);
  {Второй открываем просто для чтения\считывания}
  Assign(f2,fn2);
  Reset(f2);
  {в цикле считываем данные со второго и записываем в первый файл}
  while not Eof(f2) do
  begin
    readln(f2,s2);
    writeln(f1,s2);
  end;
  CLose(f1);
  CLose(f2);
{Открываем первый файл для чтения и здесь на экран он должен вывести "сплюсованные" данные с 2 файлов..}
assign(f1,fn1);
reset(f1);
readln(f1, s2);
writeln(s2);

close(f1);
end.
------------------------------------------
Sazary Сорри, пока писал, Вы уже ответили
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 15.06.2009, 21:17   #4
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
Сообщение

Кстати работает только второй вариант программы - в первом (Sazary) он выводит только строку из второго файла.. но всё равно огромное спасибо и respect!!

Последний раз редактировалось RomT24; 15.06.2009 в 21:20.
RomT24 вне форума Ответить с цитированием
Старый 15.06.2009, 21:30   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от RomT24
Кстати работает только второй вариант программы - в первом (Sazary) он выводит только строку из второго файла..
Да.. Там просто нужно еще кое-что исправить:
Код:
assign(f1,fn1);
reset(f1);
иначе открывается второй файл.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь (задача с массивом)... Goldberg Паскаль, Turbo Pascal, PascalABC.NET 36 19.04.2011 20:31
Задача Whlie do нужна помощь shadowburn Паскаль, Turbo Pascal, PascalABC.NET 3 21.11.2008 19:06
[C] Задача на указатели . Нужна помощь shtkuh Помощь студентам 1 26.01.2008 08:47
Задача с матрицей(нужна помощь) VDK23RUS Помощь студентам 5 14.06.2007 12:55