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

#4311
Cita de: elqueteconte en 26 Octubre 2015, 17:29 PMQue es lo que realmente hice mal?
Porque me da esos warnings?

Supuestamente no estás haciendo nada mal y tampoco te debería saltar ningún warning.

Los 4 primeros parámetros del método FindFileAndReplaceTextIn son de tipo String, y el quinto parámetro es del tipo StringComparison, por ende, si tu le estás pasando 4 strings + un StringComparison entonces no entiendo en absoluto por que te salta el warning, ya que no debería.

Solo se me ocurre que hayas modificado la parametización del método FindFileAndReplaceTextIn cambiando el orden del último parámetro ...¿?

De todas formas, tengas el orden de los parámetros como lo tengas, siempre puedes usar parámetros nombrados (named parameters) para especificar estrictamente a que parámetro correspodne cada valor que le pasas al método:
Código (vbnet) [Seleccionar]
FindFileAndReplaceTextIn(sourceDir:=sourceDir, filenameFind:="GL.txt",
                        txtfind:="textbuscar", txtreplace:="textoreemplaza",
                        comparisonType:=comparisonType)


Eso debería solucionar el problema, a menos que hayas modificado algo xD.

Saludos!
#4312
Lamentablemente por las restricciones del foro en cuanto al límite de caracteres por post creo que no voy a poder seguir publicando snippets, ya que cada vez me quedan más grandes y muchas veces no me caben los snippets y debo subirlos a otro lugar para poner un simple enlace aquí...

Así que he decidido no publicar más snippets "importantes" o "grandes" por que me agobia dicha restricción, pero seguiré compartiendo snippets "pequeños" si surge la ocasión claro está.

También quiero mencionar que estoy construyendo mi GitHub en el cual pienso subir todos los snippets que tengo (y de paso, a ver si alguien me contribuye a optimizar los códigos xD).

Pueden visitar el repositorio de snippets a través de esta url:
http://github.com/ElektroStudios/VBNetSnippets

...Todavía faltan muchas categorías y snippets por subir, ya que primero tengo que tratar de reorganizarlos y refactorizarlos (por ejemplo, en lugar de tener 20 snippets sobre manipulación de strings, los paso a un módulo de extensiones de String), y eso lleva su tiempo.

Bueno, un saludo!
#4313
Cita de: rockhevy1000 en 24 Octubre 2015, 21:46 PMSolo una pregunta, el hecho de que pongas If Exist "%ProgramFiles(x86)%" Else "%ProgramFiles%" es para que busque en Archivos de Programa (x86) si está en el equipo, si no, en Archivos de Programa, verdad?

Exacto. Por lo que dijiste de que le podías pasar el script a otras personas, en el caso de que alguna persona no tenga un S.O. de 64 Bits.




Cita de: rockhevy1000 en 24 Octubre 2015, 21:46 PMAl fin quedo así:

Genial, pero deberías intentar no repetir código:

Código (dos) [Seleccionar]
Echo Off & Color cf & Title Launcher UT3

Copy "D:\Mis Programas\Juegos\Unreal Tournament 3\Pantalla Split\1 o 2 jugadores\1player\UTGame.ini" "%USERPROFILE%\Documents\My Games\Unreal Tournament 3\UTGame\Config"
Cls

If Exist "%ProgramFiles(x86)%" (
PUSHD "%ProgramFiles(x86)%"
) Else (
PUSHD "%ProgramFiles%"
)

mode con cols=47 lines=19
Call :ASCII_ART                               
Echo.    .: Iniciando Partida Para 1 Jugador :.

For /R %%# In ("*ut3.exe") Do (
Start /Wait "Unreal Tournament 3" "%%~f#"
)

POPD
Call :ASCII_ART                                 
Echo.    .: Terminando Partida Para 1 Jugador :.
(ping localhost -n 3)1>Nul
Exit /B 0

:ASCII_ART
Echo.
Echo.
Echo.          z       z zzzzzzzzz   zzz
Echo.          z       z     z      z   z
Echo.          z       z     z     z    z
Echo.          z       z     z          z
Echo.          z       z     z         zz
Echo.          z       z     z       zzz
Echo.          z       z     z          z
Echo.          z       z     z           z
Echo.          z       z     z           z
Echo.          z       z     z     z     z
Echo.           z     z      z     zz   z
Echo.            zzzzz       z       zzz
Echo.                                         
Echo.         
Goto :EOF


Saludos
#4314
Cita de: El_Andaluz en 24 Octubre 2015, 01:38 AM¿ Que es sindrome de noriedad ?  ;D No se si se lee bien con el AZUL si queréis lo cambio a otro color que lo veáis mejor.

El azúl oscuro se lee como el culo, no digas que no lo sabes despues de la charla que tuvimos sobre los colores que usas :xD.

PD: Noriedad no, Notoriedad. Hacerse notar (o más bien "dar la nota" según quien)

Saludos!

#4315
Cita de: elqueteconte en 23 Octubre 2015, 21:42 PM1.- Al momento de crear el módulo me da error con las variables RegexOptions y Regex; el compilador me indica que no están definidas.

Tienes que importar los espacios de nombres o NameSpaces necesarios.

Código (vbnet) [Seleccionar]
Imports System.Text.RegularExpressions

Sinceramente, si tienes pensado seguir utilizando VB.Net para otro tipo de tareas en el futuro, entonces esto es algo a lo que te deberías acostumbrar a poder resolverlo por ti mismo ya que es una situación de lo más común.

Coloca por 1 o 2 segundos el puntero del mouse sobre la orden o el miembro que se marca en rojo en la IDE (en este caso la palabra "RegEx"), aparecerá un icono al final del nombre con una flechita, si le aprietas a la flecha aparecerá una lista con varias opciones resolutivas entre ellas importar "X" namespace (no siempre aparecerá esa opción, pero en este caso debería salir), si le pinchas automaticamente se añadirá la instrucción Imports que sea necesaria.




Cita de: elqueteconte en 23 Octubre 2015, 21:42 PM2.- Como lo acoplo esa función en el script que hemos venido trabajando?

Creo que te refieres a hacer algo así:

Código (vbnet) [Seleccionar]
Sub...

'El usuario selecciono la opcion para cambiar texto
If (Me.ComboBox1.SelectedIndex = 0) Then
   Dim comparisonType As StringComparison = StringComparison.OrdinalIgnoreCase
   FindFileAndReplaceTextIn(sourceDir, "GL.txt", "TXT01", "TXT1", comparisonType)
   FindFileAndReplaceTextIn(sourceDir, "GL.txt", "TXT02", "TXT1", comparisonType)
   FindFileAndReplaceTextIn(sourceDir, "IMP6000.txt", "TXT01", "TXT1", comparisonType)
   FindFileAndReplaceTextIn(sourceDir, "IMP6000.txt", "TXT02", "TXT1", comparisonType)

Else
   Exit Sub

End If

End Sub

+
Código (vbnet) [Seleccionar]
Public Sub FindFileAndReplaceTextIn(ByVal sourceDir As String, ByVal filenameFind As String,
                                   ByVal txtfind As String, ByVal txtreplace As String,
                                   ByVal comparisonType As StringComparison)

   For Each topDir As DirectoryInfo In New DirectoryInfo(sourceDir).GetDirectories("*", SearchOption.TopDirectoryOnly)

       For Each txtfile As FileInfo In topDir.GetFiles("*.txt", SearchOption.TopDirectoryOnly)

           If txtfile.Name.Equals(filenameFind, StringComparison.OrdinalIgnoreCase) Then
               Dim txt As String = File.ReadAllText(txtfile.FullName, Encoding.Default).
                                        Replace(txtfile.FullName, txtfind, txtreplace, comparisonType)

               File.WriteAllText(txtfile.FullName, txt, Encoding.Default)
           End If

       Next txtfile

   Next topDir

End Sub


El método ReplaceText ya no sería necesario.




Citar3.- La función ReplaceText (ya la puse en ingles jejejejejeje)

Genial, aunque no hacia falta, si te entiendes mejor con la programación en Español entonces no cambies tus hábitos por un comentario que hice, de todas formas así en Inglés está todo mucho mejor ...es algo positivo.




Citariria dentro del formulario; correcto?

Todo código que no forme parte del Form (como el módulo que compartí, o tus funciones de reempalzar texto y tal) deberías aislarlo de la class del form, en la medida de lo posible, es decir, las llamadas a esos métodos las realizas desde la Clas del Form claro está (Form1.vb o lo que sea), pero los bloques de código de esos métodos los declaras en módulos/classes distintas.

Saludos
#4316
Cita de: #!drvy en 23 Octubre 2015, 12:52 PM
Lo que buscas es la propiedad div.codeSnippetContainerCodeContainer, linea 175 del código que has puesto.

Solo tienes que aplicarle un background: #elcolor !important;

Muxas gracias #!drvy, todavía no lo he probado pero confio en que funcionará xD.

PD: Mis dotes de CSS son muy tristes, pero al menos la intuición no me falló ...del todo.

Saludos!
#4317
El motor RegEx es lento. Si realmente estás usando patrones de expresiones regulares para buscar texto, o si quieres reemplazar texto sin diferenciar mayus/minus entonces te sugiero usar estas extensiones:

( La función StringExtensions.Replace es mucho más rápida que una expresión regular en modo IgnoreCase )

Código (vbnet) [Seleccionar]
Imports System.Runtime.CompilerServices

Public Module StringExtensions

   <Extension>
   Public Function ReplaceRegEx(ByVal sender As String,
                                ByVal findWhat As String,
                                ByVal replaceWith As String,
                                Optional ByVal regexOptions As RegexOptions =
                                               RegularExpressions.RegexOptions.None) As String

       If String.IsNullOrEmpty(sender) Then
           Return sender

       ElseIf String.IsNullOrEmpty(findWhat) Then
           Throw New ArgumentNullException(paramName:="findWhat")

       Else
           Return Regex.Replace(sender, findWhat, replaceWith, regexOptions)

       End If

   End Function

   <Extension>
   Public Function Replace(ByVal sender As String,
                           ByVal findWhat As String,
                           ByVal replaceWith As String,
                           ByVal comparisonType As StringComparison) As String

       If String.IsNullOrEmpty(sender) Then
           Return sender

       ElseIf String.IsNullOrEmpty(findWhat) Then
           Throw New ArgumentNullException(paramName:="findWhat")

       Else
           Return StringExtensions.Replace(sender, findWhat, replaceWith, comparisonType, stringBuilderCapacity:=0)

       End If

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <remarks>
   ''' Author: Elektro
   ''' Orig. : http://www.codeproject.com/Articles/10890/Fastest-C-Case-Insenstive-String-Replace?msg=1835929#xx1835929xx
   ''' </remarks>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="stringBuilderCapacity">
   ''' The initial buffer size of the <see cref="Stringbuilder"/>.
   ''' This parameter is reserved for testing purposes.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   <DebuggerHidden>
   <DebuggerStepThrough>
   <Extension>
   Private Function Replace(ByVal sender As String,
                            ByVal findWhat As String,
                            ByVal replaceWith As String,
                            ByVal comparisonType As StringComparison,
                            ByVal stringBuilderCapacity As Integer) As String

       If String.IsNullOrEmpty(sender) Then
           Return sender

       ElseIf String.IsNullOrEmpty(findWhat) Then
           Throw New ArgumentNullException(paramName:="findWhat")

       Else
           Dim posCurrent As Integer = 0
           Dim lenPattern As Integer = findWhat.Length
           Dim idxNext As Integer = sender.IndexOf(findWhat, comparisonType)
           Dim result As New StringBuilder(capacity:=If(stringBuilderCapacity <= 0, Math.Min(4096, sender.Length), stringBuilderCapacity))

           While (idxNext >= 0)
               result.Append(sender, posCurrent, (idxNext - posCurrent))
               result.Append(replaceWith)

               posCurrent = (idxNext + lenPattern)
               idxNext = sender.IndexOf(findWhat, posCurrent, comparisonType)
           End While

           result.Append(sender, posCurrent, (sender.Length - posCurrent))

           Return result.ToString

       End If

   End Function

End Module





Citar
Código (vbnet) [Seleccionar]
Private Sub ReemplazaTexto(ByVal Fichero As String, ByVal Texto_Busca As String, ByVal Texto_Reemplaza As String)
   Dim Reader As New StreamReader(Fichero)
   Dim Content As String = Reader.ReadToEnd()
   Reader.Close()
   Content = Regex.Replace(Content, Texto_Busca, Texto_Reemplaza)
   Dim Writer As New StreamWriter(FicheroNuevo)
   Writer.Write(Content)
   writer.Close()
End Sub

Usando el módulo de arriba, yo lo dejaría tal que así (pero sin los nombres en Español xD):
Código (vbnet) [Seleccionar]
Private Sub ReemplazaTexto(ByVal fichero As String,
                          ByVal texto_Busca As String, ByVal texto_Reemplaza As String,
                          ByVal comparisonType As StringComparison)

   If Not File.Exists(fichero) Then
       Throw New FileNotFoundException(message:="File not found", fileName:=fichero)

   Else
       Dim txt As String = File.ReadAllText(fichero, Encoding.Default).
                                Replace(texto_Busca, texto_Reemplaza, comparisonType)

       File.WriteAllText(fichero, txt, Encoding.Default)

   End If

End Sub


EDITO: Pero vamos, si sabes que la palabra va a ser toda en mayúscula o minúscula o como sea entonces ignora el módulo de arriba y usa un String.Replace normal claro está.

Saludos!
#4318
Cita de: sorry en 23 Octubre 2015, 12:30 PMañadir el texto de un documento a otro en una zona concreta, después de una palabra para ser exactos.

Se puede llevar a cabo, pero sería demasiado tedioso de conseguir y el resultado sería un código demasiado sucio e ineficiente. Esa tarea es algo muy complejo para un lenguaje limitado como es Batch.

El primer problema que se me ocurre es que tendrías que idear un tedioso algoritmo que iterarase todos los caracteres del archivo objetivo delimitándolo por el caracter espacio " " para poder identificar palabras hasta encontrar la palabra donde quieres insertar texto... sería como reinventar la rueda.

En este script que desarrollé hace tiempo, puedes encontrar algunos ejemplos de manipulación de texto, los cuales de por si ya son un lio.
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto

No vale la pena el esfuerzo, ya te aviso. Tu mejor opción es usar un lenguaje apto.

En VBS podrías utilizar el método "Split" para partir el texto en dos según la palabra especificada, o también podrías utilizar una expresión regular para obtener la palabra y su posición.

En otros lenguajes más sofisticados como por ejemplo VB.Net/C# (solo por nombrar a los que estoy acostumbrado) sería mucho más sencillo, podrías utilizar las metodologías mencionados plus la función "String.IndexOf" y muchas otras más formas de llevarlo a cabo.

Saludos
#4319
Buenas

Hace poco descubrí la extensión Stylish para firefox. Existen muchas extensiones parecidas pero esta me gustó mucho por su recopilación de user-scripts sobre todo de themes oscuros.
http://addons.mozilla.org/en-us/firefox/addon/stylish/
http://userstyles.org/

Estoy usando este script para modificar el aspecto de la MSDN:
https://userstyles.org/styles/107229/msdn-dark-docs https://userstyles.org/styles/96523/msdn-black-background-theme

El problema que tengo es que el aspecto que le han aplicado a los bloques de código es horrible, tanto por el gusto de colorización como para la lectura del código:


He conseguido personalizarlo un poco usando colores menos brillantes y más adecuados para la lectura:


Y ahora quiero modificar también el color de fondo de los bloques de código (para que no sea tan oscuro), pero no encuentro la propiedad correspndiente en el script, o a lo mejor es que debo añadirla yo.

¿Podrían ayudarme a conseguirlo?.

Este es el script (sin modificar):

Código (css) [Seleccionar]
@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("msdn.microsoft.com") {

ul#srv_shellHeaderNav
 {
   /* complete the silly border and make it a bit fleshier
   */
   border-bottom: 1px solid black;
   /*
   adjust for that 12px overhang on the right,
   which was a concequence of using a linked border of our own
   */
   /*margin-right: -11px;*/
   /* use above method, if you dont have firefox
      this will have a greater chance of  interfering
   with future modifications by microsoft, also it does not
   seem to like the right margin as much (1px overhang persistent) */
   -moz-margin-start: -11px;
   -moz-margin-end: -11px;
 }
 
*[role="menu"], .top-level-link-text
 {
   background-color: white !important;
   filter: invert(100%) !important;
 }

#body,#ux-header,#headerContainer
{
   width: auto  !important;
   margin-left: 10px  !important;    
   margin-right: 10px  !important;
   
}
#body
{


}


#content,#leftNav
{
margin-top: 25px !important;
border-top: 1px solid gray !important;
}    
#content>div, #leftNav>div
{
margin-top: 35px;
}

img[title="Visit the Windows Store"]
{
 border-radius: 20px !important;
}

#BodyBackground,body,p,a
{
background: #252525 !important;
color: #FFFFFF !important;
}




input
{
color: white !important;
}

/* just images that are in table definitions, usually spaced out  as big buttons */
tr>td>img,
td a>img
{
border-radius: 4px !important;
border: white solid !important;
}
td a>img:hover
{
border: white outset !important;
}
td a>img:active
{
border: white inset !important;
}

body *
{
 border-color: gray !important;
 outline-color: gray !important;
 background-color: transparent !important;
}

#VideoHowTo
{
width:0px;
height: 100px;
padding-left: 300px;
background-color: transparent !important;

}

h1,h2,th, li.linksTitle a,
td span[style="font-family:'Segoe UI',Verdana,Arial;font-size:1.385em;color:#5e5e5e;font-weight:bold;"],
div dl dt span span a,
div a,
.HeaderContainerRefinement
{
color: #C0C0C0 !important;
}
h3,h4,.ResultDescription
{

color: #A0A0A8 !important;
}
td
{
color: #A0A0A8 !important;
}
#rcA
{
color: #707070 !important;
}
/* code editor-like colors */


pre
{
color: rgb(214,222,212) !important;
font-family: terminal !important;
font-weight: normal !important;
font-style: normal !important;
}
/*COMMENT*/
pre span[style="color:Green;"]
{
color: lime !important;
}

pre span[style="color:Blue;"]
{
color: cyan !important;
}

pre span[style="color:#A31515;"]
{
color: rgb(70,222,230)!important;
background-color: rgb(37,71,70)!important;
}
/*
unfortunately, the syntax highlighting in the code container tabs
is somewhat limited. There's no way to change the colors of some of
the elements (like identifiers, operators, numbers, etc) So until
CSS adds the ability to modify content better than it does now, this
will have to suffice

and finally, the little tag on the code container and the borders

*/

div.codeSnippetContainerTabs>div>a
{
color: #34c6f3 !important;
font-size: 12px;
background-color: black !important;
padding: 3px !important;
padding-left: 8px !important;
padding-right: 6px !important;
border-radius: 10px !important;
border: white 1px solid !important;
font-weight: bold;
text-shadow: 3px 3px 4px rgba(255,255,255,0.4);
}
div.codeSnippetContainerCodeContainer
{
border-radius: 10px !important;
border-color: white !important;
}
div.FeedbackTitleContainer
{
color: silver !important;
text-align: center;
padding-top: 0px !important;
padding-bottom: 6px !important;
text-transform: uppercase !important;
font-family: lucida console !important;
font-size: x-small !important;
}
.BrandLogoImage.msdn
{
background-image: none !important;
background-size: 136px 24px !important;
}
#SearchFlyoutContainer, #vsPanel
{
background: #252525 !important;
color: white !important;

}
#SearchFlyoutContainer div ul li
{
font-size: small !important;
color: white !important;
}
#SearchFlyoutContainer div *
{
font-size: small !important;
color: white !important;
padding-right: 0px;
text-shadow: gray 0 0 4px;
}

#SearchFlyoutContainer a
{
color: white !important;
font-size: x-small !important;
text-transform: uppercase;
text-shadow: gray 0 0 4px;
}
#SearchFlyoutContainer a:after
{
content: " This Flyout";
}
#feedBackImg
{
opacity: 0.55;
}
#FooterLogo, #FooterCopyright, #footerLeft
{
opacity: 0.50;
}
#HeaderSearchButton
{
/*disabled for the 2015 page
 background-image: url("http://paradisim.uuuq.com/foldericons/find.png") !important;*/
}
.Divide
{
opacity: 1.0 !important;
color: #999 !important;

}


#contentFeedback,#contentFeedback *
{
border-style: none !important;
color: #909090 !important;
}

body script+script+script+div
{
border-radius: 10px;
background-color: grey !important;
color: black !important;
}

.MetroButton
{
padding: 0px !important;
margin: 0px !important;
background-position: center !important;
background-size: 19px !important;
border: 1px white outset !important;
border-radius: 5px;
}
.ResultMetaDataValue  { color: #bbb !important; }
.ResultMetaDataName  { color: #999 !important; }
.ResultUrl { color: #888 !important; }

body script+script+script+div img
{
border-radius: 10px;
}
body script+script+script+div a
{
color: gray !important;
font-size: small !important;
}
#static
{
background-attachment: local !important;
/*disabled for the 2015 page
 background: url("http://paradisim.uuuq.com/foldericons/server.png") 2px 2px !important; */


}
 
 #shell-header,
 .shell-header-nav,
 .shell-header-dropdown-tab,
 .shell-header-dropdown-tab-label,
 .shell-header,
span.LW_CollapsibleArea_Title
{
color: #aeaeae !important;
}

span.cl_CollapsibleArea_collapsing
{
/*disabled for the 2015 page
 background-image: url("http://paradisim.uuuq.com/foldericons/Minus Red Button.png") !important; */
background-size: 16px !important;
background-position: center !important;
width: 16px !important;
height: 16px !important;
opacity: 0.5;
}

span.cl_CollapsibleArea_expanding
{
/*disabled for the 2015 page
 background-image: url("http://paradisim.uuuq.com/foldericons/Add Green Button.png") !important; */
background-size: 16px !important;
background-position: center !important;
width: 16px !important;
height: 16px !important;
opacity: 0.5;
}

/**HIDDEN OBJECTS**/

.ResultStatusIcon
{
display: none !important;
}

}


Saludos!
#4320
Aquí te lo explican de forma muy detallada:
How to List Your Business on Google Maps with 'Google My Business' - DigitalDeepak

Basicamente al parecer se resume en dos pasos:
  • 1. Crear y configurar un perfil de Google+.
  • 2. Crear una página de Google+ para tu establecimiento.

Pero al parecer hay varios pasos importantes más que realizar durante y despues del proceso para obtener los resultados esperados (como mantener un buen rating).

Por si esa página no fuese suficiente, te dejo algo más de info por aquí:
Verify a local business - Google Support
How to make my business show up on Google Maps - Youtube
how to appear in google map list - Google

Suerte y saludos!