Добрый день!
У меня есть xls-файл, где данные в ячейке записаны в формате [ч]:mm, т.е. по сути - часы:минуты. Я не могу в интерфейсе достать эти данные
Читаю так (пробую это делать в переменные типа string и time):
....
var pt: time;
var _str: string;
...
xlGetCellValue(_row,col,pt);
logStrToFile('log.log',timeToStr(pt,'HH:MM:SS'));
xlGetCellValue(_row,col,_str);
logStrToFile('log.log',_str);
...
В логе получаю:
00:00:00
0,161111111111111
а на самом деле в ячейке - 3:52:00
Мне нужны часы и минуты отдельно.
Чтение из Excel
Модераторы: m0p3e, edward_K, Модераторы
Чтение из Excel
Кто сказал, что бесполезно биться головой об стену?!
-
- Местный житель
- Сообщения: 216
- Зарегистрирован: 25 апр 2006, 12:05
- Откуда: г.Ростов-на-Дону
- Контактная информация:
время идет в Double нужно перевести в Time
как пример можете попробывать вот такую функцию
только запятую нужно заменить на точку
0,161111111111111 = 0.161111111111111
как пример можете попробывать вот такую функцию
Код: Выделить всё
function DoubleToTime(_Time:Double):Time;
{
var t1: Double;
var s1,s2,s3,s:String;
t1:= _Time * 24 * 60 * 60;
S1:= Longint(Trunc(t1 / 3600));
t1:= Longint(t1) mod 3600;
S2:= Longint(Trunc(t1 / 60));
t1:= Longint(t1) mod 60;
S3:= Longint(Trunc(t1));
S:= s1+':'+s2+':'+s3+':'+'000';
result:=StrToTime(s, 'HH:MM:SS:SSS');
};
0,161111111111111 = 0.161111111111111
-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Легче так:
Код: Выделить всё
function DoubleToTime(_Time:Double):Time;
{
result:=From_Sec100(_Time* 24 * 60 * 60 * 100);
};
-
- Местный житель
- Сообщения: 216
- Зарегистрирован: 25 апр 2006, 12:05
- Откуда: г.Ростов-на-Дону
- Контактная информация:
Кстати можно и так... спасибо...Vik писал(а):Легче так:
Код: Выделить всё
function DoubleToTime(_Time:Double):Time; { result:=From_Sec100(_Time* 24 * 60 * 60 * 100); };