Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Petro_Boca en 2 Agosto 2010, 20:36 PM

Título: Replace que borra todo..
Publicado por: Petro_Boca en 2 Agosto 2010, 20:36 PM
Hola!

sissi, yo de nuevo xd!  ;D


miren este codigo :


Private Sub Command1_Click()
Dim wdir As String
wdir = Environ("WINDIR")
asdf = wdir & "\system32\LAURASETEVELATANGA.TXT"

MsgBox asdf

Dim Data As String
Open asdf For Input As #1
   Line Input #1, Data
Close #1
Data = Replace(Data, Text1.Text, " ")

Open asdf For Output As #1
   Print #1, Data
Close






End Sub



weno lo q se suppone q hace es :

abrir el archivo
LAURASETEVELATANGA.TXT
, y reemplazar Text1.Text (osea, remplaza la palabra del archivo q este en el text1)

PERO!

para probarlo hice :

en el LAURASETEVELATANGA.TXT escribi esto :

a
b
asdfg

gfs

y en el Text1.Text escribi

a

osea, para q borre la "A"...

PERO ME BORRA TODO :@

alguien sabe porq me borra todo :/ ?
Título: Re: Replace que borra todo..
Publicado por: Petro_Boca en 2 Agosto 2010, 20:41 PM
ACLARO!

YA AGREGE ESTO

Dim asdf As String
Título: Re: Replace que borra todo..
Publicado por: fary en 2 Agosto 2010, 20:51 PM

Vamos a ver.... deja de volvernos locos ya!!!!!

aqui mismo preguntaste eso y te lo respondieron!!!

http://foro.elhacker.net/programacion_visual_basic/reemplazar_texto-t301192.0.html

salu2!
Título: Re: Replace que borra todo..
Publicado por: Petro_Boca en 2 Agosto 2010, 20:53 PM
Cita de: Drinky94 en  2 Agosto 2010, 20:51 PM

Vamos a ver.... deja de volvernos locos ya!!!!!

aqui mismo preguntaste eso y te lo respondieron!!!

http://foro.elhacker.net/programacion_visual_basic/reemplazar_texto-t301192.0.html

salu2!

esq no entiendo este code  ;D ;D ;D ;D ;D

Código (vb) [Seleccionar]


Private Sub Form_Load()
    '   //  El criterio True es para hacer que identifique Mayusculas de minusculas es decir por bytes!¡.
    '   //  Buscamos desde la 2da coinsidensia, (ignora la la 1ra), y solo buscamos una sola coinsidencia!¡.
    ReemplaceInThisFile "c:\archivo jalado de los pelos.txt", "Black", "ZeroX", True, 1, 2
    '   //  Buscamos la primera coinsidencia y reemplazamos, las demas las ignoramos.
    ReemplaceInThisFile "c:\archivo jalado de los pelos.txt", "Black", "ZeroX", True, 1
    '   //  Buscamos TODAS las coinsidencias y las reemplazamos TODAS sin exepcion alguna!¡.
    ReemplaceInThisFile "c:\archivo jalado de los pelos.txt", "Black", "ZeroX", True, 1
   
    '   //  El criterio False es para hacer que identifique texto en minusculas con mayusculas es decir {hola=HolA}!¡.
    '   //  Buscamos desde la 2da coinsidensia, (ignora la la 1ra), y solo buscamos una sola coinsidencia!¡.
    ReemplaceInThisFile "c:\archivo jalado de los pelos.txt", "Black", "ZeroX", False, 1, 2
    '   //  Buscamos la primera coinsidencia y reemplazamos, las demas las ignoramos.
    ReemplaceInThisFile "c:\archivo jalado de los pelos.txt", "Black", "ZeroX", False, 1
    '   //  Buscamos TODAS las coinsidencias y las reemplazamos TODAS sin exepcion alguna!¡.
    ReemplaceInThisFile "c:\archivo jalado de los pelos.txt", "Black", "ZeroX", False, 1
End Sub

Public Function ReemplaceInThisFile(ByVal StrPath As String, ByVal ToFind As String, ByVal ReplaceTo As String, Optional ByVal ExactMatch As Boolean = True, Optional ByVal Coincidencias As Long = -1, Optional ByVal Desde As Long = 0)
Dim vData               As String
Dim vDataTmp            As String
Dim ff                  As Integer
Dim PosAux              As Long
Dim Aux                 As Long

    If Len(ToFind) = 0 Then Exit Function
    If Dir(StrPath, vbArchive) = "" Then Exit Function
    ff = FreeFile
    Open StrPath For Binary As ff
        vData = Space(LOF(ff))
        Get ff, , vData
    Close ff
    Do
        Do
            PosAux = InStr(PosAux + 1, vData, ToFind, Abs(Not ExactMatch))
            Desde = Desde - 1
        Loop Until Desde <= 0 Or PosAux <= 0
        If PosAux <= 0 Then Exit Do
        vDataTmp = Mid(vData, PosAux + 1)
        Mid(vData, PosAux, Len(ReplaceTo)) = ReplaceTo: vData = vData & String(Len(ReplaceTo), " ")
        Mid(vData, PosAux + Len(ReplaceTo), Len(vDataTmp)) = vDataTmp
        Debug.Print vData, vDataTmp
       
        If Not Coincidencias = -1 Then Coincidencias = Coincidencias - 1
    Loop Until Coincidencias <= 0 Or PosAux <= 0
   
    vData = Mid(vData, 1, Len(vData) - Len(ReplaceTo))
    Kill StrPath
    ff = FreeFile
    Open StrPath For Binary As ff
        Put ff, , vData
    Close ff

End Function

Título: Re: Replace que borra todo..
Publicado por: Petro_Boca en 2 Agosto 2010, 20:59 PM
Cita de: Drinky94 en  2 Agosto 2010, 20:51 PM

Vamos a ver.... deja de volvernos locos ya!!!!!

aqui mismo preguntaste eso y te lo respondieron!!!

http://foro.elhacker.net/programacion_visual_basic/reemplazar_texto-t301192.0.html

salu2!

con respecto a este code :

Código (vb) [Seleccionar]
Data = Replace$(Data, Text1.Text, "funciona", , , vbTextCompare)

ME BORRA TODO Y LO REEMPLAZA POR LA PALABRA "funciona"
Título: Re: Replace que borra todo..
Publicado por: BlackZeroX en 2 Agosto 2010, 21:36 PM

El codigo que te he resuelto anteriormente es lo mismo que hace el Replace(), solo que reaplce te reemplaza TODO, el mio le das la opcion desde X posicion encontrada a una longitud "N"...

Pero bueno!¡.

Haber cuando aprenden a Depurar el código e identificar qué no es el Replace!¡.

Código (vb) [Seleccionar]


Private Sub Form_Load()
Dim Data As String
Data = "Haber cuando aprendes a Depurar tu Propio Codigo Loser"
MsgBox Data
Data = Replace$(Data, "Loser", "petro_boca", , , vbTextCompare)
MsgBox Data
End Sub



P.D.: Revisa los Open hay se encuentra el gran error... y no le he-ches la culpa a algo qué no es, sin haber antes depurado tu código como es debido ( Es la misma actitud de uno de mis ex compañeros de trabajo... era el líder del proyecto para gracia mía xS ) !¡.

Dulces Lunas!¡.