Sustituir una palabra en varios archivos de texto

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *