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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2013, 13:42   #1
Zaraaa
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 83
По умолчанию Файлы

Дан файл f, компоненты которого являются символами. Получить копию файла в файле g, не используя стандартных процедур.
компоненты которого являются символами- я так понимаю, это значит, что только символы должны читаться но у меня не только символы, но и цифры и буквы читаются, это не правильно да??? помогите разрешить проблему и как это сделать в коде, что изменить?
Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
   
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
 
var
  Form1: TForm1;
 
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var   f,g:textfile;
      buf:char;
begin
  AssignFile(f, 'd:\data.txt');
  AssignFile(g, 'd:\result.txt');
  reset(f);
  rewrite(g);
  while not eof(f) do
  begin
     read(f, buf); {чтение из файла}
     write(g, buf);
     label1.Caption:= label1.Caption+buf;
  end;
  closefile(f);
  closefile(g);
end;
 
 
 
procedure TForm1.Button2Click(Sender: TObject);
var   f:textfile;
      temp:string[1];
      buf:char;
begin
    AssignFile(f, 'd:\data.txt');
    rewrite(f);
    repeat
    temp:=PChar(InputBox('Ввод cимвола','Введите cимвол. Введите * для окончания ввода',''));
    buf:=temp[1];
    write(f, buf); {запись в файл}
    until buf='*';
    closefile(f);
end;
 
end.
Zaraaa вне форума Ответить с цитированием
Старый 17.11.2013, 14:26   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Цифры и буквы - символы.
А что значит, не используя стандартных процедур? Тогда reset/rewrite нельзя использовать?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 17.11.2013, 19:54   #3
Zaraaa
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Цифры и буквы - символы.
А что значит, не используя стандартных процедур? Тогда reset/rewrite нельзя использовать?
assign
reset
rewrite
close-это все стандартные процедуры,а как не использовать их, не понятно что вместо них теперь в коде использовать, помогитеее(((
Zaraaa вне форума Ответить с цитированием
Старый 17.11.2013, 20:18   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Нашел вот кое-что:

Стандартные паскалевские процедуры работы с файлами не используется, так что все по чесноку
Копирование методом потока
Код:
Procedure FileCopy(Const SourceFileName, TargetFileName: String);

Var

S,T   : TFileStream;

Begin

S := TFileStream.Create(sourcefilename, fmOpenRead );

try

T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate);

try

   T.CopyFrom(S, S.Size ) ;

   FileSetDate(T.Handle, FileGetDate(S.Handle));

finally

  T.Free;

end;

finally

S.Free;

end;

end;
Копирование методами Windows

Код:
uses ShellApi; // !!! важно

 

function WindowsCopyFile(FromFile, ToDir : string) : boolean;

var F : TShFileOpStruct;

begin

F.Wnd := 0; F.wFunc := FO_COPY;

FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);

ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);

F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;

result:=ShFileOperation(F) = 0;

end;

// пример копирования

procedure TForm1.Button1Click(Sender: TObject);

begin

if not WindowsCopyFile('C:\UTIL\ARJ.EXE', GetCurrentDir) then

  ShowMessage('Copy Failed');

end;

Последний раз редактировалось ZX Spectrum-128; 17.11.2013 в 20:20.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 17.11.2013, 23:02   #5
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Но если честно, я бы уточнил задание. Что-то здесь не так.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы: Составить программу, которая перепишет фамилии в отдельные файлы в соответствии с названием группы Гульвира Помощь студентам 1 23.05.2013 10:04
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
Не сохраняет файлы (Создает файлы пустышки) Rock231 Помощь студентам 2 25.12.2010 12:31
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53