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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2014, 20:27   #1
qpMAXqp
Пользователь
 
Аватар для qpMAXqp
 
Регистрация: 20.11.2013
Сообщений: 16
Подмигивание Запись текста в файл. Delphi 7

Здравствуйте.
Хочу записать максимальный элемент массива в текстовый документ. По красоте, он должен ещё и открыться что бы было 2 окошка: Delphi и текстового файла, в котором будет записан макс элемент массива


Код:
 procedure TForm1.btn1Click(Sender: TObject);
var a: array [1..10] of integer;
max, i: integer;
f: TextFile;

begin
  AssignFile(f, 'c:\exampleMax.txt');
  Rewrite(f);
  Randomize;
    form1.mmo1.Lines.Clear;
  max:=0;

   for i :=1 to 10 do  begin
     a[i] :=Random(99);

     if a[i] > max then
      max:= a[i];
        end;
    for i :=1 to 10 do
      form1.mmo1.Lines.Add(IntToStr(a[i]));
      form1.mmo1.Lines.Add(' максимальный элемент: ' + IntToStr(max)); // в мемо вывел
      Writeln(f, max); // вывел в файл
      CloseFile(f);
end;
Программа зависает при запуске.
Признателен за любые подсказки и помощь.
qpMAXqp вне форума Ответить с цитированием
Старый 29.04.2014, 21:06   #2
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

Объект точно называется mmo1? Может Memo1?
В целом код рабочий, проверьте.
ATL вне форума Ответить с цитированием
Старый 29.04.2014, 21:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Программа зависает при запуске.
Представленный код к запуску не имеет никакого отношения.
Поэтому - полный код в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.04.2014, 22:39   #4
qpMAXqp
Пользователь
 
Аватар для qpMAXqp
 
Регистрация: 20.11.2013
Сообщений: 16
По умолчанию

Мне бы студийный номер :D
Вот код:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    btn1: TButton;
    mmo1: TMemo;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
 procedure TForm1.btn1Click(Sender: TObject);
var a: array [1..10] of integer;
max, i: integer;
f: TextFile;

begin
  AssignFile(f, 'c:\exampleMax.txt');
  Rewrite(f);
  Randomize;
    form1.mmo1.Lines.Clear;
  max:=0;

   for i :=1 to 10 do  begin
     a[i] :=Random(99);

     if a[i] > max then
      max:= a[i];
        end;
    for i :=1 to 10 do
      form1.mmo1.Lines.Add(IntToStr(a[i]));
      form1.mmo1.Lines.Add('максимальный элемент: '+ IntToStr(max));
      Writeln(f, max);
      CloseFile(f);
end;



end.
qpMAXqp вне форума Ответить с цитированием
Старый 29.04.2014, 22:39   #5
qpMAXqp
Пользователь
 
Аватар для qpMAXqp
 
Регистрация: 20.11.2013
Сообщений: 16
Смущение

Цитата:
Сообщение от ATL Посмотреть сообщение
Объект точно называется mmo1? Может Memo1?
В целом код рабочий, проверьте.
Да да, точно =)
qpMAXqp вне форума Ответить с цитированием
Старый 29.04.2014, 22:59   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не понимаю как этот код может стать причиной зависания при запуске, если только btn1Click не является событием для OnCreate формы.
Или имелось ввиду "когда я запускаю мышку по кнопке"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.04.2014, 08:39   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

указание Form1 для mmo1 совершенно не обязательно в методе формы.
я бы так написал:
Код:
procedure TForm1.btn1Click(Sender: TObject);
var a: array[1..10] of integer;
  max, i: integer;
  f: TextFile;

begin
  Randomize;
  AssignFile(f, 'c:\exampleMax.txt');
  Rewrite(f);
  mmo1.Lines.Clear;

  a[1] := Random(99);
  max := a[1];

  for i := 2 to 10 do begin
    a[i] := Random(99);

    if a[i] > max then
      max := a[i];
  end;
  for i := 1 to 10 do
    mmo1.Lines.Add(IntToStr(a[i]));
  mmo1.Lines.Add('максимальный элемент: ' + IntToStr(max));
  Writeln(f, max);
  CloseFile(f);
end;
но это не принципиально. Ваш код вполне себе работоспособный.
В чём проявляется зависание?!
Рискну предположить, что у Вас Windows 7 или 8 и у программы банально нет прав писать в корень диска C:\
изменить путь для сохраняемого файла (например, так:
Код:
  AssignFile(f, ExtractFilePath(Application.ExeName) + 'exampleMax.txt');
тогда файл будет создан в том же каталоге, где лежит ваш EXE файл.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.04.2014, 14:20   #8
qpMAXqp
Пользователь
 
Аватар для qpMAXqp
 
Регистрация: 20.11.2013
Сообщений: 16
По умолчанию

Цитата:
Рискну предположить, что у Вас Windows 7 или 8 и у программы банально нет прав писать в корень диска C:\
изменить путь для сохраняемого файла (например, так:
Код:
  AssignFile(f, 'c:\1\exampleMax.txt');
Вы были правы, изменил папку и файл создался - уже круто )
Возможно ли его открыть как-нибудь,используя btn1Click ?)
Ввёл rewrite(f);
запустил программу, нажал на кнопку, и программа зависла
А так, уже норм. Благодарю )
qpMAXqp вне форума Ответить с цитированием
Старый 30.04.2014, 14:36   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от qpMAXqp Посмотреть сообщение
Вы были правы, изменил папку и файл создался - уже круто )
ну, это уже хорошо.

Цитата:
Сообщение от qpMAXqp Посмотреть сообщение
Возможно ли его открыть как-нибудь,используя btn1Click ?)
Ввёл rewrite(f);
запустил программу, нажал на кнопку, и программа зависла
А так, уже норм. Благодарю )
не понял, что именно Вы хотите сделать.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.04.2014, 18:53   #10
qpMAXqp
Пользователь
 
Аватар для qpMAXqp
 
Регистрация: 20.11.2013
Сообщений: 16
По умолчанию

В итоге файл должен быть открыт, при нажатии на кнопку, в котором будет записан макс элемент.
qpMAXqp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись текста в файл. RageGod Общие вопросы Delphi 21 05.05.2013 01:07
Запись текста в текстовый файл shadowmvn Помощь студентам 1 23.12.2012 13:17
Запись текста файл с кодировкой windows-1251 в Delphi 7 Cav Общие вопросы Delphi 5 02.02.2011 18:21
Запись текста в файл KoBRaAndrey Общие вопросы Delphi 1 06.10.2009 23:42
Чтение и Запись текста из\в файл(а), C++ FastDead2 Помощь студентам 20 14.05.2009 00:01