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

#5531
Utilizando las extensiones LINQ:
IEnumerable.OrderBy

(Lee el ejemplo en Vb.Net que hay en esa misma página)

Saludos!
#5532
@ServH

Si los campos de esa tabla están separados usando "tabulación", entonces lo tienes fácil y puedes utilizar el ejemplo que mostré.

En cambio, si se usa un espacio para separar los campos, y si además hay nombres compuestos cómo has comentado, entonces no hay nada que sea viable, porque realmente necesitarías gestionar una base de datos de nombres para tomarla como referencia a la hora de delimitar correctamente los campos y así poder aumentar la probabilidad de éxito (no sería 100% fiable).

Lo único que se me ocurre, en caso de que los campos esten separados por espacios y no por tabulaciones, es que le pidas al autor de la aplicación que modifique el código para usar un caracter delimitable (por ejemplo un punto y coma ";"), por que el diseño actual sería incorrecto e improductivo.

PD: Y si la aplicación es un ensamblado .Net y no puedes recurrir a la ayuda del autor, entonces siempre puedes recurrir a la mágia de la ingenieria inversa (en este caso utilizando técnicas mediante Reflection) para localizar y modificar el caracter que está usando el programa para separar las celdas.

Saludos.
#5533
Cita de: ServH en 11 Marzo 2015, 09:26 AM¿Crees que es la manera más optima de realizar esto?

No, Batch es una herramienta limitada, está diseñada y orientada a la automatización de tareas simples, los resultados y la eficiencia de cualquier otro lenguaje siempre será más óptimo que Batch, sin excepción alguna.

Sobre el problema que tienes, en parte ese texto que has mostrado se podría considerar un archivo CSV delimitado por espacios, y digo en parte, porque no se si alguno de los campos de esa tabla contiene un "espacio" (ej: 'María del monte'), entonces el algoritmo que uses para delimitar los campos basándose en ese "espacio" delimitador no servirá, y será mucho más complejo, porque si la cantidad de espacios es desconocida... no se cómo vas a reconocer un nombre a menos que utilices una base de datos de nombres, jaja.

Por otro lado, la tarea no requiere más que la utilización de un lenguaje simple cómo es Batch (suponiendo que no haya más espacios adicionales), pero óptimo no es que sea.

En fin, no me enrollo más, lee esta respuesta para hallar una solución mucho más eficiente que Batch:
http://foro.elhacker.net/programacion_general/programa_de_busqueda_con_archivo_csv-t431563.0.html;msg2001628#msg2001628

PD: Ese mismo Snippet que desarrollé en VB.Net te debería servir, pero cambiando el delimitador por un espacio o tabulación o lo que uses, claro está.

PD2: Cómo explico en ese comentario, cualquier otro lenguaje sirve, cómo Python, Ruby, C/C++, Java, etc, la resolución del problema es practicamente la misma en cualquier lenguaje, que consiste en generar un búcle que lea linea por linea, solo que unos lenguajes te lo ponen más fácil que otros, y a partir de ahí la elaboración del algoritmo para hacerlo menos o más sofisticado es cosa tuya.

Saludos!
#5534
Cita de: crack81 en  9 Marzo 2015, 16:18 PM
Si entiendo tu explicacion y si me fije que se quita la instancia del boton pero
bueno a mi personalmente me molesta que el codigo del metodo se siga manteniendo dentro del proyecto

Como especifique arriba tanto Delphi como java los auto elimina asi que no tienes que estar como loco viendo si ese metodo tiene o no instancia

¿Que tiene que ver que Delphi o Java los auto-destruyan?, en mi opinión las IDEs a las que te refieras de ambos lenguajes tienen un grave fallo de diseño entonces.

El código que pueda existir dentro de un event-handler puede ser rehusable, lo puedes utilizar para otros fines, para suscribirte a otro evento por ejemplo, a mi no me gustaría para nada que se auto-eliminase ese bloque de código sin que yo lo haya decidido, por no decir que un mismo método puede estar suscrito a múltiples eventos de diferentes controles al mismo tiempo, ¿que ocurriría si se eliminase dicho método por desasociar un solo evento de los varios que puede haber?, no, eso no estaría bien, el mecanismo de la IDE de VS deja a elección del usuario la eliminación de ese bloque de código, porque VS tiene en cuenta esos pequeños detalles que, a mi modo de ver, las IDEs de los lenguajes que mencionas no actuan de forma correcta.

De todas formas habría que preguntarle a Microsoft las razones por las cuales no se auto-eliminan, quizás existan otro tipo de razones que sean menos obvias y que estén relacionadas con la prevención de "X" conflictos con el código si sucediese dicha auto-eliminación, a parte de satisfacer la experiencia de uso al permitir la elección de "eliminación libre".

Cita de: crack81 en 10 Marzo 2015, 04:43 AMSi me di cuenta pero es curioso que un herramienta como visual estudio la cual es "super profesional" se les escapen estos detalles

Yo desde luego no encuentro ningún beneficio en que se auto-eliminase ese código y creo que estás viendo el problema al revés, yo veo el problema en las otras IDEs a las que te refieras, por que desde luego no me parece bien que auto-eliminen esa parte del código, pero esto solo es mi opinión, y para gustos, los colores.

Saludos!
#5535
.NET (C#, VB.NET, ASP) / Re: Certificado x509
11 Marzo 2015, 08:43 AM
Lee la documentación de la Class 'System.Security.Cryptography.X509Certificates.X509Certificate' en la MSDN, seguramente encuentres algo útil:
X509Certificate Methods

De todas formas, puedes generar ese tipo de certificado utilizando la aplicación MakeCert de Microsoft, que se encuentre en el SDK de Windows:
Makecert.exe (Certificate Creation Tool)

Saludos.
#5536
Cita de: cefagure en 11 Marzo 2015, 04:37 AM....puede ser en culaquier lenguaje de programacion.

Aquí no se hacen tareas.

Cualquier lenguaje te sirve, simplemente tienes que declarar un tipo de Array/Colección, hacer un Split a la primera linea del CVS para obtener los nombres de los campos/columnas, y luego hacer lo mismo en el resto de lineas basándote en el índice del Array del nombre de campo a buscar.

Pseudo-código:
fieldNames[Array] = ["IDREG", "FUNC"]
fieldIndex[Int32] = fieldNames.FindIndex("IDREG")

For each line[String] in csvText:
   fields[Array] = line.Split(",")
   print fields(fieldIndex)
End For


Si quieres algo muy fácil acorde con el tipo de pregunta que has hecho donde pareces mostrar poco interés por esforzarte, en C#/VB.Net puedes utilizar la Class Microsoft.VisualBasic.FileIO.TextFieldParser, que está diseñada para parsear un CSV sin complicaciones.

Ejemplo:
Código (vbnet) [Seleccionar]
       Using csvParser As New TextFieldParser("Archivo.csv") With { .Delimiters = {","} }

           ' Asigno los nombres de los campos/columnas.
           Dim fieldNames As List(Of String) = csvParser.ReadFields().ToList

           ' Asigno el índice del campo/columna a parsear.
           Dim fieldIndex As Integer = fieldNames.FindIndex(Function(name As String)
                                                                Return name.Equals("IDREG", StringComparison.OrdinalIgnoreCase)
                                                            End Function)

           ' Itero las lineas del csv y muestro el campo que hace referencia al índice fieldIndex .
           Do Until csvParser.EndOfData
               Debug.WriteLine(csvParser.ReadFields(fieldIndex))
           Loop

       End Using


Saludos
#5537
Cita de: ServH en 10 Marzo 2015, 14:28 PMP:D No pido el código hecho, solo quiero entender que tengo que hacer y solucionar las cosas en las que estoy fallando.

Ok, pues te explico, el log consiste en dos "argumentos" (o Tokens), el primero sería el nombre de la imagen (PHOTO_1), y el segundo sería el nombre de la persona (María), pues, solo tienes que modificar el parámetro "Tokens" de un For /F (cómo el que te mostré antes), para que tome esos dos argumentos por separado, usando cómo deliminator de argumento el caracter "espacio", de esa forma almacenarás en la variable %%a el nombre de la imagen, y en la variable %%b el nombre de la persona, obteniendo esa "relación" que quieres.

Lo que acabo de comentar ya lo hace el For que mostré arriba, pero si quieres entenderlo mejor, lee aquí:
For /f - Loop through text | Windows CMD | SS64.com

Saludos
#5538
@ServH

Muestra el código que llevas hecho por ti mismo, aquí no se hacen tareas.

Te muestro un ejemplo para iterar el log y asignar el "nombre" a la variable de FOR:

Código (dos) [Seleccionar]
For /F "UseBackQ Tokens=1,* Delims= " %%a In ("Archivo.log") Do (Echo %%~b)

Luego, solo tendrías que renombrar los archivos utilizando dicha variable para asignar el nuevo nombre del archivo jpeg.

Saludos
#5540
Cita de: Flamer en  9 Marzo 2015, 20:51 PM
ahora estoy intentando con vb6.

tengo que abrir otro tema en el subforo de visual basic o aqui puedo publicar el codigo

Lo apropiado sería que formules tu pregunta en el subforo dedicado a ese lenguaje.

PD: Suerte con el problema!
PD2: ¿Y si utilizas VB.Net/C#?, sería algo muy sencillo.

Saludos