Autor
|
Tema: Duda con archivos de texto (Leído 1,661 veces)
|
pandemonio
Desconectado
Mensajes: 26
Orgullosamente usuario del Xtreeeem Porquería
|
Tengo un archivo de texto con el siguiente contenido: 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í: 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.
|
|
|
En línea
|
|
|
|
karmany
|
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.
|
|
« Última modificación: 22 Septiembre 2006, 22:10 pm por karmany »
|
En línea
|
|
|
|
pandemonio
Desconectado
Mensajes: 26
Orgullosamente usuario del Xtreeeem Porquería
|
Puedes abrir el archivo en modo binario o aleatorio y comparar cuándo aparece la ",": Open nombre_fichero For modo As 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.
|
|
« Última modificación: 21 Septiembre 2006, 19:45 pm por pandemonio »
|
En línea
|
|
|
|
MANULOMM
Desconectado
Mensajes: 559
Erepublik.com
|
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
|
|
|
En línea
|
|
|
|
karmany
|
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
|
|
|
En línea
|
|
|
|
NYlOn
Desconectado
Mensajes: 842
OOOOHHHHHH, TARAGÜIIII xDDDDDD
|
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.-
|
|
|
En línea
|
|
|
|
|
|