FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
problemas de conversion...
Hola a todos,
tengo un campo de una tabla de tipo real que representa "horas , minutos" y que quiero representar como una cadena de tipo "55:18" ¿Se puede poner una cadena de formato en displayFormat para que lo haga??? ¿como? Seria que cambiara "," por ":" He probado hacerlo como un campo calculado y cual ha sido mi sopresa al ver que no funciona bien: function convertirHoras(horas:Real):String; var h,m:integer; begin h:= trunc(horas); m:= trunc((horas - h)*100); result:= inttostr(h)+ ':' + inttostr(m); end; ahora si lo puebo, por ejemplo: convertirHoras(55.18) ----> me devuelve 55:17 ¿Por que 17? lo he probado de otras formas y creo que el problema esta en la funcion trunc, ¿ sabeis por que pasa? Al final resignado he optado por esto: Function convertirHoras(horas:Real):String; var i,h,m:integer; c:Char; s:String; begin result:=''; if length(trim(horas))=0 then exit; c:= DecimalSeparator; i:= pos(c,horas); s:= copy(horas,1,i-1); try h:= StrToInt(s); except h:=0; end; s:= copy(horas,i+1,length(horas)); try m:= StrToInt(s); except m:=0; end; if h<10 then result:='0'+inttoStr(h)+':' else result:= inttoStr(h)+':'; if m<10 then result:= result+'0'+inttoStr(m) else result:= result+inttoStr(m); end; Gracias, David. |
#2
|
||||
|
||||
Mejor simplificamos ¿no?
Cita:
Última edición por Lepe fecha: 29-08-2005 a las 20:19:38. |
#3
|
||||
|
||||
Funciona bien y es mas eficiente, gracias.
Cita:
|
|
|
|