Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#1281
¿Cómo hacer WordWrapping a un String?.

Teniendo un string, y una longitud máxima en pixels, esta función/extensión de método nos servirá para hacerle wordwrap a dicho string, y así ajustar las palabrás al límite de longitud especificado.

Código (vbnet) [Seleccionar]
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Wraps words of the source <see cref="String"/> to the
''' beginning of the next line when necessary to fit the specified pixel width.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <remarks>
''' Credits to @undejavue solution: <see href="https://stackoverflow.com/a/36803501/1248295"/>
''' </remarks>
''' ----------------------------------------------------------------------------------------------------
''' <param name="sender">
''' The source <see cref="String"/>.
''' </param>
'''
''' <param name="maxWidth">
''' The maximum width, in pixels.
''' </param>
'''
''' <param name="font">
''' The text font.
''' </param>
''' ----------------------------------------------------------------------------------------------------
''' <returns>
''' The resulting string.
''' </returns>
''' ----------------------------------------------------------------------------------------------------
<DebuggerStepThrough>
<Extension>
<EditorBrowsable(EditorBrowsableState.Always)>
Public Function WordWrap(ByVal sender As String, ByVal maxWidth As Integer, ByVal font As Font) As String

   Dim sourceLines() As String = sender.Split({" "c}, StringSplitOptions.None)
   Dim wrappedString As New Global.System.Text.StringBuilder()
   Dim actualLine As New Global.System.Text.StringBuilder()
   Dim actualWidth As Double = 0

   For Each line As String In sourceLines
       Dim lineWidth As Integer = TextRenderer.MeasureText(line & " ", font).Width
       actualWidth += lineWidth

       If (actualWidth > maxWidth) Then
           wrappedString.AppendLine(actualLine.ToString())
           actualLine.Clear()
           actualWidth = lineWidth
       End If

       actualLine.Append(line & " ")
   Next line

   If (actualLine.Length > 0) Then
       wrappedString.AppendLine(actualLine.ToString())
   End If

   Return wrappedString.ToString()

End Function


Ejemplo de uso:

Código (vbnet) [Seleccionar]
Dim tb As New TextBox With {
       .Multiline = True,
       .ScrollBars = ScrollBars.Both,
       .WordWrap = False,
       .Size = New Drawing.Size(width:=250, height:=200)
   }

Dim text As String = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
Dim wordWrappedText As String = text.WordWrap(tb.Width, tb.Font)

Me.Controls.Add(tb)
tb.Text = wordWrappedText

Console.WriteLine(wordWrappedText)



#1282
Cita de: PETTETE en  2 Febrero 2018, 09:44 AM
tengo que indicarle la ruta entera del 7z.exe?

Si, Si. Era eso.. ajjajaja

No, puedes indicarle una ruta relativa como estabas haciendo:
Citar
Código (csharp) [Seleccionar]
string zPath = "7z.exe"
...solo que el archivo 7z.exe debe existir en el directorio de trabajo, es decir, en el directorio de inicio de tu programa.exe, junto a tu programa.exe, vaya.

Al parecer ya te diste cuenta de eso y lo solucionaste, me alegro.

Saludos!
#1283
Cita de: PETTETE en  2 Febrero 2018, 09:07 AM"El sistema no puede encontrar el archivo especificado"

¿sabéis porque?

El mensaje de la excepción es bastante claro, no tiene nada que ver con archivos .TAR/argumentos de 7z.exe, sino más bien con la ruta del executable "7z.exe", que no lo encuentra.

Saludos.
#1284
Cita de: **Aincrad** en  1 Febrero 2018, 22:31 PM
eso se podra?

Por supuesto, se puede, pero no hay una varita mágica o forma guiada para averiguar si "X" programa está instalado. Las entradas que hacen referencia a los programas instalados (aquellos que disponen de un desinstalador) se almacenan (unicamente) en el registro de Windows. Debes buscar en las siguientes claves de registro:


  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
  • HKEY_CURRENT_USER\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

El valor que te interesa analizar se llama 'DisplayNane'. Te muestro una imagen de ejemplo del registro de programas instalados:



( Hacer click en la imagen para ver en tamaño real. )

Para leer el registro de Windows puedes utilizar los miembros del espacio de nombres 'Microsoft.Win32': clase 'Registry', 'RegistryHive', 'RegistryKey', etcétera... encontrarás miles de ejemplos en Google. Al utilizar las clases del registro, recuerda especificar el visor de registro adecuado en caso de 64-Bits para leer las claves de registro de 32 o 64-bits (si no sabes a lo que me refiero, entonces debes documentarte sobre la clave WOW6432Node antes de ponerte a manipular el registro), de lo contrario irás dando palos de ciego...
Y para comparar los caracteres iniciales de un string, puedes utilizar la función 'String.StartsWith()'.

Saludos.
#1285
Hola!

Como dice el titulo, me gustaría saber si conocen algún servicio de transporte de paquetes en España, que tenga cobertura en Ecuador.

He pensado en SEUR por la confianza que les tengo, nunca me han fallado al enviar un paquete, pero los gastos de envío a Ecuador parecen ser MUY caros:
( zona 3 )

¿Creen que SEUR es una buena opción en relación al precio?, de lo contrario, ¿conocen alguna compañia igual de fiable y más barata?.

PD: Que sea en Valencia, una compañía en Valencia, o que vengan ellos desde donde sea a recoger el paquete a mi casa. No me sería factible desplazarme a otra ciudad.

Gracias.
#1286
Cita de: buite en 31 Enero 2018, 10:20 AM
Hace unos días, windows update me recomendó instalar silverlight.

Lo instalé, pero no soy de tener programas que no aaporten nada o muy poco.

Así que, agradezco vuestras opiniones.

Silverlight es un framework y especie de alternativa a Adobe Flash que está considerado obsoleto, o mejor dicho muerto y descontinuado oficialmente por Microsoft desde hace varios años (2012), y aunque se le ha seguido dando soporte en los navegadores durante los siguientes años, lo cierto es que no lo necesitas "para nada", si no eres programador aun menos necesario, y como usuario tampoco lo necesitas (a menos que te encuentres con alguna página web que utilice la tecnología Silverlight y necesites instalar los runtimes de este)

Saludos.
#1287
Dudas Generales / Re: Almacenamiento
1 Febrero 2018, 03:51 AM
Con 32 GB no haces nada hoy en día, me parece que vas a tener que usar mucho el CCleaner cuando se llene la carpeta temporal del sistema de archivos y tus programas generen archivos temporales en general...

Si quieres eliminar de forma permanente "un par" de gigabytes y sin afectar demasiado al impacto negativo en el rendimiento del S.O/disco duro (pues en tu caso con 32 GB casi ocupados... practicamente da igual si activas o desactivas cualquier optimización, te va a ir igual de lento), entonces puedes desactivar y eliminar el archivo de paginación de Windows (C:\pagefile.sys).

Saludos.
#1289
Cita de: engel lex en 30 Enero 2018, 10:27 AMY si, es cierto el niño es terriblemente racista y xenófobo

Menos mal que alguien se atreve a decirlo, ese niño es muy racista en su comentario, pero la gente parece que solo fija su atención en la tontería de Cristóbal Colón y los indios nativos, cuando en realidad lo importante o relevante del tema es la mala enseñanza/educación que tiene ese niño, los malos valores que le han inculcado... no se si por parte de sus padres, sus profesores, o la televisión e Internet, ahí ya no me meto.

Saludos!
#1290
Dudas Generales / Re: Obtener datos de cryptos
30 Enero 2018, 08:50 AM
Yo utilizo la API de https://coinmarketcap.com/api/. Por si te resultase de utilidad, aquí tienes un ejemplo completo desarrollado en VB.NET:


El ejemplo es algo extenso ya que implemento una interfaz para representar criptomonedas (interfaz 'ICryptoCurrency', clase 'Bitcoin', y clase 'Ethereum'), y una enumeración con monedas (EUR, USD, etc), pero si eliminamos todo ese código adicional, en esencia basicamente lo único relevante de ese ejemplo sería la función 'GetCryptoCurrencyPriceAsync', que consiste en parsear el documento JSON devuelto en la respuesta a la query de la API de coinmarketcap.com, algo que se puede reproducir en cualquier lenguaje que lo permita... solo hay que saber trabajar con requests/peticiones web y parsing/análisis de documentos JSON.

PD: nótese que el ejemplo en VB.NET está enfocado a un uso específico de la API para la conversión del valor de una criptomoneda, a una moneda corriente, no para la obtención de otros valores de mercado, aunque tan solo es un ejemplo, y arriba en la URL de la API tienen toda la documentación oficial para aprender a usarla y obtener otros valores del JSON.

Saludos.