Книга: Delphi. Учимся на примерах

Полный исходный код модуля

Полный исходный код модуля

Код модуля программы Статистика представлен в листинге 3.1.

Листинг 3.1. Модуль программы Статистика

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm)
 Label1: TLabel;
 Label2: TLabel;
 Label3: TLabel;
 Label4: TLabel;
 Label5: TLabel;
 words: TLabel;
 symbols: TLabel;
 spaces: TLabel;
 lines: TLabel;
 Button1: TButton;
 Edit1: TEdit;
 Button2: TButton;
 Open1: TOpenDialog;
 procedure Button1Click(Sender: TObject);
 procedure Button2Click(Sender: TObject);
private
 { Private declarations }
public
 { Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ButtonlClick(Sender: TObject); begin
 //начинаем обзор с текущей папки
 Open1.InitialDir:= GetCurrentDir;
 if Open1.Execute // открываем диалоговое окно выбора файла
 then Edit1.Text:= Open1.FileName
 else ShowMessage('Файл не выбран!');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
 f: file of byte; //Переменная для работы с файлом
 str: byte; //Содержит считанный байт
 oldstr, symbol, word, line, space: Integer;
begin
 symbol:= 0; //обнуляем предыдущие результаты
 word:= 0;
 space:= 0;
 line:= 0;
 if FileExists(Edit1.Text) //проверяем, существует ли файл
 then begin
  AssignFile(f,Edit1.Text) ; //связываем файл с переменной f
  reset(f); //открываем файл на чтение
  while not eof(f) do
  begin //читаем файл до достижения конца файла
   oldstr:= str;
   Read(f, str); //считываем символ в переменную str
   if ((str <> 32) and (str <> 13) and (str <> 10))
    then symbol := symbol + 1; {пополняем количество символов, если он не является переводом строки, кодом новой строки или пробелом}
   //если считан пробел, пополним счетчик пробелов
   if str = 32 then space:= space + 1;
   if str = 13 then line:= line + 1; //счетчик строк
   if ((str = 32) or (str = 13) or (str = 10)) then
    if ((oldstr<>32) and (oldstr<>10) and (oldstr<>13))
     then word: = word + 1; //счетчик слов
  end;
  CloseFile(f); //закрываем файл
 end
 else ShowMessage('Ошибка: Файл не найден !'); {если файл не найден, то выводим сообщение об ошибке}
  symbols.caption:= IntToStr(symbol); //Выводим всю
  spaces.caption:= IntToStr(space); //полученную
  lines.caption:=IntToStr(line); //информацию о файле
  words.caption:= IntToStr(word);
 end;
end.

? Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter 03.

Оглавление книги


Генерация: 0.331. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз