Replace que borra todo..

Iniciado por Petro_Boca, 2 Agosto 2010, 20:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Petro_Boca

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 :/ ?

Petro_Boca

ACLARO!

YA AGREGE ESTO

Dim asdf As String

fary


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!
Un byte a la izquierda.

Petro_Boca

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


Petro_Boca

#4
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"

BlackZeroX


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!¡.
The Dark Shadow is my passion.