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

#4271
RegEx es lento, intenta evitarlo.

En el método FindAndMergeFiles realiza esta modificación:

Código (vbnet) [Seleccionar]
Using sr As StreamReader = txtfile.OpenText

   Using sw As New StreamWriter(Path.Combine(topDir.FullName, curFilename), append:=True, encoding:=Encoding.Default, bufferSize:=4096)

       Dim content As String = sr.ReadToEnd.Replace(Environment.NewLine, "")
       If Not String.IsNullOrEmpty(content) Then
           sw.WriteLine(content)
       End If

   End Using ' sw

End Using ' sr


La linea que queda en blanco al final del archivo es normal, ya que se está llamando al método WriteLine.

Saludos
#4272
Cita de: CR0N0S en  5 Noviembre 2015, 14:59 PMBásicamente es crear un programa cuya única función sea ejecutar un bucle infinito, de esta manera el equipo no está inactivo al mantener funcionando el bucle y no se apaga. El código que te puse está en C#, para una aplicación de consola. Entero sería algo así:

Pensar así es una equivocación, el código que has mostrado no funcionará, por que el trabajo que haga una aplicación no es lo mismo que lo que el sistema considera por "estar trabajando", donde se requiere una interacción por parte del usuario.

Con un búcle infinito no conseguirás nada, a menos que asignes una señal de actividad al thread donde estás ejecutando ese búcle (o cualquier otra operación) para mantener el sistema despierto, con la función de la API que mencioné en el post de arriba.

Ten en cuenta que decenas de servicios y aplicaciones de Windows, y aplicaciones de terceros que mantengas en ejecución, están siempre en segundo plano, trabajando, pero aun así el sistema se pone en estado de inactividad, ¿verdad?.

Aparte de eso, hay una cosa muy importante a tener en cuenta en el código que has mostrado, y es que el bucle infinito consumira CPU hasta tal punto que pondrá al PC en un estado de estrés al realizar un trabajo tan intensivo o repetitivo, el cual no es necesario, ya que teniendo en cuenta que el tiempo mínimo para que se ponga el sistema en estado Sleep es de 1 minuto, entonces deberías detener el thread por unos 50 segundos en cada iteración del búcle para dejar descansar al PC y no consumir tantos recursos del sistema:

Código (vbnet) [Seleccionar]
While True
   Console.WriteLine("Ejecutando bucle infinito")
   Threading.Thread.Sleep(50 * 1000)
End While


De todas formas, como ya digo esa metodología del búcle infinito es inservible para tal fin, pero lo comento para evitar malos hábitos de programación en el sentido que acabo de explicar.

EDITO: Tal vez podrías probar a utilizar un búcle infinito donde simulases una pulsación de teclado o keystroke, con el método System.Windows.Forms.SendKeys.Send, pero de igual modo no creo que esto funcionase para tal fin. (no lo he comprobado)

Saludos!
#4273
+1 punto por mencionar al hamster dramático, no podía faltar. Y el casting del afro-ninja, que ya no lo recordaba xD.

-20 puntos por olvidarse de la grumpy cat (Tardar Sauce):

[youtube=640,360]https://www.youtube.com/watch?v=sXkZje-dSnE[/youtube]  [youtube=640,360]https://www.youtube.com/watch?v=INscMGmhmX4[/youtube]

Y del gato de las cosquillas!:
[youtube=640,360]https://www.youtube.com/watch?v=cTcnbaudf6E[/youtube]

Saludos!
#4274
Recurriendo a la APi de Windows, la función SetThreadExecutionState, supuestamente es capaz de evitar que el sistema entre en un estado IDLE (inactividad). Esta función afecta por thread o hilo.


Cita de: MSDNEnables an application to inform the system that it is in use, thereby preventing the system from entering sleep or turning off the display while the application is running.

Nótese que dicha función, usándola periodicamente (mediante un "temporizador" por ejemplo) y pasándole los valores adecuados (ES_CONTINUE + ES_SYSTEM_REQUIRED + ES_AWAY_MODE_REQUIRED) simulará que el PC está en estado de sueño (Sleep). Si también quieres prevenir que la pantalla se apague, usa el valor o flag ES_DISPLAY_REQUIRED.

Otra alternativa, en caso de que esa metodología no te funcionase por el motio que fuese, sería utilizar la función Win32 SendMessage para enviar el mensaje de ventana WM_POWERBROADCAST junto al prámetro (WParam) PBT_APMQUERYSUSPEND ,
pero esto requeriría desarrollar otro wrapper para dicha función. En caso de que SetThreadExecutionState no te funcione me pondré con la otra función de la WinAPI.

Cuéntanos los resultados obtenidos.




Código fuente, desarrollado en el lenguaje Visual Basic.Net:


Ejemplo de uso:
( Lo he testeado en Windows 7 x64, funciona perfectamente. )

Código (vbnet) [Seleccionar]
Public Class Form1 : Inherits Form

   Private WithEvents awakeTimer As Threading.Timer
   Private ReadOnly awakeInterval As Integer = 30000 'ms

   Public Sub New()

       Me.InitializeComponent()
       Me.awakeTimer = New Threading.Timer(AddressOf Me.AwakeTimer_Callback, Nothing, Me.awakeInterval, 0)

   End Sub

   Private Sub AwakeTimer_Callback(ByVal stateInfo As Object)

       ' Send periodically an Awake signal to avoid the system turning off the display and entering into Sleep or Hibernation mode.
       PowerUtil.SendAwakeSignal()
       Me.awakeTimer.Change(Me.awakeInterval, 0)

   End Sub

   Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) _
   Handles MyBase.FormClosing

       Me.awakeTimer.Dispose()
       PowerUtil.RemovedAwakeSignal()

   End Sub

End Class


Saludos
#4275
Cita de: 01munrra en 26 Octubre 2015, 03:24 AMme arroja un error:
Código (vbnet) [Seleccionar]

Error 1 El método 'Private Sub button_resp1_Click(sender As Object, e As System.EventArgs, ByRef res As String)' no puede controlar el evento 'Public Event Click(sender As Object, e As System.EventArgs)' porque no tienen una firma compatible.



que me recomiendadn?

Lo que yo te recomiendo, una vez solucioando el problema, es que empieces a documentarte sobre lo que es un event-handler y un delegado en general, para comprender. No puedes pretender cambiar la firma de un handler para pasarle "X" parámetros como estabas intentando hacer, pues no son metodos cualquiera, son metodos destinados a controlar un evento, por ende, deben recibir unos parámetros específicos (declarados por el evento que sea).


Saludos
#4276
.NET (C#, VB.NET, ASP) / Re: Función Split VB.NET
4 Noviembre 2015, 04:16 AM
Cita de: R3Z en  4 Noviembre 2015, 03:26 AMcomo hago esta funcion para encontrar la primera palabra

textbox1.text.split(" ").first  esta  funcion me encuentra la palabra despues del espacio

VUELVO A REPETIR:

Cita de: Eleкtro en  4 Noviembre 2015, 01:34 AMSi tu intención es crear un array a partir de un string, y evitar que hayan elementos en blanco/vacíos, entonces utiliza el overload de la función String.Split que sirve precisamente para ese propósito:
Código (vbnet) [Seleccionar]
Dim words As String() = "Hola     Juan".Split({" "c}, StringSplitOptions.RemoveEmptyEntries)

...
Código (vbnet) [Seleccionar]
lblprimerpalabra.txt = words.First
...

Despues, para contar la cantidad de elementos del array puedes utilizar la propiedad Count, o seguir utilizando el For Each de tu ejemplo, pero sin la necesidad de evaluar elmentos vacíos.

Saludos.
#4277
.NET (C#, VB.NET, ASP) / Re: Función Split VB.NET
4 Noviembre 2015, 01:34 AM
Cuesta bastante entender lo que pretendes hacer en realidad...

Si lo que quieres es eliminar espacios al principio o al final del String, entonces utiliza la función String.TrimStart o String.TrimEnd respectivamente.

Si tu intención es crear un array a partir de un string, y evitar que hayan elementos en blanco/vacíos, entonces utiliza el overload de la función String.Split que sirve precisamente para ese propósito:
Código (vbnet) [Seleccionar]
Dim words As String() = "Hola     Juan".Split({" "c}, StringSplitOptions.RemoveEmptyEntries)

El array solamente contendrá "palabras", cero elementos vacíos (espacios en blanco), por lo que puedes hacer este tipo de evaluación de forma segura:
Código (vbnet) [Seleccionar]
If (words.Any) Then
   lblprimerpalabra.txt = words.First

Else
   ' El array no contiene elementos.

End If


Saludos
#4278
Cita de: #!drvy en  3 Noviembre 2015, 11:40 AM
Citarnunca llega

Cuanta razón.

Suelo ver documentales de todo tipo de temáticas, y hace poco menos de 1 año y medio vi un docu sobre el grafeno (bueno, sobre tecnología en general), y por aquél entonces decían que solo existia 1 o 2 empresas dedicadas a la producción en masa de grafeno ...en toda España, así que esto va para largo. Una de las fábricas, la única importante (según la fuente), se llama Graphenea.

A mi la idea del grafeno me parece igual de prometedora que el traje espacial BioSuit, ¡pero pasan los años y nunca llegan!

       

Saludos!
#4279
Lo que sugieres es una idea genial, aunque por desgracia no existe una forma giada para hacerlo mediante las opciones de la IDE.

Personalmente conozco muchas extensiones gratuitas y de pago que nos hacen más facil la vida de programador, pero ninguna de esas extensiones ha pensado en añadir esa característica el editor de código de Visual Basic, y nadie parece saber nada al respecto de su existencia.

Aparte, actualmente en la versión más reciente de Visual Studio (2015) esa característica que mencionas ya no está disponible en el editor de código de C#, al parecer Microsoft decidió eliminarla, no se sabe por qué.

No esperes encontrar nada, por que desafortunadamente no lo hay.

Sin embargo, puede haber esperanzas. Hace tiempo desarrollé una extensión para Visual Studio, estoy algo acosumbrado a la SDK, aunque por otro lado la automación de IntelliSense es un mundo aparte que requiere investigación, intentaré buscar documentación al respecto para desarrollar una extensión que añada esa característica para Visual Basic, aunque no puedo prometer nada por ahora.

Por el momento solo tengo ideas de como llevar a cabo el algoritmo empezando por obtener las excepcioens documentadas de los miembros mediante el explorador de objetos (Object Browser), y una imagen para recordarme mis expectativas de diseño:


Si consigo algún avance lo haré saber en este post, no se cuanto tiempo me llevará.

Te dejo aquí la extensión que hice en el pasado, por si te sirve de algo:

Un saludo
#4280
Hombre... en mi humilde opinión, culpar a Facebook de las infelidades de pareja, está al nivel de culpar a los video juegos violentos por asesinos en serie.

Pero pensándolo mejor... tal vez si que exista una relación muy grande, me refiero a que una cosa puede llevar a la otra, es decir, la adicción provocada por Facebook probablemente llevará a ser infiel a una persona que sea infiel (ya que mantendrá conversaciones con cientos de pretendientes), y a las que nunca hayan sido infiel les dará muchas oportunidad para serlo, muchas más de las que tendrían si no fuesen adictas a las redes sociales.

Saludos!