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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2008, 17:38   #1
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию AssignFile

Уважаемы программисты обьясните Чайнику что не так x1 и x2 после вычисления являються числовыми данными (Double). Обьясните как правильно записать данные в файл

procedure TForm1.BitBtn1Click(Sender: TObject);
var
myFile : File;

begin
// открыть файл Rez.txt для записи
AssignFile(myFile, 'Rez.txt');
ReWrite(myFile);

// Запись данных в файл
WriteLn(myFile, x1);
WriteLn(myFile, x2);

// Закрытие файла
CloseFile(myFile);
end;

end.
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Старый 18.09.2008, 17:59   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

var
myFile : TextFile;
_Dmitry вне форума Ответить с цитированием
Старый 18.09.2008, 18:00   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
myFile : File;
нужно myFile : TextFile;
иначе нельзя использовать writeln(myFile, x1);
puporev вне форума Ответить с цитированием
Старый 18.09.2008, 18:07   #4
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

Большое спасибо

ещё вопрос переменую X1 и X2 вычисляю так, и делаю округление
x1:=-b+sqrt(d)/2*a;
f1:=RoundTo(x1, -2);
x2:=-b-sqrt(d)/2*a;
f2:=RoundTo(x2, -2);

К примеру f1=339,47 а в файл записует 3.39470000000000E+0002 в чём проблема.

Может тип непраивльно указан в var f1: double???
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Старый 18.09.2008, 18:10   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Дак в файл то записывай не x1,x2, а f1,f2.
puporev вне форума Ответить с цитированием
Старый 18.09.2008, 18:18   #6
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

Я так и записую!!!

WriteLn(myFile, f1);
WriteLn(myFile, f2);
writeLn(myFile, f3);

и всеровно
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Старый 18.09.2008, 18:22   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Кстати при записи в текстовый файл форматирование надо делать как в консоли:
WriteLn(myFile, x1:0:2);
WriteLn(myFile, x2:0:2);
А rondto, это при выводе в компоненты Delphi
puporev вне форума Ответить с цитированием
Старый 18.09.2008, 18:25   #8
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

ОЙЙЙЙ получилось Спасибки большое.

Ещё 1 вопрос, как его теперь открыть для просмотра (Пробовал через ShellExecute, ну сдесь надо указывать конкретный путь к файлу) а как сделать что бы без указания пути на открытие.
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...

Последний раз редактировалось Claster; 18.09.2008 в 18:32. Причина: Был вопрос не по теме
Claster вне форума Ответить с цитированием
Старый 18.09.2008, 18:51   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Самое простое прочитать его например в Мемо.
Memo2.Lines.LoadfromFile('Rez.txt') ;
Это если файл в одной папке с программой.

Последний раз редактировалось puporev; 18.09.2008 в 18:55.
puporev вне форума Ответить с цитированием
Старый 18.09.2008, 19:01   #10
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

Большое спасибо!
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Ответ


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