Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Funcion Para Presentar Datos Por Consola
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Funcion Para Presentar Datos Por Consola 
 
He hecho una pequeña función para presentar datos por consola y hacerlo más "legible".

El problema se me planteaba cuando tenia que presentar en varias lineas datos en la terminal y por las distintas longitudes de los datos presentados, no se veia bien y dificultaban su lectura/comprobacion:
Por ejemplo:

Mes[ 1 ]= 10 euros
Mes[ 2 ]= 1000.23 euros
Mes[ 3 ]= 78.3 euros
 


Como veis, esto seria el resultado de un codigo como sigue:
...
for a=1 to 10
print "Mes[";a;"]=";valor[a];"euros"
next
...
 


Con la función que he hecho, saldrian tabulados, y con puntos entre los textos:

 datos_puntos


El codigo de la captura de pantalla anterior seria:
  Print "Cantidades Objetivo...."
  Print PresentarDatosNumericosConPuntos(60, "PEM:", Format(pemsuma, "$,#.###"), ".")

  Print PresentarDatosNumericosConPuntos(60, "Gastos Generales [PEM  X %GG (" & PorGG & ")]:", Format(GastosGenerales, "$,#.###"), ".")

  Print PresentarDatosNumericosConPuntos(60, "Beneficio Industrial [PEM X %BI (" & PorBI & ")]:", Format(GastosBI, "$,#.###"), ".")

  Print PresentarDatosNumericosConPuntos(60, "Presupuesto(pem + gg+ bi):", Format(PresupuestoPEMmasGGmasBI, "$,#.###"), ".")

  Print PresentarDatosNumericosConPuntos(60, "IVA (" & PorIVA & "): ", Format(GastosIVA, "$,#.###"), ".")

  Print PresentarDatosNumericosConPuntos(60, "Presupuesto Por Ejecucion Contrata:", Format(GastosPorEjecucionContrata, "$,#.###"), ".")

Nota:
El valor "60", indica la longitud de la linea que se va a mostrar en  la linea de terminal (texto,puntos y numero formateado)

El codigo de la función es el siguiente:
Public Function PresentarDatosNumericosConPuntos(numeroPuntos As Integer, Texto As String, DatoFormateado As String, Optional caracter As String) As String

  Dim cadena As String
  Dim espacios As String

  Try espacios = Space$(numeroPuntos - String.Len(texto) - String.Len(DatoFormateado))

  If Error Then
    'es posible que el numeroPuntos se quede corto, con respecto a la longitud del mensaje y el dato formateado.
    'por ejemplo que se inique valor 10, cuando la longitud del texto sea 8 y el dato formateado sea 10, por lo tanto, no se pueden adjuntar caracteres
    Return texto & DatoFormateado
  Endif

  If IsNull(caracter) Then
    cadena = texto & espacios & DatoFormateado
  Else
    cadena = texto & Replace(espacios, " ", caracter) & DatoFormateado
  Endif

  Return cadena

End
 


Espero que os sea útil.

Saludos

Julio
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Para Presentar Datos Por Consola 
 
Chulo. Mira que siempre ando a tortas con los formatos de presentación de datos, y cosas como estas vienen muy bien.
Recuerdo cuando los editores de texto eran todos en letra «mono» y había algunos muy chulos que justificaban con espacios, ponían pies de página...
 



 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Para Presentar Datos Por Consola 
 
Bravo,  jsbsan, muy bien !



Solo por simpatica curiosidad:    

Private Const LONGITUDO As Integer = 60


Public Sub Main()

  Dim b As Byte
  Dim i As Integer
  Dim p As Pointer
  Dim st As Stream
  Dim ss1 As String[] = ["àèéñⓖⓐⓜⓑⓐⓢ", "Mediterraneo", "ἀῤῥωστία"]
  Dim ii As Integer[] = [123456, 1234, 123456789]
  Dim s As String
  
   For b = 0 To ss1.Max
     i = Len(ss1[b]) - String.Len(ss1[b])
     p = Alloc(String(LONGITUDO + i, "."))
     st = Memory p For Write
     Write #st, ss1[b], Len(ss1[b])
     s = Format(ii[b], "$,#.###")
     Seek #st, LONGITUDO - Len(s) + i
     Write #st, s
     st.Close
     Print String@(p)
     Free(p)
  Next

End

 



 
última edición por vuott el Jueves, 22 Febrero 2018, 04:19; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Funcion Verificador De RUT Para CHILE DEATH Aplicaciones/Fragmentos de Código 6 Sabado, 12 Diciembre 2009, 03:06 Ver último mensaje
DEATH
No hay nuevos mensajes Mostrar Datos De La Consola gafesinremedio General 5 Jueves, 05 Agosto 2010, 19:03 Ver último mensaje
jguardon
No hay nuevos mensajes Ayuda Con Una Funcion De Consulta A Base D... aratar79 Bases de Datos 4 Viernes, 31 Agosto 2012, 01:53 Ver último mensaje
aratar79
No hay nuevos mensajes Una Funcion Para Quitar Los Espacios Sobra... tincho Aplicaciones/Fragmentos de Código 8 Lunes, 20 Noviembre 2017, 19:08 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron