svatvn Posted May 8, 2013 Share Posted May 8, 2013 (edited) Hi all, I have a TXT-File with the content file start [xbeginx] a b c d [xendx] file stop now I want to replace the content between xbeginx and xendx to make the TXT-File looks like [xbeginx] clean [xendx] my code doesnt work it seems it doesnt work on multiple lines.... $sFile = "source.txt" $sText = FileRead($sFile,FileGetSize($sFile)) $aFound = _StringBetween($sText,"[xbeginx]","[xendx]") $sText = StringReplace($sText, "$aFound", "clean") $sFileNew = "result.txt" FileWrite($sFileNew,$sText) can you help me? thanks Edited May 8, 2013 by svatvn Link to comment Share on other sites More sharing options...
Xandy Posted May 8, 2013 Share Posted May 8, 2013 (edited) my first guess is @CRLFs are read into the string and mess it up for you. I'll play around with the code a second. Edit: $aFound displays correctly with _arraydisplay($aFound) Edited May 8, 2013 by Xandy Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) Link to comment Share on other sites More sharing options...
Xandy Posted May 8, 2013 Share Posted May 8, 2013 (edited) You can access the data in $aFound[0]. I think what you might want to do is parse the file for [xbeginx] then crop the lines between the end tag. I'll write it using _FileReadToArray() edit: I'm going to abort my example, I've having trouble being sure if I'm writing what you want and others might be more on track with what you want done. I can finish it up after you get back to us if you still need help. Edited May 8, 2013 by Xandy Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) Link to comment Share on other sites More sharing options...
PhoenixXL Posted May 8, 2013 Share Posted May 8, 2013 (edited) $sText = StringReplace($sText, "$aFound", "clean") $sText = StringReplace($sText, $aFound[0], "clean"). Don't quote the variable otherwise it is passed as a string. Simultaneously as Xandy said the return of _stringbetween is an array therefore $aFound[0] would be the first match. Regards Edited May 8, 2013 by PhoenixXL Xandy 1 My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. Link to comment Share on other sites More sharing options...
czardas Posted May 8, 2013 Share Posted May 8, 2013 This will work pressuming the opening square bracket is not included in the text you wish to replace. I have solved this before, but I forget how. It will come to me again, no doubt. Here's the code as it stands. Local $sText = "[xbeginx]some text between[xendx] outside" & @CRLF & _ "[xbeginx]more text[xendx] more stuff" Local $sStart = "(\[xbeginx\])" Local $sEnd = "(\[xendx\])" Local $sReplace = "clean" $sText = StringRegExpReplace($sText, "(?i)" & $sStart & "([^\[]*)" & $sEnd , "$1" & $sReplace & "$3") MsgBox(0, "", $sText) Xandy 1 operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
guinness Posted May 8, 2013 Share Posted May 8, 2013 Why not use turn that text file into an Ini file? You're pretty much 75% there, unless it's not your config file. Xandy 1 UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now