Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: c0rrupt_gamer en 11 Octubre 2005, 19:38 pm



Título: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 11 Octubre 2005, 19:38 pm
Hola a todos, el problema es el siguiente.
Estoy haciendo una aplicacion que coje cada caracter del tec¡xto k le indiques, lo pasa al codigo ASCII y le resta un numero alaetorio entre el 10 y el 25 (ese numero aleatorio es el mismo para todo el text y se guarda en el mismo al encriptarlo.
El problema es k al desencriptarlo, en las partes en las k habia un punto y aparte no lo detecta y pone un punto y aparte. Por lo k el texto queda un tanto diferente.
Komo puedo evitarlo?
Otro problñema es k solo me deja abrir textos del formato ".txt", he probado con los formatos ".doc" o ".wps" y el vb me dice algo como "Input past of file" o algo asi.
Alguna idea?


Título: Re: problem al descifrar un texto y mas
Publicado por: NYlOn en 11 Octubre 2005, 21:53 pm
Q codigo usas para cifrar/descifrar ?


Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 11 Octubre 2005, 22:31 pm
es un codigo sencillito k hice mientras tenia estropeado internet

Código:
 Private Sub cmdDesencriptartxt_Click()
clave = Mid$(Text1.Text, 2, 2)
Label1.Caption = "LOADING. . ."
DoEvents
For i = 5 To Len(Text1.Text)
    c = Mid$(Text1.Text, i, 1)
    If c = " " Then
        code = code & " "
    Else
        code = code & Chr$(Asc(c) + clave)
    End If
Next
Text1.Text = code
i = 1
c = ""
code = ""
cmdDesencriptartxt.Enabled = False
clave = 0
Label1.Caption = ""
End Sub

Private Sub cmdEncriptartxt_Click()
Randomize timer
Label1.Caption = "LOADING. . ."
DoEvents
r = Int(Rnd * 16) + 10
For i = 1 To Len(Text1.Text)
    c = Mid$(Text1.Text, i, 1)
    If Asc(c) - r < 1 Then
        On Error Resume Next
    ElseIf c = " " Then
        code = code & c
    Else
        code = code & Chr$(Asc(c) - r)
    End If
       
Next
Text1.Text = "[" & r & "]" & code
clave = r
code = ""
c = ""
r = 0
i = 1
cmdEncriptartxt.Enabled = False
cmdDesencriptartxt.Enabled = True
Label1.Caption = ""
End Sub

Las variables i, c, r, code y clave estan declaradas de forma global. Hace mucho k no miro el codigo, lo hice deprisa y corriendo asi k tampoco me acuerdo muy bien como iba.

A parte del problema mencionado antes, si encontrais algun fallo(k seguro k lo hay) hacedmelo saber ,ok?


Saludos.


Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 14 Octubre 2005, 17:30 pm
En serio nadie sabe como solucionar el problema???

Nadie??




Título: Re: problem al descifrar un texto y mas
Publicado por: Kizar en 15 Octubre 2005, 00:02 am
No se mu bien, pero te puedo decir que cuanco cargas un texto a una string, los saltos de linea los representa con un cuadradito []

Salu2


Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 15 Octubre 2005, 12:56 pm
En ese caso podria detectar cuando la variable c es = [].

Pero como hago para k al descifrar el vb cambie los [] por saltos o puntos y aparte?


Ps: lo mas gracioso de esto es k seguramente es algo facilisimo para muchos, o una simple linea de codigo.


Título: Re: problem al descifrar un texto y mas
Publicado por: yeikos en 15 Octubre 2005, 13:07 pm
¿Pusiste el textbox en multiline?


Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 17 Octubre 2005, 19:35 pm
Claro, y el problema esta ahi, ej:
(antes de cifrar)

blablablabla
blabla
bla



(despues de cifrar y descifrar)

blablablablablablabla


El resultado keda asi, pero en cambio los espacios si k los respeta.


Título: Re: problem al descifrar un texto y mas
Publicado por: Ertai en 17 Octubre 2005, 20:29 pm
El "Enter" o retorno de carro es el vbCrLf.


Título: Re: problem al descifrar un texto y mas
Publicado por: _Sergi_ en 18 Octubre 2005, 19:30 pm
Y para representar es VbNewLine


Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 21 Octubre 2005, 15:16 pm
Y para detectarlo?
no me lo detecta.
En la parte del codigo de lo bloques IF/THEN he probado a hacer k si c es igual a vbcrlf y no funciona, lo mismo con vbnewline.


Y aun me ha salido otro problema! Komo esta parte no sabia como solucionarla, pense k de mientras seria weno ir poniendole opciones al text del tipo letra cursiva o negrita, tamaño fuente etc... Pero cuando intento cambiar el tipo de letra a cursiva me lo hace a todo el texto, no se como hacerlo para k sea solo a la parte seleccionada.

Se como cojer la parte seleccionada, meterla en una variable, esta pasarla un texto oculto y hacer el cambio a cursiva, pero al volver a ponerla en su sitio me vuelve a salir como antes y no en cursiva. Os dejo el codigo:

Código:
Private Sub Command2_Click(Index As Integer)
Dim cursiva As String
cursiva = Mid(Text1.Text, Text1.SelStart + 1, Text1.SelLength)
ptxt.Text = cursiva
ptxt.FontItalic = True
Text1.SelText = cursiva
Command2(0).Visible = False
Command5.Visible = True
End Sub
explico: El command2 es el boton para convertir a letra cursiva, el command5 es para hacer la inversa, ptxt es un texto invisible y text1 es el texto donde se escribe


Título: Re: problem al descifrar un texto y mas
Publicado por: la caca en 21 Octubre 2005, 20:54 pm
te recomeidno que antes que pases a lo de cursiva, negrita, etc termines con los primeros errores.

para que se valla abajo antes del [] podes usar el comando LEFT y que se guarde en una matriz de variables lo que resta despues del [], y despues:

Código:
do until variable = Max 'Max vendira a ser la cantidad de lineas (tenes que declarar y hacer el codigo) jej
text1.text= variable(max) & vbcrlf
loop

bueno algo asi...... ;D 


Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 21 Octubre 2005, 23:02 pm
1º: Para hacer eso k dices hay k detectar el [] o salto de parrafo, k es justo donde fallo.

2º: No te ofendas, pero a mi eso de la matices de variables me suena a chino, Podrias darme una pekeña explicacion, plis?


de todas formas, gracias por contestar ;)


Título: Re: problem al descifrar un texto y mas
Publicado por: Sancho.Mazorka en 23 Octubre 2005, 07:03 am
xq no probas que cuando tien que haber un punto y aparte que haga esto chr(13) & chr(10) esto crea un enter en el textbox en el label no hay problema. espero que te sirva responde para saber si te sirvio o no

Sancho Mazorka


Título: Re: problem al descifrar un texto y mas
Publicado por: lumbreras en 23 Octubre 2005, 16:45 pm
en un post mio donde tambien pregunto ay pasteado codigo donde relaiza esta funcion de buscar y eliminar  ....
pasteo
Private Sub Command1_Click()
On Error Resume Next


    Dim sOriginal As String
    Dim sBuscar As String
    Dim sPoner As String
    Dim sbuf As String
    Dim fbuf As String
    Dim salto As Integer
    Dim contador As Integer
   

    sOriginal = Text2.Text
    sBuscar = "x"
    sPoner = "&H"
    salto = 1



    sbuf = Replace(sOriginal, sBuscar, sPoner, , , vbTextCompare)
   
    sBuscar = "\"
   
    sPoner = ""
   
    Text1.Text = Replace(sbuf, sBuscar, sPoner, , , vbTextCompare)
   



Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 24 Octubre 2005, 16:07 pm
Lo siento Sancho.Mazorka, pero tu solucion no funciona.


Pero la de lumbreras si!  MUCHAS GRACIAS!

al final la cosa era facil, si conocias la funcion claro. Lo unico k he tenido k hacer es reemplazar los saltos de parrafo antes de codificar el texto, y despues, al desencriptarlo, reemplazarlos de nuevo antes de pasar al textbox, ahora os pongo el codigo.

Código:
Private Sub cmdDesencriptartxt_Click()
Dim re2 As String
clave = Mid$(Text1.Text, 2, 2)
Label1.Caption = "LOADING. . ."
DoEvents
For i = 5 To Len(Text1.Text)
    C = Mid$(Text1.Text, i, 1)
    Select Case C
    Case vbNewLine
        code = code & vbNewLine
    Case " "
        code = code & " "
    Case Else
        code = code & Chr$(Asc(C) + clave)
    End Select
   
Next
re2 = Replace(code, "{salto}", vbCrLf)
Text1.Text = re2
i = 1
C = ""
code = ""
cmdDesencriptartxt.Enabled = False
clave = 0
Label1.Caption = ""
End Sub

Private Sub cmdEncriptartxt_Click()
Dim re As String
Randomize timer
On Error Resume Next
Label1.Caption = "LOADING. . ."
DoEvents
r = Int(Rnd * 16) + 10
re = Replace(Text1.Text, vbCrLf, "{salto}")
For i = 1 To Len(re)
    C = Mid$(re, i, 1)
    Select Case C
    Case " "
        code = code & " "
    Case Else
        code = code & Chr$(Asc(C) - r)
    End Select
Next
Text1.Text = "[" & r & "]" & code
clave = r
code = ""
C = ""
r = 0
i = 1
cmdEncriptartxt.Enabled = False
cmdDesencriptartxt.Enabled = True
Label1.Caption = ""
End Sub

De nuevo, muchas gracias a todos los k habeis respondido en este tema, y en especial a lumbreras

saludos


Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 24 Octubre 2005, 21:23 pm
Hum! Aun sigo con el problema del estilo de letra... se cambiar el estilo de letra de todo el texto pero no encuentreo la manera de hacerlo solo en la parte seleccionada del texto.

Hasta el momento he conseguido aislar en una variable(o textbox oculto) la seleccion y cambiarle el tipo de letra(Solo en el textbox oculto) pero al volverlo a meter en su sitio con Seltext me encuentro con k vuelve a escribirse con el estilo y tipo de letra original!

Some good ideas around there?

saludos;D


Título: Re: problem al descifrar un texto y mas
Publicado por: c0rrupt_gamer en 26 Octubre 2005, 20:02 pm
Citar
Some good ideas around there?

Significa si alguien tiene alguna idea por ahi...