Страница 1 из 3

Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 18:15
DOM
Собсвтенно задачу сделал почти.Осталось сделать следующее:
1)Определить, являются ли 2 первых символа файла цифрами???
2)Если да, то узнать, является ли число, образованное этими цифрами, четным???

Это очень просто должно быть, но хоть убейте не помню как.
Вот код, в котором текстовый файл открывается в Memo:

Код: Выделить всё

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    BitBtn1: TBitBtn;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  f:TextFile;
  fName:String[80];
  buf:String[80];
begin
  if not OpenDialog1.Execute
    then exit;
  fName:=OpenDialog1.FileName;
  Form1.Caption:=fName;
  AssignFile(f,FName);
  try
    Reset(f);
  except
    on EInOutError do
  begin
    ShowMessage('Ошибка открытия');
    exit;
  end;
end;
  while not EOF(f) do
    begin
      readln(f,buf);
      Memo1.Lines.Add(buf);
    end;
  CloseFile(f);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
 OpenDialog1.Filter:='Текстовые файлы(*txt)';
end;

end.
Еще вроде прога должна только текстовые открывать, а у меня все подряд, хотя не знаю почему???
Заранее спасибо!!!

Re: Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 18:41
BHy4ok
1) Первые два символа как у вас считываются ? они оба должны быть в одной строке или построчно ?

Re: Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 18:44
DOM
символы должны быть в одной строке друг за другом как в обычном тексте

Re: Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 18:46
BHy4ok
2) Тут немного поясни, что значит образованными ? У меня с математикой было не очень.

Re: Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 18:54
BHy4ok
Зачем так все нагромаждать то ?
Весь твой код пишется проще и записывается в 2 строчки. Если работать уже с готовым мемо, а не с файлом.
Если условие верное, то " i " - это твое число. Если это число четное(как я понял по второму вопросу, хотя и не до конца), то выводится сообщение.
Странная у тебя запись на фильтр. Фильтр пропиши в свойствах компонента.(txt | *.txt)
[syntax='Delphi']
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
i: integer;
begin
memo1.Clear;
i:=0;
if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(Opendialog1.FileName);
S := Memo1.Text;
if (s[1] in ['0'..'9']) and (s[2] in ['0'..'9']) then
i := StrToInt(S[1]+S[2]);
if i <> 0 then
if ( ( i mod 2 ) = 0 ) then
ShowMessage('Число четное');
end;
[/syntax]

Re: Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 19:11
DOM
именно что с файлом то и нада работать))

Re: Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 19:15
DOM
Во-все доработал с файлами чтоб.Спасибо

Re: Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 19:15
BHy4ok
DOM писал(а):именно что с файлом то и нада работать))

Что ты подразумеваешь под файлом ? У тебя здесь и так идет работа с файла который ты открываешь в ручную. Или тебе нужен именно в коде "f:TextFile;" принципиально т.к. сказал препод ? Если так то просто убери 'Execute' у меня и вставь ниже этот код. Все тоже самое.

Re: Задача на текстовые файлы(Delphi)

Добавлено: 04 май 2008, 19:34
DOM
Ну да, препод у нас принципиальный(сказал-как отрезал).Я так и сделал-убрал вначале в твоем коде условие и вставил его(код без условия) в конец процедуры...thanks ;)

Re: Задача на текстовые файлы(Delphi)

Добавлено: 12 май 2008, 18:54
DOM
Блин, файл оказывается надо было file of char задавать.Вопрос: как вывести символьный файл(желательно в Memo) :confused: