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

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

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

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

Купить рекламу на форуме 85 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2010, 21:49   #1
Kati
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 34
По умолчанию Ошибка! Нужно записать содержимое Memo в файл

Написать программу, генерирующую случайным образом 30 чисел (от -100 до 100). Полученные числа записать в файл следующим образом: если число отрицательное – записать модуль числа, если число положительное - записать квадрат числа.
Я сделала так:

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
f:TextFile;
mas1 ,mas2 : array [-100..100] of real;
i:integer;
implementation

{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
var resp: word; //ответ пользователя
begin
AssignFile(f, 'd:\pos.txt');
{$I-}
Reset (f); // открыть файл
{$I+}
if IOResult=0 then button2.Enabled:=true //кнопка добавить доступна
else
begin
resp:=MessageDlg('Файл не найден'+'Создать новый файл',mtInformation, [mbYes, mbNo],0);
if resp=mrYes then
begin
{$I-}
rewrite(f);
{$I+}
if IOResult=0 then button2.Enabled:=true else ShowMessage('Ошибка создания файла');
end;
end;
end;
procedure genslych;// генерация 1 последовательности
var
XX:real;
begin
for i:=1 to 30 do
begin
xx:=random(201)-100;
mas1[i]:=random(201)-100;
Form1.Memo1.Lines.Add(IntToStr(i)+' . '+FloatToStr(mas1[i]));
end;
end;
procedure gen;// генерация 2 последовательности
begin
for i:=1 to 30 do
begin
if mas1[i]>=0 then mas2[i]:=mas1[i]*mas1[i] else mas2[i]:=abs(mas1[i]) ;
end;
for i:=1 to 30 do
begin
Form1.Memo2.Lines.Add(IntToStr(i)+' . '+FloatToStr(mas2[i]));
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
genslych;
gen;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
{write (f, Memo2.Lines(FloatToStr(mas2[i]))); }
Memo2.Lines.SaveToFile('d:\pos.txt' );
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(f); //закрыть файл

end;

end.

Все генерирутеся, файл создается, а ничего не сохраняется.
Kati вне форума Ответить с цитированием
Старый 19.10.2010, 22:00   #2
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStrings;
  i, chislo: Integer;
begin
  randomize;
  SL := TStringList.Create;
  try
    for i := 1 to 30 do
    begin
      chislo := random(201)-100;
      if chislo < 0 then 
        chislo := -chislo
      else
        chislo := chislo * chislo;

      SL.Add(IntToStr(chislo));
    end;
    
    Sl.SaveToFile('D:\pos.txt');
  finally
    SL.Free;
  end;
end;
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 19.10.2010, 22:08   #3
Kati
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 34
По умолчанию

Спасибо! Коротко и ясно.
Kati вне форума Ответить с цитированием
Старый 19.10.2010, 22:16   #4
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

незачто. главное что бы вы понимали что тут происходит.
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 85 тыс рублей в месяц

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать содержимое регистра в ячейку памяти new player Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 01.09.2010 03:48
содержимое TStringList в Memo OPF_Nik Помощь студентам 5 31.01.2010 17:22
записать содержимое Listview в файл Leo20 Общие вопросы Delphi 0 26.11.2009 13:01
Записать содержимое буфера обмена в файл. sw3n Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 17.07.2009 02:39
Как записать в переменную содержимое RichEdit? nusik Общие вопросы C/C++ 1 12.06.2009 09:12