Welcome to the IDM Forum. This forum is meant as a user-to-user support mechanism where users can share knowledge and tips for all IDM software.
Since these forums are user-to-user based, IDM does not regularly read or reply to the posts in this forum. For problem reports, suggestions, or feature requests, you must email us directly. Our trained technical support staff answers most inquiries within 30 minutes.

While Not at end of file
Sub: CountTabs
While NextCharacter is not ^p
If NextCharacter is ^t
Set Variable TabCount = (TabCount + 1)
End If
Key RIGHT ARROW
EndWhile
If TabCount <> 4
***
EndIf
Key DOWN ARROW
Set Variable TabCount = 0
EndSub
GoSub CountTabs
EndWhiletreedude2525 wrote:I want to evaluate each line of text in the file to make sure that it has a TOTAL of 4 tabs, which may or may not be sequential (i.e., the tabs may be in different positions within the line and may be separated by other text).
The macro you wrote seems to be designed to find 4 tabs in sequence.
treedude2525 wrote:Also, it marks some lines that do have the 4 tabs in sequence, doesn't mark others, and leaves an unknown character (looks like a box) at the end of some lines.
treedude2525 wrote:Does the UE macro facility have variables?

// before running macro
XX XXXXXXX (XXX / #XX) XXXXXXXXX XX XXXXXXXX XX XX XX/XX/XXXX####
XXXXXXXXX#XXXXXXXX#XXXXXXX#XXXXXX#XXXXXX XXXXXXXXXXX
XXX:####XXXXXXXXXX
XXXX XXXX:####XXXXXXXXXX
XXX-XXXXX:####XXXXXXXXXX
XXXX XXXXX:####XXXXXXXXXX
XXXX XXXXX:####XXXXXXXXXX
XXXX XXXXXX XXXXXXXX:####XXXXXXXXXX
XXX XXXXXXXXX XXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXX XXXXXXXXX XXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXX XXXXXXXXXXX XXXXX:###XX/XX/XX#XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXX XXXXXXXX:###XX/XX/XX#XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXX XXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXX XXXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX X XXXXXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXX XXXXXXXXXXX XXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXXXX XXXXXXXX/XXXXXXXX:####XXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXX XXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXXXX XXXX ##XXXXXXXX:####XXXXXXXXX XXXXX - XXXXX XXXXX
XXX#XXXXXXXXX XXXXXXXXX XXXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXX XXXXXXXXXX XXXXX:####XXXXXXXXXX
XXXXX XXXXXXX XXXXXXXX:####XXXXXXXXXX
XXXXXXX XXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXXXXXX - XX XXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXX/XXXXX XXXXXXXX:####XXXXXXXXXX
XXXXXX XXXXXXXX:####XXXXXXXXXX
XXXXX/XXXXXX XXXXX:###XX/XX/XX#XXXXXXXXXX
XXXX / XXXXX XXXXXXXXXXXX XXXXXXXX:####XXXXXXXXXX
XXXXXXXX XXXXXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXXX XXXXXXXXXXXX XXXXX:####"XXXXXXXXXXXX XXXXXXX, XX - XXXXX XXXXXX"
XXXXXXXXX XXXXXXX:####XXXXXXXXX XXXXX - XXXXX XXXXX
XXXXXXXXX XXXXX:##"XXXXXXXXXXXX XXXXXXX, XX - XXXXX XXXXXX"
XXXXXXXXX XXXXXXXX:####"XXXXXXXXXXXX XXXXXXX, XX - XXXXX XXXXXX"
XXXXXXXX XXXXXXXXXXXX XXXXXXXX:####"XXXXXXXXXXXX XXXXXXX, XX - XXXXX XXXXXX"
XXXXXXXXXXXXX XXXXX:####XXXXXXXX XXXX XXXXXXXXX - XXXX XXXXXX
XXXXXXXXXXXXX XXXX##XXXX:##XXXXXXXX XXXX XXXXXXXXX - XXXX XXXXXX
XXXXX XXXX / XXXXXXX XXXXXXXX:#XX/XX/XX###XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXXX XXX:#####XXXXXXXXXX
XXXXXXX XXXXX XXX:####XXXXXXXXXX
XXXXXXX XXXXX XXX:##XXXXXXXXXX
// after running macro
XX XXXXXXX (XXX / #XX) XXXXXXXXX XX XXXXXXXX XX XX XX/XX/XXXX####
XXXXXXXXX#XXXXXXXX#XXXXXXX#XXXXXX#XXXXXX XXXXXXXXXXX
XXX:####XXXXXXXXXX***
XXXX XXXX:####XXXXXXXXXX
XXX-XXXXX:####XXXXXXXXXX***
XXXX XXXXX:####XXXXXXXXXX
XXXX XXXXX:####XXXXXXXXXX***
XXXX XXXXXX XXXXXXXX:####XXXXXXXXXX
XXX XXXXXXXXX XXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX***
XXX XXXXXXXXX XXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXX XXXXXXXXXXX XXXXX:###XX/XX/XX#XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX***
XXXXX XXXXXXXX:###XX/XX/XX#XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXX XXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX***
XXXXXXX XXXX XXXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX X XXXXXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX***
XXXXXX XXXXXXXXXXX XXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXXXX XXXXXXXX/XXXXXXXX:####XXXXXXXXXX***
XXXXXXXXXXXX XXXXXXXXX XXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXXXX XXXX ##XXXXXXXX:####XXXXXXXXX XXXXX - XXXXX XXXXX***
XXX#XXXXXXXXX XXXXXXXXX XXXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXX XXXXXXXXXX XXXXX:####XXXXXXXXXX
XXXXX XXXXXXX XXXXXXXX:####XXXXXXXXXX***
XXXXXXX XXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXXXXXX - XX XXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX***
XXX/XXXXX XXXXXXXX:####XXXXXXXXXX
XXXXXX XXXXXXXX:####XXXXXXXXXX***
XXXXX/XXXXXX XXXXX:###XX/XX/XX#XXXXXXXXXX
XXXX / XXXXX XXXXXXXXXXXX XXXXXXXX:####XXXXXXXXXX***
XXXXXXXX XXXXXXXXXX:####XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXXX XXXXXXXXXXXX XXXXX:####"XXXXXXXXXXXX XXXXXXX, XX - XXXXX XXXXXX"***
XXXXXXXXX XXXXXXX:####XXXXXXXXX XXXXX - XXXXX XXXXX
XXXXXXXXX XXXXX:##"XXXXXXXXXXXX XXXXXXX, XX - XXXXX XXXXXX"***
XXXXXXXXX XXXXXXXX:####"XXXXXXXXXXXX XXXXXXX, XX - XXXXX XXXXXX"
XXXXXXXX XXXXXXXXXXXX XXXXXXXX:####"XXXXXXXXXXXX XXXXXXX, XX - XXXXX XXXXXX"***
XXXXXXXXXXXXX XXXXX:####XXXXXXXX XXXX XXXXXXXXX - XXXX XXXXXX
XXXXXXXXXXXXX XXXX##XXXX:##XXXXXXXX XXXX XXXXXXXXX - XXXX XXXXXX***
XXXXX XXXX / XXXXXXX XXXXXXXX:#XX/XX/XX###XXXXXXXX XX XXXXXXXXXXXX - XXXXX XXXXXXX
XXXXXXX XXXXX XXX:#####XXXXXXXXXX***
XXXXXXX XXXXX XXX:####XXXXXXXXXX
XXXXXXX XXXXX XXX:##XXXXXXXXXX***

^(?:[^|\r\n]*\|){1,9}[^|]*$|^(?:[^|\r\n]*\|){11,}[^|]*$asd|sdf|sdf|asd|sdf|sdf|asd|sdf|sdf|asd|sdf|sdf|fg
|sdf|sdf|asd|sdf|sdf|asd|sdf|sdf|asd|xcc
|sdf|sdf|asd|sdf|sdf
asd|sdf|sdf|asd|sdf|sdf|asd|sdf||asd|sdf|sdf|asd|sdf|sdf|
||||||||||
||||||
|||||||||||asd|sdf|sdf|"as|d"|sdf|sdf|asd|sdf|sdf|asd|xcc

Mofi wrote:Maybe it would be a good idea to write a macro or script which asks the user for the delimiter character and the correct number of delimiters per line and then run the search to mark all the lines with wrong number of delimiters. Such a macro or script could also handle the exception that a delimiter character inside "..." should be ignored.