Chimaera Posted August 16, 2015 Share Posted August 16, 2015 i understand this function is usefull for UN compiled scripts etc butI can easily add [102] in the error to determine a location like' Error Found ', ' Netstop1 Failed Execution [102]but if im changing stuff and adding code this will soon become a train wreckIs there a simple way to add the correct line number without having to go and re edit all error codes every time i change something?And this is for a compiled script btw If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
JohnOne Posted August 16, 2015 Share Posted August 16, 2015 @ScriptLineNumber will always be the ScriptLineNumber however much code you add. It's the whole point.Are you using it wrong?Post example. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
AdmiralAlkex Posted August 16, 2015 Share Posted August 16, 2015 (edited) You can put @ScriptLineNumber as a default argument to the function that write the error log/text. Example:_Error("Netstop1 Failed Execution") _Error("cheese steak jimmy's") Func _Error($sText, $iLine = @ScriptLineNumber) MsgBox(0, "Line number " & $iLine, $sText) EndFunc Edit:@ScriptLineNumber won't work for compiled files, you will have to rethink that. Edited August 16, 2015 by AdmiralAlkex .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface Link to comment Share on other sites More sharing options...
Chimaera Posted August 16, 2015 Author Share Posted August 16, 2015 (edited) @ScriptLineNumber will always be the ScriptLineNumber however much code you add. It's the whole point.Are you using it wrong?Post example.It works for uncompiledbut on compiled it shows -1I need it for CompiledIm just trying to find a way of having scriptchange adjustable entries so when i change things therror location will be correct in the compiled version Edited August 16, 2015 by Chimaera If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
JohnOne Posted August 16, 2015 Share Posted August 16, 2015 There are tons of topics on this, and a wiki I believe. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Chimaera Posted August 16, 2015 Author Share Posted August 16, 2015 hmm ive never seen one but ill go look If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
AdmiralAlkex Posted August 16, 2015 Share Posted August 16, 2015 I think you'll have to write a pre-processor to run before compilation then to insert the numbers in the compiled script. Not sure there's any other way if you have to have compiled. .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface Link to comment Share on other sites More sharing options...
Chimaera Posted August 16, 2015 Author Share Posted August 16, 2015 (edited) Yep so im seeing from the reading materialThx allMind you im only interested where my line is in my script so i can still do them by hand...which puts me within a couple of lines of the problemThing i dont get it thisLocal $checkerror = @ScriptLineNumber Local $checkerror2 = $checkerror +2you would think remembers the value as it is just a number but you cant get it to show outside when its compiled Edited August 16, 2015 by Chimaera If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
JohnOne Posted August 16, 2015 Share Posted August 16, 2015 Hard writing line numbers to script is not required.Try top google searvh answer. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Chimaera Posted August 16, 2015 Author Share Posted August 16, 2015 (edited) I had already looked at that butI dont use Obfuscator anywayAnd ive added#AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/mobut it still returns -1 for this after compilation the [106] is the actuall$hNotify = _Notify_Show(0, ' Error Found ', ' Netstop1 Failed Execution [106] ' & @ScriptLineNumber, 0, 1)Just so we are clear on what im trying to achieve hereI dont really mind about knowing the line number from a 15000 compiled scriptI only am bothered about what my line number is in my part of the script so i can goto my section and relook at the error for the Run or shellexecute etc that caused itwhich is why im surprised that the number from thisLocal $checkerror = @ScriptLineNumber Local $checkerror2 = $checkerrorisnt remembered as a variable so i can pass it to the error report like this$hNotify = _Notify_Show(0, ' Error Found ', ' Netstop1 Failed Execution [106] ' & $checkerror2, 0, 1)Ive tried Int/Hex/Binary/Num and loads of other stuff but it cant remember it as a variable? Edited August 16, 2015 by Chimaera If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
jchd Posted August 16, 2015 Share Posted August 16, 2015 There is nothing surprising since it's documented behavior:@ScriptLineNumberLine number being executed - useful for debug statements (e.g. location of function call). Only significant in uncompiled scripts - note that #include files return their internal line numbering This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
JohnOne Posted August 16, 2015 Share Posted August 16, 2015 You have to compare the compiled script error line number with outputted combined script. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
jchd Posted August 16, 2015 Share Posted August 16, 2015 The compiled script line number is always = -1 This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
AdmiralAlkex Posted August 16, 2015 Share Posted August 16, 2015 The compiled script line number is always = -1Not when you crash, which seems to be what JohnOne is talking about, (but not what the OP is doing) which is admittedly a little strange. If the crash dialog know the line why can't @ScriptLineNumber? .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface Link to comment Share on other sites More sharing options...
JohnOne Posted August 16, 2015 Share Posted August 16, 2015 Yes, I'm doing a lot of getting it wrong of late.I've always been a lover of the idea of @funcname macro, but I suppose an implementation of that would similar be a -1 in compiled script. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Chimaera Posted August 16, 2015 Author Share Posted August 16, 2015 which is admittedly a little strange.Thats me all overAs much as i hate it, its not possible to have it work in the way my head tells me it shouldThats life, dont worry about it guys and thx If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
jchd Posted August 16, 2015 Share Posted August 16, 2015 Admiral,Yes I was talking about the macro, the heart of the topic. Note that once compiled, the macro would count lines in the run script, contrary to the macro in non-compiled context.J1,@FuncName would help in simple scripts, but @CallStack even more in complex ones, even if we get only function names and no copy of arguments passed. This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
mLipok Posted August 16, 2015 Share Posted August 16, 2015 I had already looked at that butI dont use Obfuscator anywayAnd ive added#AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/mobut it still returns -1 for this after compilation the [106] is the actuall$hNotify = _Notify_Show(0, ' Error Found ', ' Netstop1 Failed Execution [106] ' & @ScriptLineNumber, 0, 1) Try this:#AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/mo /rsln Signature beginning:* Please remember: "AutoIt"..... * Wondering who uses AutoIt and what it can be used for ? * Forum Rules ** ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24 Link to comment Share on other sites More sharing options...
jguinch Posted August 16, 2015 Share Posted August 16, 2015 I don't know if I really understand the goal, but here could be a way : 1/ Add the _MyDebug function (see below) to your code (at the end for example) 2/ In SciTE, select the whole code, but not the MyDebug function 3/ Go to Tools > Trace: Add Trace Lines 4/ Go to Search > Replace (CTRL + H) : replace ConsoleWrite('>Error code by _MyDebug('>Error codeNow, you can compile your script and launch the compiled script with the /MyDebug parameter _MyDebug() :Func _MyDebug($sLine) Local Static $iDebugMode = -1 If $iDebugMode = -1 Then If StringInStr($CmdLineRaw, "(?i)/MyDebug") Then _DebugSetup("MyDebug") $iDebug = 1 Else $iDebugMode = 0 EndIf EndIf If $iDebugMode Then _DebugOut($sLine) EndIf EndFuncIt's just an idea, don't knock me ! Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF Link to comment Share on other sites More sharing options...
mLipok Posted August 16, 2015 Share Posted August 16, 2015 you should check if _DebugSetup was aleready called and so you can chceck if debug window is visible Signature beginning:* Please remember: "AutoIt"..... * Wondering who uses AutoIt and what it can be used for ? * Forum Rules ** ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24 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