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

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

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

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

Сообщение moskatov » 30.10.2006 16:12:56

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

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

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

Сообщение SergKam » 30.10.2006 18:55:13

брось на форму компонент 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;
   
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение moskatov » 31.10.2006 02:19:21

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

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

Подскажите, пожалуйста, как числа x и y в файле записать в обычном виде. Например, что бы число -3.098 и сохранялось как -3.098, а не -3.098000000000000E+000.
Аватара пользователя
moskatov
новенький
 
Сообщения: 10
Зарегистрирован: 30.10.2006 16:04:51
Откуда: Россия

Сообщение tria » 31.10.2006 11:38:45

Функция FormatFloat.
Можешь почитать про нее в хелпе к Делфи.
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

Сообщение moskatov » 31.10.2006 17:53:27

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

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

Как сделать тоже в Лазаре - не знаю. И в каком месте преобразовывать - после Rewrite(F)?
Аватара пользователя
moskatov
новенький
 
Сообщения: 10
Зарегистрирован: 30.10.2006 16:04:51
Откуда: Россия

Сообщение SergKam » 31.10.2006 19:29:55

Хелп надо читать по Delphi этож всетаки паскаль, а не С++
кроме того если в лазарусе в редакторе набрать интересующую
функцию, и нажать F1 то запустится браузер и если есть соединение с интернет откроется станица описания этой функции часто с примерами
например эта
http://freepascal.org/docs-html/rtl/sys ... float.html
в твоем случае
Код: Выделить всё
WriteLN(F,'Школьников=', FormatFloat('#.###',x) );
WriteLN(F,'Груп=', FormatFloat('#.###',y) );
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение moskatov » 31.10.2006 20:45:39

Здравствуйте!
Delphi, к сожалению, у меня нет. Да и книжек по Паскалю пока не приобрёл.
Всё работает. Большое спасибо. Извиняюсь за глупые вопросы.
Аватара пользователя
moskatov
новенький
 
Сообщения: 10
Зарегистрирован: 30.10.2006 16:04:51
Откуда: Россия

Сообщение SergKam » 01.11.2006 17:18:30

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

Сообщение SergKam » 01.11.2006 17:23:59

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

Раз интернет есть, то и книжку скачать можно
хотябы официальную документацию глянь
http://freepascal.ru/wiki/index.php/Fre ... 0%B4%D1%8B
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение moskatov » 01.11.2006 18:17:48

Здравствуйте!
Спасибо за информацию. Справку и книжки в формате PDF с freepascal.org скачал; читаю, разбираюсь.
Спасибо.
Аватара пользователя
moskatov
новенький
 
Сообщения: 10
Зарегистрирован: 30.10.2006 16:04:51
Откуда: Россия


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51

Рейтинг@Mail.ru