elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  my.resources.source.replace(variable, variable) Ayuda codedom
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: my.resources.source.replace(variable, variable) Ayuda codedom  (Leído 4,764 veces)
70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
my.resources.source.replace(variable, variable) Ayuda codedom
« en: 18 Octubre 2011, 12:56 pm »

Lo que quiero es pasar una variable temporal a my.resource.source

Me explico bien?
Espero buestra ayuda

algo como:

button1_click
Código:
dim cadena as string = "toni"

my.resources.source.replace("%1%", cadena)


my.resources.source.txt
Código:
dim toni as string = %1%

Me tira error. no reconoce el caracter.... no se.


« Última modificación: 18 Octubre 2011, 21:35 pm por 70N1 » En línea

70N1
Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: my.resources.source.replace(variable, variable) Ayuda, reemplazar variable
« Respuesta #1 en: 18 Octubre 2011, 16:11 pm »

My.Resources.Source es String?
Replace es una intrucción que devuelve el reemplazo no que lo ejecuta. Por ejemplo:

Código
  1. Dim X As String = "Texto de Ejemplo"
  2. X = X.Replace("Texto de ", "") 'Ahora X vale "Ejemplo"
  3.  

Pero si lo hacemos así, no pasa nada:

Código
  1. Dim X As String = "Texto de Ejemplo"
  2. X.Replace("Texto de ", "") 'X sigue teniendo el mismo valor
  3.  

En tal caso sería:
Código
  1. Dim cadena As String = "toni"
  2.  
  3. Dim toni As String = My.Resources.Source.Replace("%1%", cadena)
  4.  
  5. ' dim toni as string = %1% 'Esta linea no tiene sentido no estas en cmd %1% no quiere decir nada

Lo que hace el código es bucar el texto %1% y remplazarlo por el valor de la variable cadena ("toni") y luego lo guarda en la variable toni.


En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Re: my.resources.source.replace(variable, variable) Ayuda, reemplazar variable
« Respuesta #2 en: 18 Octubre 2011, 17:50 pm »

Código:
Dim cadena1 As String = my.resources.source1


        cadena1 = My.Resources.source1.Replace("cadena", cadena.ToString)

En cadena.tostring ahi un exe en formato ascii y me tira errores de carateres no validos
en la depuracion.


Si puedes ayudar se te agradeceria.
 Porsierto, muchas gracias por tu explicacion, es algo que no savia.


Esta es la llamada a la funcion para crear el exe

Código:
CompileCode(New Microsoft.VisualBasic.VBCodeProvider(), _VBSourceCode, Nothing, SaveFileDialog1.FileName, Nothing, Nothing, _Errors)

Y esta es la funcion para generar el ejecutable

Código:
Public Function CompileCode(ByVal _CodeProvider As System.CodeDom.Compiler.CodeDomProvider, ByVal _SourceCode As String, ByVal _SourceFile As String, ByVal _ExeFile As String, ByVal _AssemblyName As String, ByVal _ResourceFiles() As String, ByRef _Errors As String) As Boolean
        ' set interface for compilation
        Dim _CodeCompiler As System.CodeDom.Compiler.ICodeCompiler = _CodeProvider.CreateCompiler()

        ' Define parameters to invoke a compiler
        Dim _CompilerParameters As New System.CodeDom.Compiler.CompilerParameters()

        If _ExeFile IsNot Nothing Then
            ' Set the assembly file name to generate.
            _CompilerParameters.OutputAssembly = _ExeFile

            ' Generate an executable instead of a class library.
            _CompilerParameters.GenerateExecutable = True
            _CompilerParameters.GenerateInMemory = False
        ElseIf _AssemblyName IsNot Nothing Then
            ' Set the assembly file name to generate.
            _CompilerParameters.OutputAssembly = _AssemblyName

            ' Generate an executable instead of a class library.
            _CompilerParameters.GenerateExecutable = False
            _CompilerParameters.GenerateInMemory = False
        Else
            ' Generate an executable instead of a class library.
            _CompilerParameters.GenerateExecutable = False
            _CompilerParameters.GenerateInMemory = True
        End If


        ' Generate debug information.
        '_CompilerParameters.IncludeDebugInformation = true;

        ' Set the level at which the compiler
        ' should start displaying warnings.
        _CompilerParameters.WarningLevel = 3
        ' Set whether to treat all warnings as errors.
        _CompilerParameters.TreatWarningsAsErrors = False

        ' Set compiler argument to optimize output.
        _CompilerParameters.CompilerOptions = "/optimize"
        ' Set a temporary files collection.
        ' The TempFileCollection stores the temporary files
        ' generated during a build in the current directory,
        ' and does not delete them after compilation.
        _CompilerParameters.TempFiles = New System.CodeDom.Compiler.TempFileCollection(".", True)

        If _ResourceFiles IsNot Nothing AndAlso _ResourceFiles.Length > 0 Then
            For Each _ResourceFile As String In _ResourceFiles
                ' Set the embedded resource file of the assembly.
                _CompilerParameters.EmbeddedResources.Add(_ResourceFile)
            Next _ResourceFile
        End If


        Try
            ' Invoke compilation
            Dim _CompilerResults As System.CodeDom.Compiler.CompilerResults = Nothing

            If _SourceFile IsNot Nothing AndAlso System.IO.File.Exists(_SourceFile) Then
                ' soruce code in external file
                _CompilerResults = _CodeCompiler.CompileAssemblyFromFile(_CompilerParameters, _SourceFile)
            Else
                ' source code pass as a string
                _CompilerResults = _CodeCompiler.CompileAssemblyFromSource(_CompilerParameters, _SourceCode)
            End If

            If _CompilerResults.Errors.Count > 0 Then
                ' Return compilation errors
                _Errors = ""
                : For Each CompErr As System.CodeDom.Compiler.CompilerError In _CompilerResults.Errors
                    _Errors &= "Line number " & CompErr.Line & ", Error Number: " & CompErr.ErrorNumber & ", '" & CompErr.ErrorText & ";" & Constants.vbCrLf & Constants.vbCrLf
                Next CompErr

                ' Return the results of compilation - Failed
                Return False
            Else
                ' no compile errors
                _Errors = Nothing
            End If
        Catch _Exception As Exception
            ' Error occurred when trying to compile the code
            _Errors = _Exception.Message
            Return False
        End Try

        ' Return the results of compilation - Success
        Return True
    End Function
« Última modificación: 18 Octubre 2011, 18:04 pm por 70N1 » En línea

70N1
Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: my.resources.source.replace(variable, variable) Ayuda codedom
« Respuesta #3 en: 19 Octubre 2011, 06:22 am »

Este problema es más común de lo que piensas, los Resources se guardan de 2 formas básicas para no entrar en detalles, en array de Bytes y en String, el problema común es creer que los resources como ejecutables, imagenes, etc; se guardan a forma de String cuando estos son realmentes Array de Bytes, otra cosa que suele pasar es aplicar .ToString creyendo que vamos a pasar los Bytes a String.

Ahora vamos con tu error concretamente, si My.Resources.Source1 es un ejecutable en resources, osea un Array de Bytes, y quieres reemplazar una palabra o cadena en especifico, debes pasar el resource a String cuidando el Encoding, reemplazar el texto y devolverlo a Array Bytes algo parecido a esto:

Código
  1. System.Text.Encoding.Dafult.GetBytes(System.Text.Encoding.Dafult.GetString(My.Resources.Source1).Replace("Eliminar", ""))

Claro hay está todo en una línea.
En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Re: my.resources.source.replace(variable, variable) Ayuda codedom
« Respuesta #4 en: 19 Octubre 2011, 12:57 pm »

Al final el problema era que tenia que cortar el string en lineas y ponerle al final de cada linea la ( _  varra baja) y encapsularlo con chr(34) que es en ascii ( "  las comillas)


Muchas gracias por la voluntad.

Código:
dim cadena as string = "exe en base64string"

my.resources.source.replace("%1%", formato(cadena))

function formato
splitstring tal cual pin pan.
« Última modificación: 19 Octubre 2011, 22:28 pm por 70N1 » En línea

70N1
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con alcance de variable en class de C++
Programación C/C++
arturoro 3 2,679 Último mensaje 22 Mayo 2012, 23:23 pm
por Eternal Idol
Ayuda con variable $_POST!
PHP
iMarcSpS 3 2,178 Último mensaje 11 Junio 2012, 20:10 pm
por WHK
Problema inicializando una variable
Java
reygecko 2 2,148 Último mensaje 30 Diciembre 2012, 00:59 am
por reygecko
Problema con variable de sesion y variable de conexion
PHP
Vaagish 9 5,953 Último mensaje 19 Marzo 2013, 22:37 pm
por Vaagish
Ayuda con una variable referenciada.
PHP
ccrunch 1 1,736 Último mensaje 11 Abril 2013, 00:13 am
por l337*
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines