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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2006, 00:15   #1
malevich
Пользователь
 
Аватар для malevich
 
Регистрация: 01.11.2006
Сообщений: 63
По умолчанию Format

Прошу помощи:

допустим есть число 600. Как его напечать в файл в таком формате 0.60000D+03

Спасибо!
malevich вне форума Ответить с цитированием
Старый 28.12.2006, 09:19   #2
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
Сообщение от malevich Посмотреть сообщение
Прошу помощи:

допустим есть число 600. Как его напечать в файл в таком формате 0.60000D+03
Спасибо!
Решалось "в лоб":
Код:
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
     x:integer;
     y:real;
begin
assignfile(f,'C:\111.txt');
rewrite(f);
x:=600;
y:=x;
writeln(f,y);
closefile(f);
end;
В файле получилось вот это: 6.00000000000000E+0002
zetrix вне форума Ответить с цитированием
Старый 29.12.2006, 14:35   #3
malevich
Пользователь
 
Аватар для malevich
 
Регистрация: 01.11.2006
Сообщений: 63
По умолчанию

Цитата:
Сообщение от zetrix Посмотреть сообщение
Решалось "в лоб":
Код:
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
     x:integer;
     y:real;
begin
assignfile(f,'C:\111.txt');
rewrite(f);
x:=600;
y:=x;
writeln(f,y);
closefile(f);
end;
В файле получилось вот это: 6.00000000000000E+0002
Спасибо. Это то я знаю. Мне нужно чтобы вместо E было D (но это можно и решить программно: открыть файл и заменить) и число знаков после запятой было задано, как например в фортране 1dp12.5 (12 символов всего, 5 после запятой). В делфи есть что-то вроде этого?
malevich вне форума Ответить с цитированием
Старый 29.12.2006, 17:15   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

есть такое, допустим writeln(f,real:5:2) - 2 знака после запятой, 5 отступов слева, если целая часть больше 5 символов, то ничего не обрезается. Так вот при этом подходе нету ни Е, ни D, т.е. r:=30; writeln(f,r:3:2);
будет "_30.00". Так же можно это сделать и в format, но чтоб было и степень и число знаков после запятой, я не знаю.
zetrix вне форума Ответить с цитированием
Старый 29.12.2006, 18:28   #5
malevich
Пользователь
 
Аватар для malevich
 
Регистрация: 01.11.2006
Сообщений: 63
По умолчанию

и на этом спасибо. Ладно, будем фортраном конвертировать в нужный формат .
С наступающим.....
malevich вне форума Ответить с цитированием
Старый 31.12.2006, 00:37   #6
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

ещё попробуй почитать про функцию formatfloat вроде так...
writeln('Hello Dude!!!');
-=DeS=- вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Format() eda Microsoft Office Excel 6 28.08.2008 11:21
Ошибка 'No argument for format "%s"'?? Lencom Общие вопросы Delphi 2 25.06.2008 13:16
Microsoft Tape Format svennick Свободное общение 0 20.05.2008 21:33