Dejo aquí una macro y funciones para desde openoffice sustituir una palabra en varios archivos de texto.
Lo primero la función correspondiente para reemplazar texto
Function replace_text(Source As String, Search As String, NewPart As String) Dim Result As String Dim StartPos As Long Dim CurrentPos As Long Result = "" StartPos = 1 CurrentPos = 1 If Search = "" Then Result = Source Else Do While CurrentPos >= 0 CurrentPos = InStr(StartPos, Source, Search) If CurrentPos >= 0 Then Result = Result + Mid(Source, StartPos, _CurrentPos - StartPos) Result = Result + NewPart StartPos = CurrentPos + Len(Search) Else Result = Result + Mid(Source, StartPos, Len(Source)) End If Loop End If Replace_text = Result End Function
La siguiente es la función para modificar un archivo:
Function modifica_archivo(entrada as String) Dim ne As Integer Dim ns As Integer Dim leido As String Dim escrito as String ne = 1 ns = 2 salida=entrada+".sal" Open entrada For Input As ne Open salida For Output As ns While not eof(ne) Line Input #ne, leido escrito=replace_text(leido,",",";") Print #ns, escrito wend Close #ne Close #ns End Function
y por último una función para modificar todos los archivos de un directorio:
Sub arregla_puntos_y_comas() Dim direct as String Dim ext as String Dim busca as String Dim file as String direct="/home/atareao/Desktop/prueba/" ext="*.txt" busca=direct+ext file = dir(busca) while file!="" file=direct+file modifica_archivo(file) file=dir() wend End Sub