cppman Posted February 12, 2008 Share Posted February 12, 2008 (edited) These two functions can be found in the string class in C#. I found them very useful for parsing things like constants, single line(and multiline) comments, etc. I noticed nobody has written these two functions yet, so I decided to. These two functions simply check if the input string starts with the search string and can also check if the input string ends with the search string.You can download the main header file here:StringStart.au3 and an example for each of the functions here:_StringStartsWith.au3_StringEndsWith.au3Also, here is a "real world" example of analysing basic C styled code using these functions.#include "StringStart.au3" Local $sCode = "#include <iostream> " & @CRLF & "#include <windows.h>" & @CRLF & @CRLF & "int main(int argc, char* argv[])" & @CRLF & "{" & @CRLF $sCode &= " //This is a comment," & @CRLF & " //that runs onto another line, that is also a comment." & @CRLF $sCode &= "}" Local $aResults = _ParseLines($sCode) MsgBox(0, "Results:", "Bracket Lines: " & $aResults[0] & @CRLF & "Comment Lines: " & $aResults[1]) ;; FUNCTION DECLS Func _ParseLines($szData) Local $aiCounts[2] = [0, 0] Local $asLines = StringSplit($szData, @CRLF) For $i = 1 to $asLines[0] $asLines[$i] = StringStripWS($asLines[$i], BitOR(1, 2)) if ( (_StringStartsWith($asLines[$i], "{") or _StringStartsWith($asLines[$i], "}")) and (_StringEndsWith($asLines[$i], "{") or _StringEndsWith($asLines[$i], "}")) ) Then $aiCounts[0] += 1 Elseif (_StringStartsWith($asLines[$i], "//")) Then $aiCounts[1] += 1 EndIf Next return $aiCounts EndFunc Edited February 12, 2008 by chris95219 Miva OS Project 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