Сохранение в файл

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
moskatov
новенький
Сообщения: 10
Зарегистрирован: 30.10.2006 15:04:51
Откуда: Россия
Контактная информация:

Сохранение в файл

Сообщение moskatov »

Здравствуйте.
Есть необходимость при нажатии button сохранить в файл через диалог сохранения значения числовых переменных A и B (real или double) вместе с произвольным текстом. Чтобы, например, открыть на диске D файл temp.txt, записать в него примерно следующее:

количество школьников 56;
количество групп 2;

Cпасибо всем кто поможет.
SergKam
постоялец
Сообщения: 251
Зарегистрирован: 16.11.2005 20:31:11
Откуда: Украина,Харьков

Сообщение SergKam »

брось на форму компонент TSaveDialog

на кнопке двараза щелкни и в обработчик TBootonOnClick1
впиши

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

procedure TForm1.Button1Click(Sender: TObject);
Var F : TextFile;
begin
//это для примера
x:=10;
y:=20;
//

  if SaveDialog1.Execute then
  begin
 System.Assign(F,SaveDialog1.FileName);
 Rewrite(F);
 WriteLN(F,'Школьников=', x );
 WriteLN(F,'Груп=', y );
 System.Close(F);
  end;
end;
   
Аватара пользователя
moskatov
новенький
Сообщения: 10
Зарегистрирован: 30.10.2006 15:04:51
Откуда: Россия
Контактная информация:

Сообщение moskatov »

Здравствуйте.
Всё работает. Спасибо. Появился один вопрос. Результат работы программы такой:

Школьников= 1.000000000000000E+001
Груп= 2.000000000000000E+001

Подскажите, пожалуйста, как числа x и y в файле записать в обычном виде. Например, что бы число -3.098 и сохранялось как -3.098, а не -3.098000000000000E+000.
tria
постоялец
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10
Контактная информация:

Сообщение tria »

Функция FormatFloat.
Можешь почитать про нее в хелпе к Делфи.
Аватара пользователя
moskatov
новенький
Сообщения: 10
Зарегистрирован: 30.10.2006 15:04:51
Откуда: Россия
Контактная информация:

Сообщение moskatov »

Здравствуйте.
Как я понял, надо использовать FormatFloat для преобразования научной нотации в числа с плавающей запятой. Для Borland C++ это

static AnsiString __fastcall FormatFloat(const AnsiString& format,
const long double& value);

Как сделать тоже в Лазаре - не знаю. И в каком месте преобразовывать - после Rewrite(F)?
SergKam
постоялец
Сообщения: 251
Зарегистрирован: 16.11.2005 20:31:11
Откуда: Украина,Харьков

Сообщение SergKam »

Хелп надо читать по Delphi этож всетаки паскаль, а не С++
кроме того если в лазарусе в редакторе набрать интересующую
функцию, и нажать F1 то запустится браузер и если есть соединение с интернет откроется станица описания этой функции часто с примерами
например эта
http://freepascal.org/docs-html/rtl/sys ... float.html
в твоем случае

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

 WriteLN(F,'Школьников=', FormatFloat('#.###',x) );
 WriteLN(F,'Груп=', FormatFloat('#.###',y) );
Аватара пользователя
moskatov
новенький
Сообщения: 10
Зарегистрирован: 30.10.2006 15:04:51
Откуда: Россия
Контактная информация:

Сообщение moskatov »

Здравствуйте!
Delphi, к сожалению, у меня нет. Да и книжек по Паскалю пока не приобрёл.
Всё работает. Большое спасибо. Извиняюсь за глупые вопросы.
SergKam
постоялец
Сообщения: 251
Зарегистрирован: 16.11.2005 20:31:11
Откуда: Украина,Харьков

Сообщение SergKam »

кстати насчет хелпа, скачал с freepascal.org архив fpc-doc.tar.gz с хелпом в html
распаковал в лазарусе прописал в разделе "справка"-"Насроить" закладка базы данных указал где искать описания rtl и fcl.
И о чудо! у меня наконец есть локальная встроеная справка.
только вот не пойму где взять такойже архивчик по LCL
SergKam
постоялец
Сообщения: 251
Зарегистрирован: 16.11.2005 20:31:11
Откуда: Украина,Харьков

Сообщение SergKam »

Да и книжек по Паскалю пока не приобрёл.

Раз интернет есть, то и книжку скачать можно
хотябы официальную документацию глянь
http://freepascal.ru/wiki/index.php/Fre ... 0%B4%D1%8B
Аватара пользователя
moskatov
новенький
Сообщения: 10
Зарегистрирован: 30.10.2006 15:04:51
Откуда: Россия
Контактная информация:

Сообщение moskatov »

Здравствуйте!
Спасибо за информацию. Справку и книжки в формате PDF с freepascal.org скачал; читаю, разбираюсь.
Спасибо.
Ответить