nyke0 Posted August 27, 2014 Posted August 27, 2014 $string = "Hello AutoItScript.com, I'm a new member here, and I wanna split this string after every 30 characters. But I don't have any idea how I make this, so please help me."
kylomas Posted August 27, 2014 Posted August 27, 2014 (edited) nyke0, One possibility... #include <array.au3> local $sString = "Hello AutoItScript.com, I'm a new member here, and I wanna split this string after every 30 characters. But I don't have any idea how I make this, so please help me." local $aString = stringregexp($sString,'(?s)(.{30}|.{1,29}$)',3) _arraydisplay($aString) kylomas edit: corrected SRE to pick up last chunk Edited August 27, 2014 by kylomas Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill
Luigi Posted August 27, 2014 Posted August 27, 2014 (edited) Something like this... @kylomas: not funny... is more thin and more faster... 8/ #include-once #include <Array.au3> Local $string = "Bacon ipsum dolor sit amet chicken tri-tip flank filet mignon. Kielbasa jowl bacon brisket strip steak cow. Pork loin chuck hamburger swine bacon. Drumstick cow jowl short loin sausage strip steak. Pork shoulder beef short loin bresaola ball tip drumstick swine tail andouille prosciutto spare ribs. Doner turkey andouille porchetta, salami beef drumstick capicola venison ribeye boudin flank bresaola ham. Flank landjaeger frankfurter spare ribs, strip steak filet mignon ground round cow bacon." Local $aSplit = _SplitString($string, 30) _ArrayDisplay($aSplit, "$aSplit") Func _SplitString($vInput = "", $iEach = 30) Local $aAnswer[1], $sPart Do $sPart = StringLeft($vInput, $iEach) _ArrayAdd($aAnswer, $sPart) $vInput = StringTrimLeft($vInput, $iEach) Until StringLen($vInput) <= $iEach If $vInput Then _ArrayAdd($aAnswer, $vInput) _ArrayDelete($aAnswer, 0) Return $aAnswer EndFunc ;==>_SplitString Edited August 27, 2014 by Detefon Visit my repository
guinness Posted August 27, 2014 Posted August 27, 2014 (edited) Detefon, Declaring variables in a loop is going to affect execution time. Edited August 31, 2014 by guinness Luigi 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
BugFix Posted August 27, 2014 Posted August 27, 2014 @nyke0: It's not a good manner, to make crossposts (same post in 2 forums in 6 minutes). Best Regards BugFix
Solution mikell Posted August 27, 2014 Solution Posted August 27, 2014 Isn't this a word wrap question ? Local $sString = "Hello AutoItScript.com, I'm a new member here, and I wanna split this string after every 30 characters. But I don't have any idea how I make this, so please help me." $res = StringRegExpReplace($sString, ".{1,30}(\h|$)\K", @crlf) Msgbox(0,"", $res)
kylomas Posted August 27, 2014 Posted August 27, 2014 Isn't this a word wrap question ? Apparently since the OP likes your answer...not obvious in the op... Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill
Moderators Melba23 Posted August 27, 2014 Moderators Posted August 27, 2014 nyke0,If you are indeed looking to size strings to fit in controls, take a look at my StringSize UDF - the link is in my sig. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
mikell Posted August 27, 2014 Posted August 27, 2014 kylomas, I totally agree... but I'm sure you already know that unfortunately we often have to guess about what an OP really wants - especially when regex are concerned
kylomas Posted August 27, 2014 Posted August 27, 2014 @mikell - Of course, just disapointed...thought I actually nailed one of these SRE bitches... Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill
mikell Posted August 27, 2014 Posted August 27, 2014 You did !! The rest is matter of precision in the asked question
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