Anonymous user
Globally replace text in several files: Difference between revisions
Globally replace text in several files (view source)
Revision as of 15:05, 30 October 2010
, 13 years agoAdded PureBasic
(Initial page created) |
(Added PureBasic) |
||
Line 4:
perl -pi -e "s/Goodbye London\!/Hello New York\!/g;" a.txt b.txt c.txt
=={{header|PureBasic}}==
<lang PureBasic>Procedure GRTISF(List File$(), Find$, Replace$)
Protected Line$, Out$, OutFile$, i
ForEach File$()
fsize=FileSize(File$())
If fsize<=0: Continue: EndIf
If ReadFile(0, File$())
i=0
;
; generate a temporary file in a safe way
Repeat
file$=GetTemporaryDirectory()+base$+"_"+Str(i)+".tmp"
i+1
Until FileSize(file$)=-1
i=CreateFile(FileID, file$)
If i
; Copy the infile to the outfile while replacing any needed text
While Not Eof(0)
Line$=ReadString(0)
Out$=ReplaceString(Line$,Find$,Replace$)
WriteString(1,Out$)
Wend
CloseFile(1)
EndIf
CloseFile(0)
If i
; If we made a new file, copy it back.
CopyFile(file$, File$())
DeleteFile(file$)
EndIf
EndIf
Next
EndProcedure</lang>
Implementation
<pre>NewList Xyz$()
AddElement(Xyz$()): Xyz$()="C:\\a.txt"
AddElement(Xyz$()): Xyz$()="C:\\b.txt"
AddElement(Xyz$()): Xyz$()="D:\\c.txt"
GRTISF(Xyz$(), "Goodbye London", "Hello New York")</pre>
|