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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2017, 11:05   #1
furgingerbread
Пользователь
 
Регистрация: 14.11.2016
Сообщений: 12
По умолчанию Работа с файлами

Доброго времени суток!

Есть программа, которая загружает текстовый файл File1, далее проводятся такие действия: в другую строку записывается из этого файла слова в квадратных скобках и загружаются в другой файл File2. Проблема заключается в выводе результата, то есть последовательности букв в скобках из выходного файла File2, в Memo2.

Ошибки не возникает, но результат не выводится.

Подскажите, что делаю неправильно?

Спасибо.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Memo1: TMemo;
    Panel1: TPanel;
    Memo2: TMemo;
    Panel2: TPanel;
    Edit1: TEdit;
    Edit2: TEdit;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

                  Sn, Sk: String;
                  Kz, N, I: Integer;
                  Fa, Fb: TextFile;

implementation

{$R *.dfm}


            {Запись исходных данных в файл,
            обработчик пункта меню 'Записать'}



procedure TForm1.N2Click(Sender: TObject);
begin
Memo1.Lines.LoadFromFile('D:\My_files\File1.txt');
end;

{Обработка файла}



procedure TForm1.N3Click(Sender: TObject);
begin
Reset(Fa);
Rewrite(Fb);
Kz:=0;
N:=0;
Sk:='';
 while Not Eof(Fa) do begin
  Read(Fa, Sn);
  if (Sn[I] = '[') then begin
    while Sn[I] <> ']' do
        begin
        Kz:=Kz+1; 
        Sk:=Sk + Sn[I];
        end;
   end;
N:= N + 1;
end;

WriteLn(Fb, Sk);
Edit1.Text:=FloatToStr(Kz);
Edit2.Text:=FloatToStr(N);
CloseFile(Fa); CloseFile(Fb);
Memo2.Lines.LoadFromFile('D:\My_files\File2.txt');
end;

             {пункт меню "Выход"}


procedure TForm1.N4Click(Sender: TObject);
begin
Close;
end;

             {пункт меню "О программе"}


procedure TForm1.N7Click(Sender: TObject);
begin
ShowMessage('Программа обработки файлов: вывести последовательность букв в []');
end;

Initialization
AssignFile(Fa, 'D:\My_files\File1.txt');
AssignFile(Fb, 'D:\My_files\File2.txt');
Finalization

end.

Последний раз редактировалось furgingerbread; 19.03.2017 в 11:08.
furgingerbread вне форума Ответить с цитированием
Старый 19.03.2017, 11:51   #2
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Код:
procedure TForm1.N3Click(Sender: TObject);
Процедура работать не будет, Вы в цикл заходите на задав i т.е. в нем может быть любое мусорное значение. Инкрементации для i так же нет.
Replicant вне форума Ответить с цитированием
Старый 19.03.2017, 12:24   #3
furgingerbread
Пользователь
 
Регистрация: 14.11.2016
Сообщений: 12
По умолчанию

Проблема решена, большое спасибо за помощь

Код:
procedure TForm1.N3Click(Sender: TObject);
var
I, J: Integer;
begin
Reset(Fa);
Rewrite(Fb);
Kz:=0;
Sk:='';
while Not Eof(Fa) do begin
Read(Fa, Sn);
  for I:=1 to Length(Sn) do
    begin
       if (Sn[I] = '[') then begin
          J:=I;
          while Sn[J+2] <> ']' do
             begin
             Kz:=Kz+1;
             Sk:=Sk + Sn[J+1];
             J:=J+1;
             end;
        end;
     end;
end;
WriteLn(Fb, Sk);
Edit2.Text:=FloatToStr(Kz);
CloseFile(Fa); CloseFile(Fb);
Memo2.Lines.LoadFromFile('D:\My_files\File2.txt');
end;
furgingerbread вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторная работа(очень простая) Структуры, работа с файлами yurda Фриланс 2 11.06.2016 08:44
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Работа с файлами Fora Общие вопросы C/C++ 7 15.06.2011 23:06
Работа с файлами. С. Alpha Centauri Общие вопросы C/C++ 12 15.04.2011 09:19
Работа с файлами в С Tasha_no Помощь студентам 0 26.12.2010 17:08