Tengo un archivo de texto con el siguiente contenido:
Citar
Campo1, MAS DATOS|Campo2|Campo3|Campo4|
Campo1|Campo2, MAS DATOS|Campo3|Campo4|
Campo1|Campo2|Campo3, MAS DATOS|Campo4|
Campo1|Campo2|Campo3|Campo4, MAS DATOS|
Si notan, el archivo contiene una serie de registros conformados por campos los cuales están divididos por Pipes (|), mi problema aquí es que deseo eliminar todas las comas (,) que existen en el archivo y guardar dicho archivo sin las comas; haciendo esto el archivo debería quedar así:
Citar
Campo1 MAS DATOS|Campo2|Campo3|Campo4|
Campo1|Campo2 MAS DATOS|Campo3|Campo4|
Campo1|Campo2|Campo3 MAS DATOS|Campo4|
Campo1|Campo2|Campo3|Campo4 MAS DATOS|
El archivo debe quedar sin comas, eso es todo lo que necesito. Gracias.
Puedes abrir el archivo en modo binario o aleatorio y comparar cuándo aparece la ",":
Open nombre_fichero For modo As #nFichero
Utiliza Freefile para obterner el siguiente número disponible.
Después se me ocurre que cuando encuentre el programa una "," que mueva todo el contenido del archivo una posición a la izquierda, a partir de la "," encontrada.
Cita de: karmany en 21 Septiembre 2006, 17:46 PM
Puedes abrir el archivo en modo binario o aleatorio y comparar cuándo aparece la ",":
Open nombre_fichero For modo As - nFichero
Utiliza Freefile para obterner el siguiente número disponible.
Después se me ocurre que cuando encuentre el programa una "," que mueva todo el contenido del archivo una posición a la izquierda, a partir de la "," encontrada.
Buena idea, gracias por tu comentario, me será de mucha ayuda. ¿Alguién tiene más sugerencias?
EDITADO
Aquí tengo el código para buscar la coma,
ahora sólo me falta el código para quitarla en todo el archivo.
Private Sub Command1_Click()
Dim Archivo As String, TODO As String, Busca As String
Dim NumArchivo As Integer
Archivo = "C:\archivo.txt"
NumArchivo = FreeFile()
Open Archivo For Input As #NumArchivo
TODO = input(LOF(1), 1)
busca = InStr(1, TODO, ",", vbTextCompare)
If busca > 0 Then
MsgBox "Encontrado"
End If
Close #NumArchivo
Text1.Text = TODO
End Sub
Es necesario agregar un botón de comando y un cuadro de texto con la propiedad Multiline en True.
Hola...
Yo he encontrado un codigo el cual busca y reemplaza un caracter en un texto, lo malo es que solo reemplaza el 1 caracter que hay..
Yo lo he adecuado para que busque y reemplaza todos los caracteres ( en este caso "comas"), lo unico que tenes que hacer es pasar el texto del Archivo.txt al texbox que para mi codigo se llama txtTexto...
Private Sub Command1_Click()
Dim original, busca, reemplaza, nueva As String
Dim long_original, long_busca, lugar_reemplaza As Integer
Dim Cont As Integer
For Cont = 1 To Len(txtTexto.Text)
original = Trim(txtTexto.Text)
busca = ","
reemplaza = ""
long_original = Len(original)
long_busca = Len(busca)
lugar_reemplaza = InStr(original, busca)
If lugar_reemplaza = 0 Then
txtTexto = nueva
Exit Sub
End If
nueva = Mid(original, 1, lugar_reemplaza - 1) & reemplaza
nueva = nueva & Mid(original, lugar_reemplaza + long_busca, long_original)
txtTexto = nueva
Next Cont
End Sub
espero te sirva....
Atentamente
JUAN MANUEL LOMBANA
MEDELLÍN - COLOMBIA
Siguiendo el ejemplo que has hecho tú, puedes hacer lo siguiente:
Private Sub Command1_Click()
Dim Archivo As String, Busca As String, TODO As String
Dim NumArchivo As Integer, x As Long
Archivo = "C:\archivo.txt"
NumArchivo = FreeFile()
Open Archivo For Input As #NumArchivo
TODO = Input(LOF(1), 1)
For x = 1 To Len(TODO)
If Mid(TODO, x, 1) = "," Then TODO = Mid(TODO, 1, x - 1) & Mid(TODO, x + 1, Len(TODO) - x1)
Next x
Close #NumArchivo
Open Archivo For Output As #NumArchivo
Print #NumArchivo, TODO
Close #NumArchivo
Text1 = TODO
End Sub
Los problemas que puedes tener y que me han pasado a mi en algún programa es:
-que si pasas tu archivo.txt a un textbox tienes que tener en cuenta que el límite de un textbox son 64K.
-otra cosa que me ocurrió es que una persona me abrió el .txt con el Microsoft Word y tras modificarlo lo guardó. No puedes imaginar la cantidad de código que añade este programa y que me falseaba lo que yo buscaba...
Que tengas suerte
Podes usar la funcion Replace y no te haces tanto lio. Podes hacer algo asi:
Todo = Replace(Todo, ",", "")
Despues usas la variable "Todo" que ya no contiene ninguna coma.
Saludos.-