¿Cómo reemplazar por lotes cadenas específicas en VB?
El tipo de datos es como se muestra arriba, es decir, aparece en pares, separados por espacios, y es así en cada línea, lo cual es simple. Y 1234 siempre está al frente.
Si la estructura de datos no fuera así, el método también cambiaría.
Especifique
Zhang Zhichen
Dim txtName como cadena
Función getFileName(dlg como objeto) como cadena
'Add commondialog1
'Agregar archivo1, se puede configurar como invisible o simplemente tratarlo como una matriz
En caso de error, Ir a err
Con dlg p>
.DialogTitle = "Especifique la carpeta"
.Filter = "Archivo de texto (*.txt)|*.txt"
.ShowOpen
getFileName = .FileName
Terminar con
Función de salida
err:
MsgBox "No seleccionó un archivo o no hay ningún archivo en la carpeta archivo txt"
Función final
'write
Sub wirteTxt(namePath As String, txt As String)
Abrir ruta de nombre para la salida como #1
Imprimir #1, txt
Cerrar #1
Fin Sub
'Leer
Función lineRead(namePath As String) As String
'Múltiples líneas de datos
Dim strLine As String
Dim strBox As String
Abrir ruta de nombre para entrada como #1
Hacer hasta EOF(1)
Entrada de línea #1, strLine
strBox = strBox + strLine + vbCrLf
Bucle
Texto1(0).Texto = strBox
Texto1(1).Texto = Reemplazar(strBox, "1234", " 5678")
Cerrar #1
Finalizar función
Subcomando privado1_Click()
txtName = getFileName(CommonDialog1)
lineRead txtName p>
End Sub
Private Sub File1_Click() 'Esto es solo para modificar un archivo. Puede usar un bucle para modificar todos los archivos txt en la carpeta. /p>
lineRead File1.List( ListIndex)
wirteTxt txtName, Text1(1).Text
End Sub