nobbe Posted January 26, 2007 Share Posted January 26, 2007 hi is it possible to have something like "qq" as in perl in autoit?? example : a string over more than 1 line, keeping formatting and quotes intact? comes handy if you like to use original text as string values.. $test=qq~ <meta http-equiv="imagetoolbar" content="no"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body onload="start()"><div style="position:absolute; z-index:10; left:188px; top:0px; height:60px;"><iframe allowtransparency="true" scrolling="no" hspace="0" vspace="0" frameborder="0" marginheight="0" marginwidth="0" src="ad/un/ads.php" width="468" height="60"></iframe></div><div style="position:absolute; background-color:#747273; left:0px; top:0px; width:100%; height:60px;"> ~; Link to comment Share on other sites More sharing options...
/dev/null Posted January 26, 2007 Share Posted January 26, 2007 Not implemented. I asked the same questions some time ago. There is no interest to implement it. __________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf * Link to comment Share on other sites More sharing options...
Michel Claveau Posted January 27, 2007 Share Posted January 27, 2007 Hi!There is no interest to implement it.Glup! I am VERY interesting by this implementation.Litteral string multi-line is implemented in many languages (Python "triple-quot", Ruby, Perl, Object-PAL, etc.)In use, it's very very very good/useful/funny/smart.When this possibility will be implemented in AutoIt!, I use it more often. Link to comment Share on other sites More sharing options...
kjactive Posted January 27, 2007 Share Posted January 27, 2007 (edited) There is a solution though, make all into a variable, I offen do this when working with HTML hybrid coding... $a = '$test=qq~' $a = $a & '<meta http-equiv="imagetoolbar" content="no">' $a = $a & '<meta http-equiv="content-type" content="text/html; charset=UTF-8">' $a = $a & '</head>' $a = $a & '<body onload="start()"><div style="position:absolute; z-index:10; left:188px; top:0px; height:60px;"><iframe ' $a = $a & 'allowtransparency="true" scrolling="no" hspace="0" vspace="0" frameborder="0" marginheight="0" ' $a = $a & 'marginwidth="0"' $a = $a & 'src="ad/un/ads.php" width="468" height="60"></iframe></div><div style="position:absolute; background-' $a = $a & 'color:#747273; left:0px; top:0px; width:100%; height:60px;">' $a = $a & '~;' The variable wrap can be made automatically as a Do / Until loop The HTML code is now $a variable ready to get fired, a walk around but works fine... kjactive Edited January 27, 2007 by kjactive Au3PP 4.1 - Autoit3 preprocessor, optimize speed, performance to scripts and do executes....[/url]Au3Calibur - Create libraries of commonly used code excerptsWords manipulate UDF, functions that is lent from the rexx language, topics and index file includedCustomDialog UDF to include custom made dialogs like a extended colorpick requester to scripts...[url="ftp://fritidshjemmet.com/Autoit3/SysColor.zip"]SysColor UDF a low level color library to manipulate RGB and Hex values...Shell32 UDF to Automate Windows® operating tasks from native dialog and Wizards browsers... Optimized the CodeWicard with options to generate browser code etc... Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted January 27, 2007 Moderators Share Posted January 27, 2007 There is a solution though, make all into a variable, I offen do this when working with HTML hybrid coding... $a = '$test=qq~' $a = $a & '<meta http-equiv="imagetoolbar" content="no">' $a = $a & '<meta http-equiv="content-type" content="text/html; charset=UTF-8">' $a = $a & '</head>' $a = $a & '<body onload="start()"><div style="position:absolute; z-index:10; left:188px; top:0px; height:60px;"><iframe ' $a = $a & 'allowtransparency="true" scrolling="no" hspace="0" vspace="0" frameborder="0" marginheight="0" ' $a = $a & 'marginwidth="0"' $a = $a & 'src="ad/un/ads.php" width="468" height="60"></iframe></div><div style="position:absolute; background-' $a = $a & 'color:#747273; left:0px; top:0px; width:100%; height:60px;">' $a = $a & '~;' The variable wrap can be made automatically as a Do / Until loop The HTML code is now $a variable ready to get fired, a walk around but works fine... kjactive In my experience... $a &= xxxoÝ÷ ØjË^®ØZ«¢+ØÀÌØíôÀÌØíµÀìáá Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
kjactive Posted January 27, 2007 Share Posted January 27, 2007 In my experience... $a &= xxxoÝ÷ ØjË^®ØZ«¢+ØÀÌØíôÀÌØíµÀìáá True but the string gets to long for autoit3 to handle - it's a walk around... I just discovered that this should function to... Func ChangeHtmlCodeIntoVariable($HTML_code) Return '$a = ' & StringReplace($HTML_code,@CRLF, @CRLF & '$a = $a & ') EndFunc Anyway in Theory it does... kjactive Au3PP 4.1 - Autoit3 preprocessor, optimize speed, performance to scripts and do executes....[/url]Au3Calibur - Create libraries of commonly used code excerptsWords manipulate UDF, functions that is lent from the rexx language, topics and index file includedCustomDialog UDF to include custom made dialogs like a extended colorpick requester to scripts...[url="ftp://fritidshjemmet.com/Autoit3/SysColor.zip"]SysColor UDF a low level color library to manipulate RGB and Hex values...Shell32 UDF to Automate Windows® operating tasks from native dialog and Wizards browsers... Optimized the CodeWicard with options to generate browser code etc... Link to comment Share on other sites More sharing options...
nobbe Posted January 27, 2007 Author Share Posted January 27, 2007 hi i found the only thing to get it to work is to read it char by char from a tempfile .. reading all lines with filereadline doesnt work either, the string gets too long ... $file = FileOpen(".\htm\temp.htm", 0) $test = ""; ; Read in 1 character at a time until the EOF is reached While 1 $chars = FileRead($file, 1) If @error = -1 Then ExitLoop $test = $test & $chars ; MsgBox(0, "Char read:", $chars) WEnd FileClose($file) MsgBox(0, "test ", $test) Link to comment Share on other sites More sharing options...
kjactive Posted January 27, 2007 Share Posted January 27, 2007 (edited) found the only thing to get it to work is to read it char by char from a tempfile .. reading all lines with filereadline doesnt work either, the string gets too long ... There is no size limits to $allchars = FileRead(...,...) it's related to all the string functions etc.... What about like I do: $ID = FileOpen(HTMLFile.htm,0) $a = FileReadLine($ID) While 1 $line = FileReadLine($ID) If @error Then Exitloop ; do the string manipulation here to the variable $Line..... $a = $a & $Line WEnd FileClose($ID) ; The variable $a can now be toshed to a HTML component or to CWebpage.dll - what ever one wants This function truely works but it's a walk around kjactive Edited January 27, 2007 by kjactive Au3PP 4.1 - Autoit3 preprocessor, optimize speed, performance to scripts and do executes....[/url]Au3Calibur - Create libraries of commonly used code excerptsWords manipulate UDF, functions that is lent from the rexx language, topics and index file includedCustomDialog UDF to include custom made dialogs like a extended colorpick requester to scripts...[url="ftp://fritidshjemmet.com/Autoit3/SysColor.zip"]SysColor UDF a low level color library to manipulate RGB and Hex values...Shell32 UDF to Automate Windows® operating tasks from native dialog and Wizards browsers... Optimized the CodeWicard with options to generate browser code etc... Link to comment Share on other sites More sharing options...
Michel Claveau Posted January 27, 2007 Share Posted January 27, 2007 Hi! Compare these three source-code: AutoIt:$st="" $st &= "ldest=[" & @CRLF $st &= "'toto@toto.com'," & @CRLF $st &= "'titi@toto.com'," & @CRLF $st &= "'gros.minet@titi.com'" & @CRLF $st &= "]" & @CRLF $st &= "for d in ldest:" & @CRLF $st &= " mailfiles('meme@tutu.com'," & @CRLF $st &= " d," & @CRLF $st &= " []," & @CRLF $st &= " ""I'm sorry""," & @CRLF $st &= " ""Y're my favorite dest..."" " & @CRLF $st &= " )"Perl:$st=qq~ ldest=[ 'toto@toto.com', 'titi@toto.com', 'gros.minet@titi.com' ] for d in ldest: mailfiles('meme@tutu.com', d, [], "I'm sorry", "Y're my favorite dest..." ) ~;Python:sr=""" ldest=[ 'toto@toto.com', 'titi@toto.com', 'gros.minet@titi.com' ] for d in ldest: mailfiles('meme@tutu.com', d, [], "I'm sorry", "Y're my favorite dest..." ) """And choose: - the more unreadable? - the more difficult to type?AutoIt can evolve.If AutoIt evolve, it will a good thing for humanity Link to comment Share on other sites More sharing options...
nobbe Posted January 27, 2007 Author Share Posted January 27, 2007 There is no size limits to $allchars = FileRead(...,...) it's related to all the string functions etc.... What about like I do: $ID = FileOpen(HTMLFile.htm,0) $a = FileReadLine($ID) While 1 $line = FileReadLine($ID) If @error Then Exitloop ; do the string manipulation here to the variable $Line..... $a = $a & $Line WEnd FileClose($ID) ; The variable $a can now be toshed to a HTML component or to CWebpage.dll - what ever one wants This function truely works but it's a walk around kjactive hi its true that the variable is not limited in length, but the function FileReadLine() fails on LONG lines . thats why i read the file char by char.. Link to comment Share on other sites More sharing options...
kjactive Posted January 28, 2007 Share Posted January 28, 2007 (edited) hi its true that the variable is not limited in length, but the function FileReadLine() fails on LONG lines . thats why i read the file char by char..I never seen it and I used this function to manipulate a lot of HTML code, a line here is seldom longer than 4695 characters....Limits:MAX_LINESIZE 4095 characters - Maximum size for a line of script. STRBUFFER 4095 characters - Size of a general string buffer. CMDLINEPARAM_MAXLEN 4096 characters - Each parameter can be this many characters. kjactive Edited January 28, 2007 by kjactive Au3PP 4.1 - Autoit3 preprocessor, optimize speed, performance to scripts and do executes....[/url]Au3Calibur - Create libraries of commonly used code excerptsWords manipulate UDF, functions that is lent from the rexx language, topics and index file includedCustomDialog UDF to include custom made dialogs like a extended colorpick requester to scripts...[url="ftp://fritidshjemmet.com/Autoit3/SysColor.zip"]SysColor UDF a low level color library to manipulate RGB and Hex values...Shell32 UDF to Automate Windows® operating tasks from native dialog and Wizards browsers... Optimized the CodeWicard with options to generate browser code etc... Link to comment Share on other sites More sharing options...
jvanegmond Posted February 16, 2007 Share Posted February 16, 2007 I know this is dumb.. But it works anyway: #cs this is a test string split over multiple lines #ce $cookie = ScriptReadLines(2,4) MsgBox(0, "", $cookie ) Func ScriptReadLines($sLineStart,$sLineEnd) If @Compiled Then SetError(1) Return 0 EndIf Local $sReturn $sScript = FileOpen(@ScriptFullPath,0) For $x = $sLineStart To $sLineEnd $sReturn &= FileReadLine($sScript,$x) & @CRLF Next FileClose($sScript) Return $sReturn EndFunc github.com/jvanegmond 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