|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
перевод минут секунд в доли целого числа
Подскажите, пожалуйста, как сделать следующее.
Есть два edita и button. Нужно по нажатию на кнопку что бы координаты из первого поля в минутах и секундах пересчитывались и выводились во второе в виде долей целого числа. Координаты вводятся только в таком виде: например +135 24' 56''/+24 25' 58'' +15 24' 56''/+24 25' 58'' Нужно что бы вывод был такой для этих примеров 24.4327777778, 135.41555555556 24.4327777778, 15.41555555556 Последний раз редактировалось alexsertar, 01.12.2011 в 11:52. |
#2
|
|||
|
|||
Нужно каким то образом каждому числу присвоить переменную. А далее все в принципе просто. Переводим по формуле х/60 для минут и х/3600 для секунд складываем получаем выводим выводит
Последний раз редактировалось alexsertar, 01.12.2011 в 11:54. |
#3
|
|||
|
|||
Как я понимаю основная проблема в том чтобы расщепить строку на составные части. Здесь решение. Но сразу предупреждаю
Требует строгого форматирования исходной строки (не допусаются двойные пробелы, нельзя заменить кавычки двойными для секунд) Код:
function StripStr(s:string):extended; var Index,i:integer; z:array[0..2] of string; begin s:=Trim(s); Index:=0; fillchar(z,SizeOf(z),0); for i:=1 to Length(s) do if s[i]=' ' then inc(Index) else z[Index]:=z[Index]+s[i]; SetLength(z[1],Length(z[1])-1); SetLength(z[2],Length(z[2])-2); Result:=StrToFloat(z[0]) + StrToFloat(z[1])/60 + StrToFloat(z[2])/3600 end; |