Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка is not a valid floating point value, при StrToFloat() из Memo 
V
    Опции темы
Frees
Дата 23.3.2011, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



а если исключение вызовет FloatToStr, формат числа например кривой ?
то MessageDLG(...  введет в заблуждение и скроет реальную ошибку!


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
IamDreamer
Дата 23.3.2011, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Цитата(Frees @  23.3.2011,  22:17 Найти цитируемый пост)
а если исключение вызовет FloatToStr

Страшно представить smile...

Почему TryStrToFloat есть, а TryFloatToStr нет?
PM MAIL WWW Jabber   Вверх
Frees
Дата 23.3.2011, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Цитата(IamDreamer @  23.3.2011,  22:26 Найти цитируемый пост)
Страшно представить ...Почему TryStrToFloat есть, а TryFloatToStr нет?

я FloatToStr и StrToFloat  перепутал...

FloatToStr - врядли вызовет исключение....


Это сообщение отредактировал(а) Frees - 23.3.2011, 19:30


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
IamDreamer
Дата 23.3.2011, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Обещали файл только с числами. Я их присваиваю переменным, потом вывожу в Memo.
PM MAIL WWW Jabber   Вверх
northener
Дата 24.3.2011, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(IamDreamer @  23.3.2011,  19:05 Найти цитируемый пост)
Сделал так:


Цитата(IamDreamer @  23.3.2011,  19:38 Найти цитируемый пост)
Обещали файл только с числами.


Ну раз обещали, то можно и так. Вот только кого назовут стрелочником, если что-то пойдет не так?
Ну и вдогонку. Read/Readln могут и не вызвать исключение. Если не включена соответствующая опция компилятора. По умолчанию она включена.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
IamDreamer
Дата 24.3.2011, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Цитата(northener @  24.3.2011,  04:01 Найти цитируемый пост)
Вот только кого назовут стрелочником, если что-то пойдет не так?

Как-нибудь переживу...
PM MAIL WWW Jabber   Вверх
IamDreamer
Дата 24.3.2011, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Файл оказался несколько иной формы: имеет вид
Цитата

11:17:01    1144    268,42    213    65
11:17:02    1144    268,42    213    65
11:17:03    1144    268,42    213    65
11:17:03    1144    268,42    213    65

Переменной типа TTime можно напрямую из файла командой Readln(filename, T) присвоить значение первого столбца (т.е. чтобы после выполнения Readln(Filename, T) значение T=11:17:01)?

PM MAIL WWW Jabber   Вверх
superVad
Дата 24.3.2011, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Я не уверен но возможно надо в FormCreate такое поставить:
Код

  TimeSeparator := ':';
  ShortTimeFormat := 'hh:nn:ss';


И можно будет использовать функцию StrToTime.

ПС Вероятно я ошибся и надо использовать LongTimeFormat вместо ShortTimeFormat.

В общем поэкспериментируй, попробуй как работает такое:
Код

T=StrToTime('11:17:01');


Это сообщение отредактировал(а) superVad - 24.3.2011, 19:05
PM MAIL   Вверх
IamDreamer
Дата 24.3.2011, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Цитата(superVad @  24.3.2011,  21:58 Найти цитируемый пост)
И можно будет использовать функцию StrToTime.

То есть всё-таки надо будет сначала считать как строку, потом перевести в TTime?
PM MAIL WWW Jabber   Вверх
superVad
Дата 24.3.2011, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Цитата(IamDreamer @  24.3.2011,  18:23 Найти цитируемый пост)
То есть всё-таки надо будет сначала считать как строку, потом перевести в TTime?

А как ты еще из текстового файла хочешь считать?  smile 
PM MAIL   Вверх
IamDreamer
Дата 24.3.2011, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



superVad, числа же сразу считываются. 
PM MAIL WWW Jabber   Вверх
superVad
Дата 24.3.2011, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Цитата(IamDreamer @  24.3.2011,  18:54 Найти цитируемый пост)
superVad, числа же сразу считываются. 

Ну попробуй smile, что мешает?
PM MAIL   Вверх
IamDreamer
Дата 24.3.2011, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Цитата(superVad @  24.3.2011,  23:13 Найти цитируемый пост)
что мешает? 

Код

Var
t: TTime;
...
 Try
      Readln(F, t);
except MessageDLG('Невозможно считать данные...', mtWarning, [mbOk], 0); Exit;
    end;


Файл F имеет вид, как показано выше.

Выполнение приводит к ошибке 

user posted image

Это сообщение отредактировал(а) IamDreamer - 24.3.2011, 20:18
PM MAIL WWW Jabber   Вверх
Frees
Дата 24.3.2011, 20:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



TTime - это на самом деле Float а в файле у тебя строка, читай строку и StrToTime используй.


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
IamDreamer
Дата 24.3.2011, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Frees, спасибо. Теперь другая загвоздка: в строковую переменную в результате Readln(filename, stroka) присваивается вся строка, т.е. "11:17:01    1144    268,42    213    65". Как сделать так, чтобы в эту переменную записывалось только время без редактирования файла?
PM MAIL WWW Jabber   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0913 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.