|
5711
|
Programación / .NET (C#, VB.NET, ASP) / Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
|
en: 3 Marzo 2015, 06:11 am
|
El error es self-explanatory, se explica por si mismo, no puedes convertir un ListItem (es decir, el Item seleccionado de un DropDownList) a un Control de tipo DropDownList, no tiene sentido. No manejo ASP.Net, pero el problema es sencillo de entender y corregir, prueba así: ListItem currentItem = ((DropDownList)sender).SelectedItem; ViewState["idNombre"] = Convert.ToInt32(currentItem);
PD: La próxima vez trata de publicar bien el código... la mitad de los keywords estaban pegados los unos a los otros y no se entendia.Saludos
|
|
|
5713
|
Foros Generales / Sugerencias y dudas sobre el Foro / Re: No se si se podrá pero yo lo pensé IRC
|
en: 3 Marzo 2015, 00:15 am
|
Estoy deacuerdo con WHK, pero por otro lado creo que los usuarios son más que conscientes de que la ayuda ofrecida en un chat, en la mayoría de los casos no será tan cualificada cómo el hecho de crear un post y que lo puedan ver cientos de personas para poder darte distintos enfoques al problema que tengas, además, hay que tener en cuenta que el foro también está para publicar aportes, etc, no solo para pedir y pedir aunque muchos no se hayan enterado todavía de ese pequeño detalle (lo digo por los usuarios que se limiten a pedir).
Creo que para evitar lo que comenta WHK, simplemente se podrían imponer una especie de normas (ej: 'Usar el chat para divertirse, y el foro para formular dudas'), y banear del chat a aquellos que las incumpliesen, no entiendo de SMF pero creo que se podrá hacer algo así y ya me imagino que los baneos no serían muy efectivos pero se banearía sin cesar a cualquier reincidente, ¿no os parece bien?.
Al menos se podría probar la idea, para ver que tal funciona y si aporta beneficios o todo lo contrario, tampoco sería un cambio muy grande en el que te la juegas a todo o nada... siempre se puede recular xD.
Saludos!
|
|
|
5715
|
Programación / .NET (C#, VB.NET, ASP) / Re: Archivo .bat sincronizado con barra de estado en visual bacic.net
|
en: 2 Marzo 2015, 22:57 pm
|
Sigue este consejo: Olvida completamente Batch, y también el uso de aplicaciones externas commandline en la medida de lo posible, jeje. Con el ejemplo que te he mostrado, primero deberás comprobar si el formato que le dí a las cadenas es la correcta para tí, y podrás leer la salida del proceso 'pgdump.exe', ya a apartir de ahí implementar una ProgressBar es cosa tuya, por que para llevarlo a cabo se requiere leer la salida estándar del proceso (en el event-handler 'PGprocess_OutputDataReceived') y realizar las estimaciones necesarias teniendo en cuenta que dicho programa muestre algún indicador de progreso, claro está, ya sea un porcentaje o la cantidad de archivos copiados y restantes. Si el proceso no muestra ese tipo de información entonces solo puedes crear una barra de progreso con progreso indeterminado, y esperar a que el la instancia del proceso envie el evento de terminación del proceso (event-handler 'PGprocess_Exited') With Me.ProgressBar1 .Style = ProgressBarStyle.Marquee .MarqueeAnimationSpeed = 50 End With
EDITO: Se me ocurre una cosa viable, si conoces la cantidad de archivos a copiar y su ubicación, entonces podrías calcular el porcentaje de la barra de progreso leyendo los bytes totales de los archivos de origen, y los bytes que se han copiado en el directorio destino. Puedes utilizar la class FileInfo para leer el tamaño de bytes de un archivo. Saludos
|
|
|
5716
|
Programación / .NET (C#, VB.NET, ASP) / Re: Archivo .bat sincronizado con barra de estado en visual bacic.net
|
en: 2 Marzo 2015, 22:37 pm
|
¿y donde está el código de VB.Net?, aquí no hacemos tareas. Además desconocemos la salida de dicho proceso "pgdump", y se te han dado indicaciones de lo que debes hacer. De todas formas te muestro un extenso ejemplo sobre cómo traducir ese batch-script a VB.Net, y cómo leer la salida normal/error de dicho proceso, de forma asíncrona: Imports System.Globalization Imports System.IO Imports System.Text Public Class TestForm ReadOnly backupDirDateFormat As String = Date.Today.ToString("yyyy\\MM\\ddMMyyyy", CultureInfo.InvariantCulture) ReadOnly dbFilenameDateFormat As String = Date.Now.ToString("ddMMyyyy_HH\H\Hmm\M\M", CultureInfo.InvariantCulture) ReadOnly sourceDir As String = "D:\ruta\backup" ReadOnly backupDir As String = Path.Combine(Me.sourceDir, Me.backupDirDateFormat) ReadOnly dbSrcFilepath As String = Path.Combine(Me.backupDir, String.Format("basede datos-{0}.backup", Me.dbFilenameDateFormat)) ReadOnly dbDstFilepath As String = Path.Combine(Application.StartupPath, "Nombre del backup") ReadOnly pgFilepath As String = "C:\Archivos de programa\PostgreSQL\9.3\bin\pg_dump.exe" ReadOnly pgPassword As String = String.Empty ReadOnly pgArgsFormat As String = <a> --host "localhost" --port "5432" --username "siscolsi" --format "custom" --blobs --verbose --file "{0}" "{1}"< /a>. Value Private WithEvents pgProcess As New Process With { .EnableRaisingEvents = True, .StartInfo = New ProcessStartInfo With { .FileName = Me.pgFilepath, .Arguments = String.Format(Me.pgArgsFormat, Me.dbSrcFilepath, Me.dbDstFilepath), .CreateNoWindow = False, .RedirectStandardError = True, .RedirectStandardOutput = True, .StandardErrorEncoding = Encoding.Default, .StandardOutputEncoding = Encoding.Default, .UseShellExecute = False, .WindowStyle = ProcessWindowStyle.Hidden, .WorkingDirectory = Application.StartupPath } } Private Sub TestForm_Load() _ Handles MyBase.Load If Not Directory.Exists(Me.sourceDir) Then Try Directory.CreateDirectory(Me.sourceDir) Catch ex As Exception Throw End Try End If With Me.pgProcess .Start() .BeginOutputReadLine() .BeginErrorReadLine() ' .WaitForExit(milliseconds:=0) .WaitForExit() End With End Sub Private Sub PGprocess_OutputDataReceived(ByVal sender As Object, ByVal e As DataReceivedEventArgs) _ Handles pgProcess.OutputDataReceived If Not String.IsNullOrEmpty(e.Data) Then Debug. WriteLine(String. Format("out: {0}", e. Data)) End If End Sub Private Sub PGprocess_ErrorDataReceived(ByVal sender As Object, ByVal e As DataReceivedEventArgs) _ Handles pgProcess.ErrorDataReceived If Not String.IsNullOrEmpty(e.Data) Then Debug. WriteLine(String. Format("err: {0}", e. Data)) End If End Sub Private Sub PGprocess_Exited(ByVal sender As Object, ByVal e As EventArgs) _ Handles pgProcess.Exited Debug. Print(String. Format("Process exited at {0}", Date. Now. ToShortTimeString)) End Sub End Class
Lee un poco sobre la class Process, y técnicas de IPC en .Net. Saludos.
|
|
|
5717
|
Programación / .NET (C#, VB.NET, ASP) / Re: Archivo .bat sincronizado con barra de estado en visual bacic.net
|
en: 2 Marzo 2015, 21:20 pm
|
Buenas
El planteamiento de la aplicación es incorrecta, ya que estás utilizando una herramienta simple de procesamiento por lotes desde un lenguaje de alto nivel.
1. Puedes hacer TODO lo que puedas hacer en Batch, utilizando puro código .Net.
2. Para implementar una barra de progreso a un proceso externo, en este caso CMD, debes utilizar técnicas de IPC (inter-process comunication) para leer el stream de salida de la CMD y tomar como referencia algún indicador que sirva para estimar el porcentaje de progresión.
El caso es que formulas una duda donde está implicado un código Batch pero ni siquiera muestras el contenido del Batch-Script ¿?, Si en la consola no se muestra ningún tipo de indicador (1%...100% / 1 de 100) entonces olvídate de poder implementar una barra de progreso en tu aplicación de escritorio, a menos que no te importe utilizar una barra de progreso de estado indeterminado (sin mínimo, ni máximo).
Saludos
|
|
|
5719
|
Sistemas Operativos / Windows / Re: Exportar maquina virtual.
|
en: 2 Marzo 2015, 04:50 am
|
Mi pregunta es: Para que sirve el "exportar una maquina" si copiando la carpeta donde esta la maquina virtual es mas rapido y eficaz? ¿Por qué CCleaner tiene una opción para vacíar la papelera, si podemos eliminar la carpeta de la papelera y es más rápido?. VMWare/VBox son aplicaciones para administrar máquinas virtuales, ¿cómo esperas que no tengan características de importación/exportación?, usemos un poco más la lógica, la pregunta que has formulado no tiene ningún sentido en mi opinión, simplemente las aplicaciones profesionales ofrecen características para automatizar tareas, además, estás aplicaciones están pensadas para usuarios de todos los niveles, no todos van a conocer la ubicación del directorio de las VM, ni darán por hecho que puedan copiar/pegar la carpeta de una VM directamente, recurriran a la aplicación para que les haga dicha tarea, ya que cómo ya he dicho, es una característica de automatización. Yo también siempre copio las VM directamente, pero si dices que la característica de exportar tarda más (considerablemente más, me imagino) entonces puede ser algo muy comprensible, ya que probablemente VVMWare/VBox hagan un análisis del estado de la VM antes o durante el copiado/exportación, pero si quieres conocer más detalles en profundidad sobre dicha operación de exportación... ¿por que no le formulas esa misma pregunta al soporte de VMWare/VBox?. Saludos!
|
|
|
5720
|
Programación / Programación C/C++ / Re: Error de Compilacion (No me toma SelectedItem de DropDownList)
|
en: 2 Marzo 2015, 04:38 am
|
bufff... solo he leido la primera frase y he omitido el resto, sinceramente no me apetece leerlo tal y cómo lo escribiste.
1. Bienvenido al foro, pero lee las normas antes de publicar, esto es un foro y hay que respetar unas normas de publicación y comportamiento.
2. Formula las dudas relacionadas con C# en el subforo dedicado a C#/Vb.Net y te ayudaré(mos) a resolver el problema que tengas.
3. Si formulas una duda de programación, CÓMO MINIMO especifica el lenguaje del que se trata, ten un poco de consideración pro los que se molesten en leer tu tema.
4. Utiliza las etiquetas Geshi para publicar bloques de codigo, lo repito, esto es un foro, no el Skype.
5. No es necesario que por cada linea escribas 5 o 20 lineas vacias más, formatea el texto para que sea legible, por dios, ¿pero esto que es?.
Saludos
|
|
|
|
|
|
|