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

#3401
Cita de: Rnovatis en 21 Agosto 2016, 01:38 AMpero como lo guarda en el disco duro esos archivos si el pc solo entiende de 0 y 1 binario? Como los almacena x detrás esos archivos

Creo que tu pregunta no está clara ya que se puede interpretar de varias maneras como de la manera que ya te han respondido algunos usuarios, así que te responderé desde otro punto de interpretación:

El contenido de un archivo siguen siendo ceros y unos, simplemente un programa específico que a sido desarrollado para "x" fin (ej. un reproductor de audio) interpretará esos ceros y unos de una forma específica. Los archivos llevan marcas o señales en la cabecera del archivo (es decir, ceros y unos adicionales) para saber como deben ser interpretados esos ceros y unos que componen al archivo en cuestión, y aparte de eso, los archivos se construllen siguiendo una estructura de datos específica (es a lo que el usuario @PalitroqueZ se refirió por "esquema"), por ejemplo un archivo de formato .mp3 se compone de un bloque de datos (ceros y unos) donde se almacena los metadatos (título, álbum, año, género, etc), luego otro bloque de datos donde se almacenan los ceros y unos que componen el sonido, etc, cada bloque suele tener un "punto de entrada" que lo hace localizable (ceros y unos que al traducirlos a ASCII tienen un significado).

Podría ser asimilable a tomar una hoja de un diccionario y examinarla con detenimiento, todo lo que hay escrito sobre el papel son letras, pero hay lineas en blanco que representan el inicio y el final de cada definición de una palabra del diccionario, entonces tenemos varias definiciones que están repartidas en la misma hoja, y cada una de esas definiciones representa algo distinto (puesto que no se refiere todo a la misma palabra del diccionario). Todo lo que hay sobre el papel sigue siendo texto, pero el texto sigue un orden, y con el ojo y el cerebro humano podemos interpretar una estructura de datos.

Hay otros aspectos adicionales que trabajan en armonía detrás del escenario para que un archivo se pueda reconocer como un .mp3 o como un .txt, como por ejemplo las asociaciones de archivo, las cuales, en Windows, se administran automáticamente mediante el registro de Windows.

Saludos
#3402
Dudas Generales / Re: no se que temas comente
21 Agosto 2016, 05:46 AM
Cita de: rn3w en 21 Agosto 2016, 02:47 AMtengo que ir a buscar a cada subforo si alguien me respondió, es muy incomodo hacer eso

Arriba de cada tema, tienes un botón que pone "Notificar":


Si lo activas, se te notificará mediante e-mail de nuevas respuestas al tema en el que lo hayas activado. Puedes desactivarlo volviendo a pulsar sobre el botón.

Saludos
#3403
Christian Soriano Gonzalez -> Chris - or - gon -> Crisorgón

No me gusta, suena a marca de productos de limpieza...

Saludos!
#3404
Ups, te escribí el comentario de aquí abajo pensando que estaba en el foro de VB.NET... qué confusión más tonta y qué pérdida de tiempo hacer ese código suponiendo que no te pueda servir de nada, pero bueno, de todas formas ahí dejo el código, por que en esencia la información proporcionada te servría igualmente para adaptarlo a VB6, me refiero a la solución basada en los mensajes de ventana, y lo cierto es que no has aclarado si trabajas en VB6 o VB.NET y en este subforo de VB nunca se sabe si andan preguntando de VB.NET o de VB6...

Saludos!













Cita de: rapbyone en 19 Agosto 2016, 21:16 PMSe puede?

Si, se puede, simplemente debes controlar los mensajes de ventana para ese ListBox.

En particular, para determinar si el texto o datos de un item han sido modificados, debes controlar el mensaje LB_INSERTSTRING o LB_SETITEMDATA respectivamente del tipo de item.

Para determinar cambios en la cantidad de items, debes controlar los mensajes LB_ADDSTRING y LB_DELETESTRING.

Los valores de los mensajes los puedes encontrar en el archivo "WinUser.h" de la SDK de Windows:
Citar/*
* Listbox messages
*/
#define LB_ADDSTRING            0x0180
#define LB_INSERTSTRING         0x0181
#define LB_DELETESTRING         0x0182
#define LB_SELITEMRANGEEX       0x0183
#define LB_RESETCONTENT         0x0184
#define LB_SETSEL               0x0185
#define LB_SETCURSEL            0x0186
#define LB_GETSEL               0x0187
#define LB_GETCURSEL            0x0188
#define LB_GETTEXT              0x0189
#define LB_GETTEXTLEN           0x018A
#define LB_GETCOUNT             0x018B
#define LB_SELECTSTRING         0x018C
#define LB_DIR                  0x018D
#define LB_GETTOPINDEX          0x018E
#define LB_FINDSTRING           0x018F
#define LB_GETSELCOUNT          0x0190
#define LB_GETSELITEMS          0x0191
#define LB_SETTABSTOPS          0x0192
#define LB_GETHORIZONTALEXTENT  0x0193
#define LB_SETHORIZONTALEXTENT  0x0194
#define LB_SETCOLUMNWIDTH       0x0195
#define LB_ADDFILE              0x0196
#define LB_SETTOPINDEX          0x0197
#define LB_GETITEMRECT          0x0198
#define LB_GETITEMDATA          0x0199
#define LB_SETITEMDATA          0x019A
#define LB_SELITEMRANGE         0x019B
#define LB_SETANCHORINDEX       0x019C
#define LB_GETANCHORINDEX       0x019D
#define LB_SETCARETINDEX        0x019E
#define LB_GETCARETINDEX        0x019F
#define LB_SETITEMHEIGHT        0x01A0
#define LB_GETITEMHEIGHT        0x01A1
#define LB_FINDSTRINGEXACT      0x01A2
#define LB_SETLOCALE            0x01A5
#define LB_GETLOCALE            0x01A6
#define LB_SETCOUNT             0x01A7
#if(WINVER >= 0x0400)
#define LB_INITSTORAGE          0x01A8
#define LB_ITEMFROMPOINT        0x01A9
#endif /* WINVER >= 0x0400 */
#if defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
#define LB_MULTIPLEADDSTRING    0x01B1
#endif

Y toda la información necesaria sobre los valores de la parametización (WParam/LParam) y el valor de retorno de los mensajes que he mencionado los tienes en la MSDN:




Ejemplo para determinar cambios en un item:

Código (vbnet) [Seleccionar]
Public Enum ListBoxMessages As Integer
   LB_SETITEMDATA = &H19A
   LB_INSERTSTRING = &H181 ' Equivalente a "LB_SETTEXT"
End Enum

+
Código (vbnet) [Seleccionar]
Public Class ListBoxEx : Inherits ListBox

   <Description("Occurs when the text of a single item has changed")>
   Public Event ItemTextChanged As EventHandler(Of ListBoxItemTextChangedEventArgs)

   Protected Overridable Sub OnItemTextChanged(ByVal e As ListBoxItemTextChangedEventArgs)
       If (Me.ItemTextChangedEvent IsNot Nothing) Then
           RaiseEvent ItemTextChanged(Me, e)
       End If
   End Sub

   Protected Overrides Sub WndProc(ByRef m As Message)

       Select Case m.Msg

           Case ListBoxMessages.LB_INSERTSTRING
               Dim itemIndex As Integer = m.WParam.ToInt32()
               If (itemIndex = -1) Then ' Equivalente al último item en la colección.
                   itemIndex = Me.Items.Count
               End If
               Dim newText As String = Marshal.PtrToStringUni(m.LParam)
               Me.OnItemTextChanged(New ListBoxItemTextChangedEventArgs(itemIndex, newText))

           Case ListBoxMessages.LB_SETITEMDATA
               Throw New NotImplementedException("")

       End Select

       MyBase.WndProc(m)

   End Sub

End Class

+
Código (vbnet) [Seleccionar]
Public NotInheritable Class ListBoxItemTextChangedEventArgs : Inherits EventArgs

   Public ReadOnly Property ItemIndex As Integer
   Public ReadOnly Property NewText As String

   Private Sub New()
   End Sub

   Public Sub New(ByVal itemIndex As Integer, ByVal newText As String)
       Me.ItemIndex = itemIndex
       Me.NewText = newText
   End Sub

End Class


Saludos
#3405
Scripting / Re: Contar y mover Archivos con BAT
20 Agosto 2016, 02:12 AM
Cita de: tincopasan en 20 Agosto 2016, 01:14 AM
Elektro:
           sin ánimo de ofenderte pero estaría bueno que seas coherente con  tus palabras.

Soy coherente y también consciente de lo que intentas decirme, en realidad me estás llamando hipócrita de una forma sutil :xD, no me ofende y es comprensible que pienses así puesto que en este tipo de preguntas yo la primera vez advierto pero también ayudo (todo el mundo se merece que le expliquen y hagan una excepción la primera vez para darle una segunda oportunidad de hacer las cosas bien hechas en el futuro), ahora, si esa persona vuelve a publicar por segunda vez una pregunta igual de VAGA pidiéndolo todo hecho ...te aseguro que directamente ni le responderé.

Saludos!
#3406
Scripting / Re: Contar y mover Archivos con BAT
19 Agosto 2016, 22:30 PM
Somos generosos y ayudamos, pero no hacemos el trabajo de nadie por que no somos las hermanitas de la caridad. Ni siquiera has mostrado un código que demuestre que al menos lo hayas intentado hacer por ti mismo.

Con el comando ForFiles puedes listar los archivos de un directorio para obtener la fecha de creación/modificación y el nombre completo, el problema es que para una cantidad grande como 50.000 archivos entonces no te merece la pena hacerlo en Batch, es demasiado lento y engorroso, por ese motivo te mostraré una solución en otro lenguaje soportado nativamente por Windows...

El siguiente script lo he desarrollado en PowerShell, lo que hace es listar los archivos de un directorio según la extensión de archivo especificada, ordenar los archivos por la última fecha de modificación de cada uno, y mover los primeros 1.000 archivos con más antiguedad al directorio de destino:

Código (ini) [Seleccionar]
$srcDir = "C:\Source\"
$dstDir = "C:\Destination\"
$ext = "txt"
$max = 1000

Get-ChildItem -Path $srcDir -Filter "*.$($ext)" -Force |
sort LastWriteTime | select -first $max |
ForEach-Object {
Move-Item -Path $_.FullName -Destination $dstDir -Force
Write-Host "$($_.FullName) -> $($dstDir)$($_.Name)"
}

Write-Host "Press any key to exit..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")


EDITO:
...O como a mi me gusta desenvolverme, con la librería de classes de .NET:
Código (ini) [Seleccionar]
# User fields
$srcDir = "C:\Source\"
$dstDir = "C:\Destination\"
$ext    = "txt"
$max    = 1000

# .NET Framework Classes
$CON  = [System.Console]
$DIR  = [System.IO.Directory]
$PATH = [System.IO.Path]
$LINQ = [System.Linq.Enumerable]

# LINQ's Key-selector functions
$fileFunc = [Func[string, [System.IO.FileInfo]]]{ param($filepath) $filepath }
$sortFunc = [Func[[System.IO.FileInfo], [System.DateTime]]]{ param($file) $file.LastWriteTime }

$files = $LINQ::Select($DIR::GetFiles($srcDir, "*.$($ext)", 0), $fileFunc)
$group = $LINQ::Take($LINQ::OrderBy($files, $sortFunc), $max)

foreach ($file in $group) {
    $dstFullname = $PATH::Combine($dstDir, $file.Name)
    $CON::WriteLine("$($file.FullName) -> $($dstFullname)")
    $file.MoveTo($dstFullname)
}

$CON::WriteLine("Press any key to exit...")
$CON::ReadKey($true)


Saludos
#3407
Cita de: ypsilon en 19 Agosto 2016, 17:22 PMno hay forma humana de que realice el cambio utilizando

El problema es que estás cometiendo un error de principiante muy común que inevitablemente desencadena en un error de sintaxis. Debes asegurarte de encerrar entre comillas dobles los valores/argumentos que contengan espacios en blanco:

Set "valor1=IP Address1"

REG ADD ... /V "%valor1%" ...


Saludos
#3408
Cita de: torota en 19 Agosto 2016, 06:21 AMesta claro que no van a denunciar a nadie por eso porque llevan años haciendo esos ataques y nunca he visto ningun de post de que los hayan denunciado.

Creo que si una compañia denunciase a un "cyber-delincuente" o éste recibiese una notificación de juzgado (o como funcione la cosa en EEUU), lo primero: se le ponen los huevos de corbata -y lo segundo: en lo que menos pensará esa persona será en ir publicándolo por los foros de Internet. Me refiero a un hacker de verdad, una persona inteligente y sobre todo metódica, no el típico jaker (con jota) que alardea de todas sus novatadas en cualquier red social como si tuviese total impunidad ante la ley, un completo descerebrado vaya (y los hay a patadas en el mundillo del hacking), me gustaría ver la reacción de una persona así cuando la policía llame a la puerta de su casa para requisarle el PC y se de cuenta que no van a necesitar buscar muchas pruebas por que el sospechoso ya lo confesó todo por Internet a sus amigos y a personas de Internet que ni conoce... como para poder decir que todo fue un mal entendido o que se arrepiente mucho de sus actos y ya no lo volverá a hacer (esperando que le rebajen la multa o la posible condena de carcel), eso ya no colará ...por tonto.

Un saludo!
#3409
Cita de: simorg en 19 Agosto 2016, 01:32 AMNO, ninguno, instalación limpia.

Lo mismo digo yo, ningún problema. Bueno, el único problema que tuve fue estético, y ya lo corrigieron en la build 10586 de Windows 10.




Al menos 4 de 5 problemas que has mencionado son de aplicaciones de terceros que nada tiene que ver con Windows 10 en si mismo. Si los runtimes de Java no te funcionan entonces la culpa y responsabilidad es de Oracle, si Minecraft no te funciona por lo anterior entonces responsabilidad de sus desarrolladores, si AVG te hace cosas extrañas por una mala implementación de compatibilidad con Windows 10 es culpa de AVG, Visual Studio es un producto separado de Windows 10, y el Garbage Collector es un componente interno de los runtimes de .NET Framework que tampoco tiene nada que ver con tu versión de Windows, además te recuerdo que con la class System.GC puedes controlar el comportamiento del servicio del Garbage Collector, etc... a ver si adjudicamos la culpa o responsabilidad a quien realmente la tiene.

No es por defender a Microsoft, pero en tu mensaje solo veo un criticar por criticar a Windows 10, sin sentido ni argumento.

Aparte de todo lo mencionado, no es necesario formatear para poder realizar una instalación limpia de Windows 10, puedes instalarla encima de la instalación que ya tienes y sin perder ningún archivo, simplemente no debes elegir el modo 'actualización' al instalar Windows 10 (u otro Windows)

Saludos!
#3410
Cita de: torota en 18 Agosto 2016, 21:47 PMHay mucha gente que realiza este tipo de ataques a diversas webs como spotify,gmail... y siempre me he preguntado hasta que punto son ilegales.

No te preocupes, por supuesto que NO es ilegal                     ...siempre que el propietario de esa página web te haya contratado para poner a prueba los sistemas de seguridad :¬¬

En fin... vaya preguntas que haceis.

Saludos!