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

#5231
Hola

Perdon que te lo diga pero tengo la sensación de que nunca das la información necesaria, o al menos yo nunca soy capaz de entender a la perfección el problema que tienes en las dudas que formulas, espero haber entendido bien lo que pretendes hacer esta vez.

En realidad no necesitas ningún archivo "app.dat" ni manipular el contenido de ningún archivo manuálmente, ya que puedes utilizar la infrastructura settings para almacenar la configuración de usuario, dicha configuración se escribe en un archivo del directorio Roaming pero su manipulación es muy sencilla ya que está orientada a objetos:
Using Settings in C#

De todas formas, si quieres generar un archivo legible/editable entonces dale una extensión común de texto plano, cómo "app.txt" o "app.ini", pero si utilizas la extensión ".dat" eso da a entender al end-user que debería tratarse de un archivo binario con contenido "ilegible", y por ende te sugiero aplicar la serialización de datos:

Primero, diseño el modelo de un objeto/contenedor cómo esta estructura de abajo, que servirá para almacenar los datos:
Código (vbnet) [Seleccionar]
''' <summary>
''' Structure that specifies the application configuration.
''' </summary>
<SerializableAttribute>
Public Structure ConfigStruct

   ''' <summary>
   ''' </summary>
   Public Auth As String

   ''' <summary>
   ''' </summary>
   Public Logi As String

   ''' <summary>
   ''' </summary>
   Public Calc As String

   ''' <summary>
   ''' </summary>
   Public Hola As String

   ''' <summary>
   ''' </summary>
   Public Mens As String

   ''' <summary>
   ''' </summary>
   Public Entr As String

   ''' <summary>
   ''' </summary>
   Public Para As String

End Structure


C#:
Código (csharp) [Seleccionar]
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;

/// <summary>
/// Structure that specifies the application configuration.
/// </summary>
[SerializableAttribute()]
public struct ConfigStruct
{
/// <summary>
/// </summary>
public string Auth;

/// <summary>
/// </summary>
public string Logi;

/// <summary>
/// </summary>
public string Calc;

/// <summary>
/// </summary>
public string Hola;

/// <summary>
/// </summary>
public string Mens;

/// <summary>
/// </summary>
public string Entr;

/// <summary>
/// </summary>
public string Para;
}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================


Segundo, desarrollo los métodos (genéricos) de serialización y deserialización los cuales me ayudarán a automatizar dicha tarea:
Código (vbnet) [Seleccionar]
Imports System.Runtime.Serialization.Formatters.Binary

''' <summary>
''' Exposes members for binary serialization.
''' </summary>
Public NotInheritable Class BinarySerializerUtil

   ''' <summary>
   ''' Serializes an object into the specified file, using binary serialization.
   ''' </summary>
   ''' <typeparam name="T"></typeparam>
   ''' <param name="object">The object to serialize.</param>
   ''' <param name="filepath">The filepath to save the obstore the serialized data.</param>
   Public Shared Sub Serialize(Of T)(ByVal [object] As T,
                                     ByVal filepath As String)

       Dim serializer As New BinaryFormatter

       Using writer As New FileStream(filepath, FileMode.Create)
           serializer.Serialize(writer, [object])
       End Using

   End Sub

   ''' <summary>
   ''' Deserializes an Object from the specified file, using binary deserialization.
   ''' </summary>
   ''' <typeparam name="T"></typeparam>
   ''' <param name="object">The ByRefered object to store the deserialized data.</param>
   ''' <param name="filepath">The filepath to deserialize its contents.</param>
   Public Shared Sub Deserialize(Of T)(ByRef [object] As T,
                                       ByVal filepath As String)

       Dim serializer As New BinaryFormatter

       Using reader As New FileStream(filepath, FileMode.Open)
           [object] = DirectCast(serializer.Deserialize(reader), T)
       End Using

   End Sub

End Class


C#:
Código (csharp) [Seleccionar]
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Runtime.Serialization.Formatters.Binary;

/// <summary>
/// Exposes members for binary serialization.
/// </summary>
public sealed class BinarySerializerUtil
{
/// <summary>
/// Serializes an object into the specified file, using binary serialization.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="object">The object to serialize.</param>
/// <param name="filepath">The filepath to save the obstore the serialized data.</param>
public static void Serialize<T>(T @object, string filepath)
{
BinaryFormatter serializer = new BinaryFormatter();

using (FileStream writer = new FileStream(filepath, FileMode.Create)) {
serializer.Serialize(writer, @object);
}
}

/// <summary>
/// Deserializes an Object from the specified file, using binary deserialization.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="object">The ByRefered object to store the deserialized data.</param>
/// <param name="filepath">The filepath to deserialize its contents.</param>
public static void Deserialize<T>(ref T @object, string filepath)
{
BinaryFormatter serializer = new BinaryFormatter();

using (FileStream reader = new FileStream(filepath, FileMode.Open)) {
@object = (T)serializer.Deserialize(reader);
}
}
}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================


Por último, lo pongo todo en práctica.
(Si lo necesitases puedes adaptar el ejemplo para serializar también una colección uni o multi dimensional, claro está, aunque dependiendo del tipo de objeto la implementación de una serialización puede requerir más trabajo):
Código (vbnet) [Seleccionar]
Imports System.IO

Public Class Form1

   ''' <summary>
   ''' The filepath where to serialize de data.
   ''' </summary>
   Private ReadOnly datFilePath As String = Path.Combine(Application.StartupPath, "app.dat")

   ''' <summary>
   ''' A <see cref="ConfigStruct"/> instance that specifies the application config.
   ''' </summary>
   Private config As New ConfigStruct With
       {
           .Auth = "Auth value",
           .Calc = "Calc vaule",
           .Entr = "Entr vaule",
           .Hola = "Hola vaule",
           .Logi = "Logi vaule",
           .Mens = "Mens vaule",
           .Para = "Para vaule"
       }

   ''' <summary>
   ''' Handles the <see cref="Form.Shown"/> event of this form.
   ''' </summary>
   Private Sub Test() Handles MyBase.Shown

       ' Serializo los datos de la instancia del objeto, al archivo especificado.
       BinarySerializerUtil.Serialize(Of ConfigStruct)(Me.config, datFilePath)

       ' Limpio los datos del objeto.
       Me.config = Nothing

       ' Deserializo los datos del archivo, a la instancia del objeto especificado.
       BinarySerializerUtil.Deserialize(Of ConfigStruct)(Me.config, datFilePath)

       Debug.WriteLine(Me.config.Auth)
       Debug.WriteLine(Me.config.Calc)
       Debug.WriteLine(Me.config.Entr)
       Debug.WriteLine(Me.config.Hola)
       Debug.WriteLine(Me.config.Logi)
       Debug.WriteLine(Me.config.Mens)
       Debug.WriteLine(Me.config.Para)

   End Sub

End Class


C#:
Código (csharp) [Seleccionar]
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;

public class Form1
{
/// <summary>
/// The filepath where to serialize de data.
/// </summary>

private readonly string datFilePath = Path.Combine(Application.StartupPath, "app.dat");
/// <summary>
/// A <see cref="ConfigStruct"/> instance that specifies the application config.
/// </summary>
private ConfigStruct config = new ConfigStruct {
Auth = "Auth value",
Calc = "Calc vaule",
Entr = "Entr vaule",
Hola = "Hola vaule",
Logi = "Logi vaule",
Mens = "Mens vaule",
Para = "Para vaule"
};

/// <summary>
/// Handles the <see cref="Form.Shown"/> event of this form.
/// </summary>
private void Test()
{
// Serializo los datos de la instancia del objeto, al archivo especificado.
BinarySerializerUtil.Serialize<ConfigStruct>(this.config, datFilePath);

// Limpio los datos del objeto.
this.config = null;

// Deserializo los datos del archivo, a la instancia del objeto especificado.
BinarySerializerUtil.Deserialize<ConfigStruct>(this.config, datFilePath);

Debug.WriteLine(this.config.Auth);
Debug.WriteLine(this.config.Calc);
Debug.WriteLine(this.config.Entr);
Debug.WriteLine(this.config.Hola);
Debug.WriteLine(this.config.Logi);
Debug.WriteLine(this.config.Mens);
Debug.WriteLine(this.config.Para);

}

public Form1()
{
Shown += Test;
}
}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================


No estoy seguro de si algo así es lo que pretendías hacer.

Saludos
#5232
Buenas

¿El bloque de ese event-handler lo has copiado y pegado sin más?, es la única razón que se me ocurre por la que "no haga nada",
recuerda que en C# se auto-genera el código de la suscripción a eventos en la class 'NombreDelFom.Designer.cs', deberías tener algo cómo esto de abajo en el bloque del método 'InitializeComponent', de lo contrario, modifícalo añadiendo lo que he resaltado:

Código (csharp,8) [Seleccionar]
partial class Form1

   //...

   private void InitializeComponent()
   {
        //...
        this.checkBox1.CheckedChanged += new EventHandler(this.checkBox1_CheckedChanged);
        //...
    }

   //...

}


Aparte de eso, puedes simplificar esa condicional que escribiste, de la siguiente manera:
Código (csharp) [Seleccionar]
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
   textBox2.Enabled = ((CheckBox)sender).Checked;
}


Saludos
#5233
Cita de: SAGA-gl en  6 Mayo 2015, 06:45 AMse q me vas a regañar xq va contra las reglas del foro pero MUCHISIMAS GRACIAS ELEKTRO

Sería incapaz de "regañar" por ese motivo, no soy un monstruo, jaja. Es cierto que esa norma existe peeeeeeeero... es un tabú :P.

Me alegro de que te haya servido de ayuda.

PD: Eso si, intenta marcar tus temas cómo resueltos utilizando el icono de .

Saludos!
#5234
Programación General / Re: Lenguaje dart
6 Mayo 2015, 09:37 AM
Cita de: Baal_30 en  5 Mayo 2015, 22:12 PM¿Eso es que google a desistido de GO?

No tienen nada que ver, GO es un lenguaje de propósito genral mientras que Dart está orientado al desarrollo de aplicaciones Web, por eso uno no se puede considerar el sucesor del otro, así que imagino que les seguirán dando mantenimiento/actualizaciones a ambos.

La última release de Go es de hace 2 meses, y la primera release de Dart es de hace 2 años, aunque la build de Dart (v1.9.3) es superior que la de GO (v1.4.2) en comparación con el tiempo de vida de cada uno, habría que preguntarle a Google por sus intereses personales para el futuro.

Saludos
#5235
Windows / Re: Carpeta Muisca
5 Mayo 2015, 21:05 PM
Cita de: Hurdano en  5 Mayo 2015, 20:28 PMYo sigo optando porque mire en el vavegador, los que use, y que luego diga algo más y me saque de dudas. Pensé también en que sería propio del antivirus Elektro, pero no será el primero ni el último que instala un crack para "x" programa, y de ahí le vengan los problemas...

Si, pero ya habría que tener valor (o poco cerebro) para expandir un virus al mismo directorio de un antivirus... es un sin sentido xD, además todo concuerda: ...\AV\Skin\Sounds\archivos Wave. Aunque no tengo instalado el Kaspersky para comprobar la estructura de archivos, pero bueno...

Yo también pienso que lo que pasa es que tiene mal configurado o "desconfigurado" algún programa cómo le estamos diciendo todo el rato, seguramente sea el navegador cómo dijiste tú por que Zorronde dijo no se que de que en el navegador le aparecía esa carpeta o algo así, ya me perdí.

Saludos!
#5236
Windows / Re: Carpeta Muisca
5 Mayo 2015, 20:17 PM
Cita de: Zorronde en  5 Mayo 2015, 20:08 PMSolo quedo el Kaspersky.- En la " carpeta" de este, hay otra carpeta "Skin" y dentro de esta oirá carpeta "Sounds" aquí hay dos archivos .wav - Infested.wav y Infested_p.wav.- Sera que aquí esta el " problemita"  ja ja ja

Probablemente son los sonidos que se reproducen cuando dicho antivirus detecta una infección en el sistema... .  .    .

¿Has probado a reproducirlos manuálmente? (sin miedo).

Cita de: Zorronde en  5 Mayo 2015, 20:08 PMNo puedo desinstalarlo. hay algún método que lo pueda hacer y sacarlo.- Gracias desde ya

Puedes forzar una desinstalación tanto de forma manual cómo automatizada, para hacerlo de forma automatizada te recomiendo utilizar el programa UninstallTool:
http://www.crystalidea.com/download

PD: Primero deberías detener los servicios del antivirus y el antivirus, o quedarán restos sin desinstalar (es decir archivos.exe sin eliminar, pero que no se volverán a ejecutar en el startup de Windows).

Saludos!
#5237
Hola, ¿que tal?

Me gustaría saber si alguien de aquí ha vendido algún código o software en codecanyon, en realidad es para saber si realmente merece la pena, por lo que he visto se llevan una buena tajada de comisión (que eso ya para empezar, te hecha para atrás) y veo que productos magnificos y elaboradísimos que siendo realistas deberían valer un pastizal pero valen 10$ o 5$ ...¿será que hay demasiada competencia quizás?.

¿Alguna opinión sobre este servicio?.

Aparte, la primera impresión que he tenido es que para ser una web tan reconocida deja mucho que desear en el sentido de intentar facilitarle al vendedor los pasos a seguir, por ejemplo las imagenes debes subirlas comprimidas en formato ZIP ...no soporta ningún otro formato común como RAR, las imagenes deben tener un tamaño específico...no tiene ningún algoritmo de auto-resize, y en fin, si no cumples esos y otros requisitos al pie de la letra te tira error, esas son las primera pegas que le pongo.

Saludos!
#5238
Programación General / Re: Lenguaje dart
5 Mayo 2015, 13:47 PM
En la web oficial tienes todas las especificaciones del lenguaje, además de tutoriales, miratela a fondo:
https://www.dartlang.org/codelabs/darrrt/

Además, aquí también encontrarás tutoriales:
http://googledart.es/primeros-pasos/tutoriales/hola-mundo

Saludos
#5239
Cita de: engel lex en  5 Mayo 2015, 08:05 AMno olvidemos que los tacones y maquillajes eran muy usados entre hombres)

¿Que hombre en su sano juicio querría llevar tacones por el motivo que sea?, no lo se, ya me cuesta mucho aceptar que la mujer los quiera llevar por un estúpido canon de belleza y atracción sexual, pero también hay que mencionar las pinturas de guerra y las faldas escocesas que siguen llevando los hombres :xD.

Por desgracia todos somos conscientes de que vivimos en una putrefacta sociedad materialista donde importa más los productos de belleza que te heches en la cara que el interior de la persona, si un tio lleva tatuajes es un malote, si una mujer lleva tatuajes es una golfa, si un hombre lleva falda es maricón y si una mujer no quiere llevar tacones no es mujer, y si no se depila ya ni te cuento, ¡que cerda!.

Ridículo y degradante para el ser humano.

Saludos!
#5240
Que raro.

Especifica el tipo de excepción, y el mensaje exacto de error.

Comprueba el valor de la propiedad dt.Rows.IsReadonly y del rgv.Rows.IsReadOnly antes de iterar la colección, ¿alguno es True? :-\.

En caso afirmativo, no se por que te sucede eso, pero para intentar solucionarlo no intentes eliminar las filas del rgv, declara el dt fuera de método y modifica el rgv.DataSource (es decir, elimina las filas directamente en el dt), los cambios se verán reflejados en el rgv.

Prueba así:
Código (vbnet) [Seleccionar]
Dim dt As DataTable
Dim dtCopy As DataTable

Private Sub test()

   dt = New DataTable
   ' añadir columnas, añadir filas...

   dtCopy = dt.Copy()
   rgv.DataSource = dtCopy.DefaultView

End Sub

Private Sub RadButton1_Click(sender As Object, e As EventArgs) _
Handles RadButton1.Click

   If dtCopy.Rows.IsReadOnly() Then
       Throw New Exception("dtCopy row col es de solo lectura")

   ElseIf rgv.Rows.IsReadOnly Then
       Throw New Exception("rgv row col es de solo lectura")

   Else
       Using rgv.DeferRefresh()

           For Each row As GridViewRowInfo In rgv.SelectedRows.ToArray
               dtCopy.Rows.Remove(DirectCast(row.DataBoundItem, DataRowView).Row)
           Next row

       End Using

   End If

End Sub


Código (csharp) [Seleccionar]
DataTable dt;
DataTable dtCopy;

private void test()
{
dt = new DataTable();
// añadir columnas, añadir filas...

dtCopy = dt.Copy();
rgv.DataSource = dtCopy.DefaultView;
}

private void RadButton1_Click(object sender, EventArgs e)
{
if (dtCopy.Rows.IsReadOnly()) {
throw new Exception("dtCopy row col es de solo lectura");

} else if (rgv.Rows.IsReadOnly) {
throw new Exception("rgv row col es de solo lectura");

} else {
using (rgv.DeferRefresh()) {
foreach (GridViewRowInfo row in rgv.SelectedRows.ToArray) {
dtCopy.Rows.Remove(((DataRowView)row.DataBoundItem).Row);
}
}
}
}