Purpose
Extract Function Names in Directory Tree to Excel File.
Function Replaced
tlaGetNamesTree is replaced by tlaNames that has more
capabilities:
- Does not rely on the Routines function.
- Operates in CodeWright.
- Operates in CodeWright for .NET.
- Provides optional sotrting of the output.
- Provides optional viewing of the output.
tlaNames is documented on
this website and is included in tlaTools.
tlaGetNamesTree is not included in tlaTools.
|
Operation
This function processes every file in the directory tree that matches a
user-supplied file definition. This file definition can (and usually will)
contain wildcards.
This function runs the Routines( ) function against each file. It
detects if the output from Routines( ) contains API macros or functions.
It then scans for the macro or function name on each line of the Routines(
) output.
When one is found the macro or function name and its line number are copied to
the clipboard and the file name, delimited by tabs, is appended to it.
The contents of the clipboard are written to the file
tlaGetNamesTree.xls in the directory set as the root of the tree for
processing.
This file can then be loaded into Microsoft Excel and manipulated.
If you run against the root directory of CodeWright 7.0c
and you have all of the Microsoft source code installed, it will extract 4,022
function names into the Excel spreadsheet. If you then sort this spreadsheet on
Column A you will have an index of every function that is defined in the source
code and the file where it resides.
The output file generate will look something like ...
0001: initopts ... \VI\viopts.c 125
0002: dumpopts ... \VI\viopts.c 251
0003: saveopts ... \VI\viopts.c 397
0004: setopts ... \VI\viopts.c 456
0005: autoindent ... \VI\viopts.c 692
0006: directory ... \VI\viopts.c 702
0007: ignorecase ... \VI\viopts.c 709
0008: list ... \VI\viopts.c 716
.
.
.
4015: _bas_language_colors_update ... \BAS\bas.c 374
4016: _bas_language_colors ... \BAS\bas.c 413
4017: _bas_add_keyword ... \BAS\bas.c 603
4018: _bas_assign_template ... \BAS\bas.c 654
4019: _bas_indent ... \BAS\bas.c 675
4020: _bas_in_comment ... \BAS\bas.c 766
4021: _bas_routines ... \BAS\bas.c 788
4022: _bas_spellcheck_data_request ... \BAS\bas.c 801
Example
tlaGetNamesTree( );
tlaGetNamesTree( "*.cs" );
tlaGetNamesTree( "c:\source", "*.c", "c:\temp\out.xls" );
tlaGetNamesTree( "", "*.c", "c:\temp\out.xls" );
Input Parameters
Parm
|
Name
|
Code
|
Meaning
|
1
|
Root
|
|
Prompt for Root specification.
|
root
|
Root specification to use.
|
2
|
Mask
|
|
Prompt for selection mask.
|
mask
|
Selection mask to use.
|
3
|
Output
|
|
Prompt for output file.
|
file
|
Output file to use.
|
4
|
Parse
|
|
Parse function.
|
macro
|
Pasrse API macros.
|
Return Codes
Code
|
Message
|
-1
|
tlaGetNamesTree: Function not supported by CodeWright for .NET.
|
-1
|
tlaGetNamesTree: Terminated by request.
|
number
|
tlaGetNamesTree: number files found in tree but not processed for 'filename'.
|
0
|
tlaGetNamesTree: No matching files found in tree for for 'filename'.
|
number
|
tlaGetNamesTree: number files processed from tree for 'filename'
|
Reference
This function calls tlaError.
Compatibility
Current version verified under:
- CodeWright 7.0c
- CodeWright 7.5.1
- CodeWright 7.5.2
- CodeWright for .NET 7.0 does not support this function
CodeWright for .NET Restriction
This function requires the Compact display capable in CodeWright that is not
available in CodeWright for .NET.
Installation
There are three primary methods for installing this macro on your system.
Method A uses the tlaMDE tool available for purchase from this website.
Method B manipulates the macro repository directly. Method C uses the API
Macro... tool provided in every copy of CodeWright (but not CodeWright for
.NET).
Method A - tlaMDE - CodeWright or CodeWright for .NET
- Select the Code button on this page.
- When the second window opens, select all the text in the text box.
- Issue Ctl-C (copy).
- Create a new file in CodeWright or CodeWright for .NET.
- Issue Ctl-V (paste).
- Issue tlaMDE C (save and compile).
Method B - Copy to Repository - CodeWright or CodeWright for .NET
- Select the Code button on this page.
- When the second window opens, select all the text in the text box for a macro.
- Issue Ctl-C (copy).
- Load the macro repository "cwright.mac" from your CodeWright or CodeWright for .NET root:
- issue Ctl-End to go to the end of file.
- Issue Ctl-V (paste).
- Close the file and respond yes to the write request.
Method C - API Macro ... - CodeWright Only
- Select the Code button on this page.
- When the second window opens, select text from the text box for a macro:
- Do not select the [API Macro ... header line.
- Select all other lines in the macro.
- Issue Ctl-C (copy).
- Open the CodeWright Tools | API Macros... dialog.
- Press the New button.
- Select the Edit box.
- Issue Ctl-V (paste).
- Double-click on the function name in the header of the macro.
- Issue Ctl-C (copy).
- Select the Name box.
- Issue Ctl-V (paste).
- Delete the trailing blank from the name.
- Select the Save button.
- Select the Close button.
- Repeat this process for each macro in the text box.
Purchase
tlaTools is a Dynamic Link
Library that contains most of the API macros on this website in a single easy to
install package. The tlaTools
DLL can be purchased by selecting the Buy button on this page.
tlaGetNamesTree is not included as a function in
tlaTools.
tlaNames is included as a function in tlaTools.
|