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

#3361
En la tecnología Silverlight puedes utilizar el espacio de nombres System.Json, en la tecnología Windows Universal puedes utilizar el espacio de nombres Windows.Data.Json, y en el resto de tecnologías puedes utilizar la class System.Runtime.Serialization.Json.JsonReaderWriterFactory, un ejemplo hardcodeado de esto último lo puedes encontrar en mi API gratuita ElektroKit donde extraigo la respuesta de un servicio web que me devuelve un documento JSON y lo leo de la misma forma que si fuese un documento Xml:
( en el bloque de la función GeoLocate )

Sin embargo, la forma portable y también la más sofisticada o ventajosa de trabajar con el formato JSON en .NET es utilizando la libreria de terceros JSON.NET, sobre todo al parsear este tipo de formato.
En su web tienes una breve comparación de rendimiento:
...y ese es el motivo por el cual incluso Microsoft prefiere utilizar JSON.NET en sus APIs públicas hospedadas en GitHub xD, del mismo modo que también lo usa Google en sus APIs para .NET, etc.

En fin, en la misma web también te muestran ejemplos de utilización de JSON.NET:

Como puedes ver, no te he mostrado nada que no pudieras haber resuelto por ti mismo con una simple búsqueda en Google como ya te mencionó el compañero @MCKSys Argentina... intenta buscar antes de formular preguntas típicas o muy fáciles.

Saludos!




EDITO:

Acabo de desarrollar esta función de uso genérico para convertir un string en formato JSON a un objeto de tipo XElement, el cual nos facilita mucho la usabilidad en .NET:

Código (vbnet) [Seleccionar]
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Converts a JSON <see cref="String"/> to <see cref="XElement"/>.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <param name="json">
''' The source JSON string.
''' </param>
'''
''' <param name="enc">
''' The character encoding that must be used to read the JSON string.
''' </param>
''' ----------------------------------------------------------------------------------------------------
''' <returns>
''' The resulting <see cref="XElement"/>.
''' </returns>
''' ----------------------------------------------------------------------------------------------------
<DebuggerStepThrough>
Public Shared Function ConvertToXElement(ByVal json As String, ByVal enc As Encoding) As XElement

    Dim data As Byte() = enc.GetBytes(json)

    Using ms As New MemoryStream(data)

        Using xmlReader As XmlDictionaryReader =
            JsonReaderWriterFactory.CreateJsonReader(ms, enc, New XmlDictionaryReaderQuotas, Nothing)

            Return XElement.Load(xmlReader)

        End Using

    End Using

End Function

''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Converts a JSON <see cref="String"/> to <see cref="XDocument"/>.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <param name="json">
''' The source JSON string.
''' </param>
'''
''' <param name="enc">
''' The character encoding that must be used to read the JSON string.
''' </param>
''' ----------------------------------------------------------------------------------------------------
''' <returns>
''' The resulting <see cref="XDocument"/>.
''' </returns>
''' ----------------------------------------------------------------------------------------------------
<DebuggerStepThrough>
Public Shared Function ConvertToXDocument(ByVal json As String, ByVal enc As Encoding) As XDocument

    Return New XDocument(ConvertToXElement(json, enc))

End Function


Ejemplo de uso:
Código (vbnet) [Seleccionar]
       Dim json As String = <a>
{
   "colorsArray":[{
           "colorName":"red",
           "hexValue":"#f00"
       },
       {
           "colorName":"green",
           "hexValue":"#0f0"
       },
       {
           "colorName":"blue",
           "hexValue":"#00f"
       },
       {
           "colorName":"cyan",
           "hexValue":"#0ff"
       },
       {
           "colorName":"magenta",
           "hexValue":"#f0f"
       },
       {
           "colorName":"yellow",
           "hexValue":"#ff0"
       },
       {
           "colorName":"black",
           "hexValue":"#000"
       }
   ]
}</a>.Value

       Dim xml As XElement = ConvertToXElement(json, Encoding.UTF8)

       Dim firstColorName As String = xml.<colorsArray>.<item>(0).<colorName>.Value
       Dim firsHexValue As String = xml.<colorsArray>.<item>(0).<hexValue>.Value

       Console.WriteLine(String.Format("Color Name: {0}; Hex. Value: {1}", firstColorName, firsHexValue))


El elemento Xml resultante tras la conversión de tipos:
Código (xml) [Seleccionar]
<root type="object">
 <colorsArray type="array">
   <item type="object">
     <colorName type="string">red</colorName>
     <hexValue type="string">#f00</hexValue>
   </item>
   <item type="object">
     <colorName type="string">green</colorName>
     <hexValue type="string">#0f0</hexValue>
   </item>
   <item type="object">
     <colorName type="string">blue</colorName>
     <hexValue type="string">#00f</hexValue>
   </item>
   <item type="object">
     <colorName type="string">cyan</colorName>
     <hexValue type="string">#0ff</hexValue>
   </item>
   <item type="object">
     <colorName type="string">magenta</colorName>
     <hexValue type="string">#f0f</hexValue>
   </item>
   <item type="object">
     <colorName type="string">yellow</colorName>
     <hexValue type="string">#ff0</hexValue>
   </item>
   <item type="object">
     <colorName type="string">black</colorName>
     <hexValue type="string">#000</hexValue>
   </item>
 </colorsArray>
</root>
#3362
Por favor, usa el buscador del foro antes de formular preguntas típicas:

Hacer una clonación de un tamaño total determinado de 16 GB no es posible, a menos que se den las circunstancias de que los datos contenidos en el HDD objetivo no superen los 16 GB, cosa muy improbable si tenemos en cuenta que una instalación limpia de una versión reciente de Windows ya se come aprox. 12 GB del espacio mencionado (y una distro de Linux como Ubuntu unos 5 GB aprox.), eso sin contar el punto de restauración inicial.

Lo que puedes hacer es una copia de seguridad selectiva, es decir, elegir los datos que quieres salvaguardar (y salvaguardarlos con compersión) para intentar que no superen esos 16 GB, pero esto en ningún caso se podrá considerar una clonación, sino un backup normal y corriente.

Existen muchas aplicaciones gratuitas y de pago para hacer un backup selectivo de forma guiada y generar una imagen ISO de forma automatizada, puedes buscar en Google, los productos de Acronis son muy populares (y sofisticados). De todas formas por si te sirve de algo la aplicación que yo utilizo se llama KLS Backup:
( es de pago, pero si sabes buscar bien... .  .  )

Hoy en día también puedes utilizar servicios en la nube como Microsoft OneDrive o Google Drive, eso ya es cuestión de gustos, ofrecen bastantes GB de forma gratuita y siempre puedes comprar espacio adicional.

Saludos
#3363
Esto no es Visual Basic, es Visual Basic.NET, pro favor, publica correctamente las preguntas en el futuro.

Cita de: creiko en 24 Agosto 2016, 20:45 PMno logro hacer bien las siguientes si alguien me ayude o explique

MS, M-, M+ MR

Se hace muy tedioso de leer el código que has publicado, y los nombres de muchos de los controles que has definido (los botones) no describen su función ni tampoco has dejado pistas, ni tampoco te has molestado en explicarnos al menos en lo que debemos fijarnos de tu código, así que disculpa pero en vez de ponerme a revisar y buscar un fallo en tu código directamente prefiero mostrarte un ejemplo (el cual te debería resultar muy sencillo adaptarlo) de como puedes implementar las funciones de memoria:

Código (vbnet) [Seleccionar]
' El formato del separador de decimales.
Private ReadOnly numberFormat As NumberFormatInfo = CultureInfo.GetCultureInfo("en-US").NumberFormat
Private memValue As Decimal

' M+
Private Sub Button_MemAdd_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button_MemAdd.Click

   Me.memValue += Decimal.Parse(Me.TextBox_CalcDisplay.Text, Me.numberFormat)

End Sub

' M-
Private Sub Button_MemSubstract_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button_MemSubstract.Click

   Me.memValue -= Decimal.Parse(Me.TextBox_CalcDisplay.Text, Me.numberFormat)

End Sub

' MR
Private Sub Button_MemRecall_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button_MemRecall.Click

   Me.TextBox_Input.Text = Convert.ToString(If(Me.memValue = 0.0D, 0D, Me.memValue), Me.numberFormat)

End Sub

' MC
Private Sub Button_MemClear_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button_MemClear.Click

   Me.memValue = 0D

End Sub





Aparte de eso, veo muchas partes del código cuyo algoritmo lo puedes simplificar a un par de lineas, es comprensible que todavía no te des cuenta puesto que estarás iniciándote en el lenguaje empezando por programar una calculadora, pero conviene que sepas desde ya sobre malas costumbres de programación que solo te complicarán la vida y hacer un esfuerzo por evitar escribir cosas como esta:

Código (vbnet) [Seleccionar]
Private Sub B0_Click(sender As Object, e As EventArgs) Handles B0.Click

   Tpantalla.Text = Tpantalla.Text & "0"
End Sub

Private Sub B2_Click(sender As Object, e As EventArgs) Handles B2.Click

   Tpantalla.Text = Tpantalla.Text & "2"
End Sub

Private Sub B3_Click(sender As Object, e As EventArgs) Handles B3.Click

   Tpantalla.Text = Tpantalla.Text & "3"
End Sub

Private Sub B4_Click(sender As Object, e As EventArgs) Handles B4.Click
   Tpantalla.Text = Tpantalla.Text & "4"
End Sub

Private Sub B5_Click(sender As Object, e As EventArgs) Handles B5.Click

   Tpantalla.Text = Tpantalla.Text & "5"
End Sub

Private Sub B6_Click(sender As Object, e As EventArgs) Handles B6.Click

   Tpantalla.Text = Tpantalla.Text & "6"
End Sub

Private Sub B7_Click(sender As Object, e As EventArgs) Handles B7.Click

   Tpantalla.Text = Tpantalla.Text & "7"
End Sub

Private Sub B8_Click(sender As Object, e As EventArgs) Handles B8.Click

   Tpantalla.Text = Tpantalla.Text & "8"
End Sub

Private Sub B9_Click(sender As Object, e As EventArgs) Handles B9.Click

   Tpantalla.Text = Tpantalla.Text & "9"
End Sub


Piensa en lo siguiente: tienes 10 botones, esos 10 botones llevan por nombre un número (0...9), y los 10 cumplen una misma funcionalidad que es añadir su "nombre" o número correspondiente al textbox, entonces, ¿por que no unir todos los botones en el mismo controlador de eventos con la sentencia Handles?:

Código (vbnet) [Seleccionar]
Private Sub MultiHandler_NumericButtons_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button_Num1.Click, Button_Num2.Click, Button_Num3.Click,
       Button_Num4.Click, Button_Num5.Click, Button_Num6.Click,
       Button_Num7.Click, Button_Num8.Click, Button_Num9.Click,
       Button_Num0.Click

   Me.TextBox_CalcDisplay.AppendText(DirectCast(sender, Button).Text)

End Sub


PD: En caso de que la propiedad TextBox.Text no sea un número (es de suponer que si, al tratarse de una calculadora), siempre puedes utilizar la propiedad TextBox.Tag

Saludos!
#3365
Como ya te han dicho, intenta describir mejor a lo que te refieres...

De todas formas yo creo que te refieres a un motor OCR para reconocer el texto de una imagen (ej. un Captcha). Para ello puedes utilizar la solución común y gratuita, Tesseract:

Aunque yo te recomendaría una solución de pago más sofisticada: ABCocr

Como ya he dicho no es gratuita, pero si sabes buscar bien... . .  . :silbar:

En mi API gratuita ElektroKit puedes encontrar una class donde está definida la función DecryptImage() para hacerte el uso de ABCocr mas facil imposible:

( click en la imagen para ir al código fuente )

Saludos
#3366
Cita de: tincopasan en 23 Agosto 2016, 20:27 PM
no tengo idea que es EHN

EHN = ElHacker.Net

Saludos!
#3367
Cita de: TrashAmbishion en 23 Agosto 2016, 23:05 PMUsar proyecto creado en C# en mi projecto de Vb.Net !!

¿Cual es el problema que encuentra?, solo tienes que referenciar la dll en tu proyecto de VB.NET (de la misma manera que referenciarías un ensamblado de Microsoft .NET Framework) y empezar a usarlo llamando a los métodos y clases y etc que hayas definido en tu librería escrita en C#.

Saludos!
#3368
Software / Re: Como formatear de bajo nivel
25 Agosto 2016, 17:48 PM
Cita de: Machacador en 24 Agosto 2016, 19:46 PM
Puedes usar el "HDD Low Level Format Tool" que creo ya viene integrado en el Hiren's Boot...

Ese es un proceso que puede tardar muchisimas horas o incluso días, dependiendo del tamaño del disco...

Y más si hablamos de la versión gratuita del programa, que tarda más ...de forma intencionada.

Saludos!
#3369
El problema que describes me suena a un conflicto (grave) de una extensión de la shell, que al leer los archivos de tipo MKW por algún motivo no lo hace correctamente y te acaba congelando el sistema operativo.

¿Sabes si has instalado alguna shell-extension que afecte a los archivos MKV, como por ejemplo Media Preview?, en caso afirmativo ya sabes que hacer: desinstalarlo, reiniciar el PC, y probar como te funciona el Explorador de Windows al leer un directorio que contenga archivos MKV.

En caso de que no tengas instalado la aplicación que mencioné, Media Preview, incluso te sugiero que la instales puesto que al afectar a los archivos MKV quizás automaticamente de forma indirecta te solucione el problema.

Aquí te dejo la web del autor (es una app gratuita):

Saludos
#3370
Cita de: Ikillnukes en 23 Agosto 2016, 05:34 AMComo un buen amigo mio dice para gustos los colores.

Eso lo dice todo el mundo, no me lo adjudiques solo a mi xD.




La tristeza es un concepto humano, mental. La música no es triste ni alegre, simplemente puede tener una letra que te provoque tristeza por que te hace revivir momentos o situaciones que tu corazón anhela, por ejemplo con una ex-novia, pero dudo mucho que esa misma letra le causase tristeza a alguien que es feliz con su pareja, pues su corazón no anhela nada, de hecho si no estás triste por algo no es posible sentir ese tipo de letras del mismo modo, te parecen más vacias, y esto lo digo en base a mi experiencia personal.

Yo he escuchado mucha música "triste", y comprendo lo que dices, aunque la letra pueda causar tristeza también puede transmitir emociones positivas, como amor, superación, valentía, etc, pero considero que no se debería escuchar ese tipo de música en exceso, pues sin darte cuenta tu mente podría polarizar cada vez más y más hacia un estado de pensamientos negativos del que te resultaría dificil salir, y eso se nota, por ejemplo, cuando una persona está pasándolo mal y su preferencia es escuchar ese estilo de letra que le provoca mayor tristeza, una persona que literalmente adora la tristeza (sin darse cuenta de ello), pero esa persona siempre podría volver a polarizar hacia el lado positivo de la balanza de sus pensamientos con la suficiente voluntad mental.

Bueno, saludos!