Jump to content

Recommended Posts

Posted (edited)

Very clever regular exp<b></b>ressi&#111;n Melba23. When I saw it last night for some reason I glazed over it, but today decided to to revisit this thread.

#include <Constants.au3>

Local $aEOL[3] = [@CRLF, @CR, @LF], _
        $sReturn = ''
For $i = 1 To 20
    $sReturn &= 'Random__' & $i & $aEOL[Random(0, 2, 1)]
Next
Local $sBeforeText = $sReturn
ConvertEOLToText($sBeforeText)
MsgBox($MB_SYSTEMMODAL, 'Before', $sBeforeText & @CRLF)

; By Melba23, convert @CR & @LF to @CRLF. Using lookarounds, very clever!
$sReturn = StringRegExpReplace($sReturn, '((?<!\x0d)\x0a|\x0d(?!\x0a))', @CRLF)

Local $sAfterText = $sReturn
ConvertEOLToText($sAfterText)
MsgBox($MB_SYSTEMMODAL, 'After', $sAfterText & @CRLF)

; Convert the EOL characters to the macro string representation.
Func ConvertEOLToText(ByRef $sText)
    ; \x0a = @LF & \x0d = @CR & \x0d\x0a = @CRLF
    $sText = StringRegExpReplace($sText, '\x0d(?!\x0a)', '@CR' & @CR)
    $sText = StringRegExpReplace($sText, '(?<!\x0d)\x0a', '@LF' & @LF)
    $sText = StringRegExpReplace($sText, '\x0d\x0a', '@CRLF' & @CRLF)
EndFunc   ;==>ConvertEOLToText

SciTE has an option to convert EOLs to what ever the preferred choice is. Navigate to Options >> Convert Line End Characters. The preferred choice can be changed by selecting the menu item above. I have it set to @CRLF (like most probably.)

And for those who like rn and not the Hex values.

#include <Constants.au3>

Local $aEOL[3] = [@CRLF, @CR, @LF], _
        $sReturn = ''
For $i = 1 To 20
    $sReturn &= 'Random__' & $i & $aEOL[Random(0, 2, 1)]
Next
Local $sBeforeText = $sReturn
ConvertEOLToText($sBeforeText)
MsgBox($MB_SYSTEMMODAL, 'Before', $sBeforeText & @CRLF)

; By Melba23, convert @CR & @LF to @CRLF. Using lookarounds, very clever!
$sReturn = StringRegExpReplace($sReturn, '((?<!\r)\n|\r(?!\n))', @CRLF)

Local $sAfterText = $sReturn
ConvertEOLToText($sAfterText)
MsgBox($MB_SYSTEMMODAL, 'After', $sAfterText & @CRLF)

; Convert the EOL characters to the macro string representation.
Func ConvertEOLToText(ByRef $sText)
    ; \n = @LF & \r = @CR & \r\n = @CRLF
    $sText = StringRegExpReplace($sText, '\r(?!\n)', '@CR' & @CR)
    $sText = StringRegExpReplace($sText, '(?<!\r)\n', '@LF' & @LF)
    $sText = StringRegExpReplace($sText, '\r\n', '@CRLF' & @CRLF)
EndFunc   ;==>ConvertEOLToText
Edited by guinness

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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Posted

My code was just to demonstrate that it works. No credit should be given to me.

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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...