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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2012, 16:12   #1
dearkato
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 29
По умолчанию работа с файлами в дельфи

Даны символьные файлы f1 и f2. Поменять местами содержимое файлов не используя стандартных процедур.
dearkato вне форума Ответить с цитированием
Старый 15.02.2012, 19:33   #2
deathNC
Пользователь
 
Аватар для deathNC
 
Регистрация: 10.01.2010
Сообщений: 44
По умолчанию

dearkato, что в Вашем понимании "стандартные процедуры"?
Если ответите, помогу с задачей
deathNC вне форума Ответить с цитированием
Старый 15.02.2012, 20:37   #3
dearkato
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 29
По умолчанию

Цитата:
Сообщение от deathNC Посмотреть сообщение
dearkato, что в Вашем понимании "стандартные процедуры"?
Если ответите, помогу с задачей
стандартные - то есть встроенные. такие как, например, в строках - удаление элемента, конкатинация, автоматический подсчет длины строки и т.д., также стандартными являются dec,inc,pred,suc. и из этого следует, что стандартными также будут write,writeln,read,readln, без которых как мне кажется решить эту задачу будет очень сложно
dearkato вне форума Ответить с цитированием
Старый 15.02.2012, 20:47   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Есть у меня идейка, правда хз, оценит препод, или нет :D
Код:
program ChangeFilesNames;
{$APPTYPE CONSOLE}
uses
  SysUtils;
begin
  renamefile('C:\1.txt','C:\tmp.txt');
  renamefile('C:\2.txt','C:\1.txt');
  renamefile('C:\tmp.txt','C:\2.txt');
end.
Думаю идея понятна. Вместо текстовиков пишешь нужные файлы.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 15.02.2012, 21:38   #5
deathNC
Пользователь
 
Аватар для deathNC
 
Регистрация: 10.01.2010
Сообщений: 44
По умолчанию

whatever, хитро
Хотя преподаватель ТС вряд ли это оценит. Он (преподаватель) не поймёт,что тут написано

dearkato, а BlockRead - это тоже стандартная процедура?

Последний раз редактировалось Stilet; 16.02.2012 в 22:28.
deathNC вне форума Ответить с цитированием
Старый 15.02.2012, 21:42   #6
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Сообщение от deathNC Посмотреть сообщение
whatever, хитро
Хотя преподаватель ТС вряд ли это оценит. Он (преподаватель) не поймёт,что тут написано
Ну преподы сами ставят такие условия. "Забей гвоздь не пользуясь руками, ногами и головой". Вообще, мне бы было интересно, какое решение предполагалость.
Цитата:
Сообщение от deathNC Посмотреть сообщение
dearkato, а BlockRead - это тоже стандартная процедура?
Думаешь препод это знает ?
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 15.02.2012, 22:01   #7
deathNC
Пользователь
 
Аватар для deathNC
 
Регистрация: 10.01.2010
Сообщений: 44
По умолчанию

whatever, хотя, ты прав :D
А хотя, может преподу и самому интересно. И решение он не знает
deathNC вне форума Ответить с цитированием
Старый 16.02.2012, 16:28   #8
dearkato
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 29
По умолчанию

deathNC, думаю с blockread будет уже слишком заумно, наверное в этой задаче имелось ввиду использовать не готовые процедуры для замены содержимого двух файлов, а через write и read.

я нашла такой вариант для решения данной задачи:

Код:
const
  a='aaa.txt';
  b='bbb.txt';
  c='ccc.txt';
 
var
  z,x,v: text;
  st: string;
 
begin
  assign(z,a);
  assign(x,c);
  reset(z);
  rewrite(x);
  while not eof(z) do
    begin
      readln(z,st);
      writeln(x,st);
    end;
  close(z);
  close(x);
  assign(v,b);
  assign(z,a);
  reset(v);
  rewrite(z);
  while not eof(v) do
    begin
      readln(v,st);
      writeln(z,st);
    end;
  close(v);
  close(z);
  assign(x,c);
  assign(v,b);
  while not eof(x) do
    begin
      readln(x,st);
      writeln(v,st);
    end;
  close(x);
  close(v);
end.
dearkato вне форума Ответить с цитированием
Старый 16.02.2012, 17:58   #9
deathNC
Пользователь
 
Аватар для deathNC
 
Регистрация: 10.01.2010
Сообщений: 44
По умолчанию

dearkato, но Вы же писали, что WriteLn/ReadLn - это стандартные процедуры.
Есть ещё файловые потоки - TFileStream
Код:
var
  Stream1, Stream2: TFileStream;
begin
  try
    Stream1 := TFileStream.Create('a.txt', fmOpenRead);
    Stream2 := TFileStream.Create('temp.txt', fmCreate or fmOpenWrite);
    Stream2.Seek(0, soFromEnd);
    Stream2.CopyFrom(Stream1, Stream1.Size);
    Stream1.Free;
    Stream2.Free;
    Stream1 := TFileStream.Create('b.txt', fmOpenRead);
    Stream2 := TFileStream.Create('a.txt', fmCreate or fmOpenWrite);
    Stream2.Seek(0, soFromEnd);
    Stream2.CopyFrom(Stream1, Stream1.Size);
    Stream1.Free;
    Stream2.Free;
    Stream1 := TFileStream.Create('temp.txt', fmOpenRead);
    Stream2 := TFileStream.Create('b.txt', fmCreate or fmOpenWrite);
    Stream2.Seek(0, soFromEnd);
    Stream2.CopyFrom(Stream1, Stream1.Size);
  finally
    Stream1.Free;
    Stream2.Free;
  end;
end;
Накалякал спросони, но вроде должно работать
deathNC вне форума Ответить с цитированием
Старый 16.02.2012, 18:55   #10
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,871
По умолчанию

есть такая маленькая задача в логике: как поменять значения двух переменных, не используя третью переменную.
и вот решение.
Код:
b:=b-a;
a:=b+a;
b:=a-b;
но если вам препод скажет, что нельзя использовать третий файл, то можно просто посимвольно считывать каждый файл, далее симол переводить в код (скажем буква 'я' ->255), менять коды местами (смотрим код вверху) и обратно записывать в файлы. и так до конца перебрать все символы в файлах
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами в дельфи T(h)rasher Помощь студентам 8 06.10.2011 00:00
Работа с MySQL в Дельфи 7 drakhar БД в Delphi 8 01.12.2010 21:13
Работа в Дельфи!!! L0102591 Помощь студентам 2 11.06.2010 04:34
Работа с папками в Дельфи Космос Помощь студентам 2 10.10.2007 20:47