"Proximity Search" and "Or" Clause does not seem to work - search

I have input "update identnumber"~5 OR "identnumber update"~5 as the search text but it does not highlight the following line. If however I use "N'update identnumber"~5 OR "identnumber N'update"~5 as the search text then the line below is highlighted.I am using the DocFetcher tool if that helps. What am I missing?
SET #sql = N'update IdentNumber

I was able to use "N'update identnumber"~5 OR "identnumber N'update"~5 as the search text and get the
SET #sql = N'update IdentNumber
line to be highlighted.

Related

I have text in separate lines inside same box, How to make it all in one line

Some of my text are in different lines inside same cell. I want them in single line. How do I bring them in single line ?
Example:
first cell contains:
Hi Ram, I want to go to movie today.
Are you willing to join?
If yes, let me know early.
Example:
Expected output:
Hi Ram, I want to go to movie today.Are you willing to join?If yes, let me know early.
New line in a cell A1 caused by alt+Enter for example, may be removed using a formula such as:
=SUBSTITUTE(A1,CHAR(10)," ")
Where A1 is the cell containing the text to be changed. You can enter the formula above in a different cell of course.
The parameter " " indicates 1 space to replace the line break. You could use any other character.
Another type of line break is CHAR(13). You can remove CHAR(13) using the same function again:
=SUBSTITUTE(SUBSTITUTE(A1, CHAR(13)," "), CHAR(10), " ")
In case you had some spaces already before the new-line character, you need to wrap the above formula in a TRIM function like so:
=TRIM(SUBSTITUTE(A1,CHAR(10)," "))
OR
=TRIM(SUBSTITUTE(SUBSTITUTE(A1,CHAR(13)," "),CHAR(10)," "))
Always make a copy of your file before you apply formulas that could change the data.
Note-1:
char(13) is officially called "carriage return" and char(10) is called "line feed".
CHAR(10) returns a line break on Windows, and CHAR(13) returns a line break on the Mac. This answer is for Windows. You can't visually see it but you can see its effect.
Note-2:
As #kojow7 answered, a text wrap can cause the text to appear on more than 1 line depending on the cell width and the text length. This answer does not resolve this case.
Related discussion can be found here: Remove line breaks from cell.
Two things you may need to fix here: 1) Line breaks and 2) Text Wrapping
To fix line breaks:
Select the cells that need to be changed
Press CTRL+H to open Search and Replace
In the Find box type CTRL+J to insert the line break character (it may look like nothing was inserted in the field, but it does insert a line break)
Decide whether to replace the line breaks with a space or with nothing
Press Replace All
To turn off text wrapping:
Select the cells that need to be changed
Go to the Home Tab
In the Alignment Group check to see if the Wrap Text button is clicked.
If it is, click on it again to deselect it.
Depending on your situation, you may need to fix either one or both of these.
Depending on your document it might contain linefeeds or carriage returns or BOTH.
Alexander Frolov (https://www.ablebits.com/office-addins-blog/2013/12/03/remove-carriage-returns-excel/) has written a very good blog post about different technics of finding and removing linebreaks in an Excel file. We will use the “macro way” of doing that – as it is the one that works either on Windows AND Mac. The search replace method offered here too will not work on Mac but on windows.
Add the below Macro to your document (slighlty modified from the original)
Change the value of “ReplaceWith” from ” ” (space) to anything you like a linebreak to be replaced with.
E.g. ReplaceWith = “-” will result in “Line1-Line2-Line3”
Run the Macro (Extras > Macro) while all cells are selected.
Sub RemoveCarriageReturns()
ReplaceWith = " "
LinefeedChar = Chr(10)
Dim recordRange As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each recordRange In ActiveSheet.UsedRange
If 0 < InStr(recordRange, LinefeedChar) Then
recordRange = Replace(recordRange, LinefeedChar, ReplaceWith)
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
If your separate lines are not gone by now please change "LinefeedChar" from "Chr(10)" to "Chr(13)" and run it again

Trying to scrub a file with AutoIt

I work with a piece of software that outputs a sql script during upgrades. I am trying to make a tool that will read the file and append " ON IndexDataFile" to the lines that contain "CREATE INDEX" or "CREATE UNIQUE INDEX"
I open that file and write each line to a new file using FileOpen and FileReadLine. Despite a good deal of searching via Google and specific forums I have not been able to figure out how to search each line and append to it when one of the two values are found.
Here is the loop I am using to write to the new file:
While 1
$line_read = FileReadLine($handle_read)
If #error Then ExitLoop
;Code to evaluate line and append text when true
FileWriteLine($handle_write, $line_read)
WEnd
Can someone give me a hint on how to test the string and append when needed or is there a better approach to this?
In one line it would be as easy as:
$line_read = StringRegExpReplace($line_read, "(CREATE\ (?:UNIQUE\ )?INDEX)", "\1 ON IndexData")
You can test your RegEx on regex101.com to make sure, it works as expected.
Or you can write your expression differently if you prefer it fo a better way of reading with an "or" symbol |:
$line_read = StringRegExpReplace($line_read, "(CREATE\ INDEX|CREATE\ UNIQUE\ INDEX)", "\1 ON IndexData")
I was able to resolve it with the following:
While 1
$line_read = FileReadLine($handle_read)
If #error Then ExitLoop
If StringRegExp ( $line_read, "CREATE INDEX") Then $line_read = $line_read & " ON IndexData"
If StringRegExp ( $line_read, "CREATE UNIQUE INDEX") Then $line_read = $line_read & " ON IndexData"
FileWriteLine($handle_write, $line_read)
WEnd

How to perform a custom search using a button formula

I would like to create a button to search my mail's Inbox view for emails which contain a unique string found in the subject field of the selected document. For this, I have created the following button formula. This correctly retrieves the unique string but the search itself does not work.
SearchStringLeftPart := #Left( Subject; "] [");
SearchString := #RightBack( SearchStringLeftPart; "[");
#SetViewInfo([SetViewFilter];SearchString;Subject;0;0)
Please can someone advise if #SetViewInfo can be used for this purpose & if so what is wrong with the formula. Otherwise how else can I achieve the task using a button formula?
Unfortunately, you can't accomplish that with #SetViewInfo.
But, in combination with a short agent you can show only those documents in view which have current document's unique Subject substring in their Subject field.
Create a formula agent "SelectSubjectSearch" with
target "All documents in view"
option "Selects documents in view"
formula
SELECT #Contains(#LowerCase(Subject); #LowerCase(#Environment("SubjectSearch")))
Create a formula button which
writes the search string into environment variable "SubjectSearch"
selects the option "View / Show / Selected Only" in menu
calls the agent "SelectSubjectSearch"
Button code:
SearchStringLeftPart := #Left( Subject; "] [");
SearchString := #RightBack( SearchStringLeftPart; "[");
#SetEnvironment("SubjectSearch"; SearchString);
#Command([ViewShowOnlySelected]);
#Command([ViewShowOnlyUnread]);
#Command([ViewShowOnlyUnread]);
#Command([ViewShowOnlySelected]);
#Command([RunAgent]; "SelectSubjectSearch")
The tricky part is the "View / Show / Selected Only" selection. As [ViewShowOnlySelected] just toggles between "Select Only" and not "Select Only" and you don't know which status currently is set we have to call a double [ViewShowOnlyUnread] which resets [ViewShowOnlySelected] to not "Select Only". The first [ViewShowOnlySelected] sets the information bar to "You are seeing: the item you selected" and the second [ViewShowOnlySelected] does set for sure "Select Only".
Is the subject exposed in the first (sorted) column of the view?
IIRC, SetViewInfo only filter the view on the first column, which alse must be sorted.
Update: Did not refresh the page after I got back from lunch, so did not see that there already was a correct answer.
Create a search view with first column sorted by subject and use view.getAllDocumentsByKey(...)to get the documenta you search

VBA how to give a table in Excel a custom table style

simple question but I can't seem to find an answer anywhere so I'll put it here: how to you assign table styles to tables, yet not map it to a default table style i.e. make custom style elements? I read it might involve .TableStyleElements but when I tried to add ActiveSheet.ListObjects("Table1").TableStyleElements(xlHeaderRow).Font.Color = RGB(119, 184, 0) it breaks. Am I getting the syntax wrong?
I believe you need to declare the table style first eg:
Dim oTblStyle As TableStyle
Set oTblStyle = ActiveSheet.ListObjects("Table1").TableStyle
oTblStyle.TableStyleElements.Item(xlHeaderRow).Font.Color = RGB(119, 184, 0)

Paste yanked text in several sequential lines

If I have multi-line line snippet:
length = 1;
keys = NewKey(value);
gt_backref = NULL;
ls_backref = NULL;
And I need to paste yanked (<ctrl>-V+y) node-> between every line of snippet:
node->length = 1;
node->keys = NewKey(value);
node->gt_backref = NULL;
node->ls_backref = NULL;
How do I paste yanked text in several sequential lines? Something like <ctrl>-V+<shift>-I but for paste, not for typed text.
<C-v>{motion}I<C-r>"<Esc>
Enter visual block mode with <C-v>.
Extend your selection.
Hit I to enter insert mode.
Do <C-r>" to insert the content of the unnamed register.
Hit <Esc> to apply the change to all the selected lines.
Or with :normal:
:[range]norm I<C-r>"<CR>
Well, if you select the text with Shift-V, then do a regex
:'<,'>s/.*/node->&/
that would add node-> to the selected lines.
or I guess even simpiler
:'<,'>s/^/node->/
If it's more complicated, maybe you would create some kind of macro with a search to find the type of lines you want to replace and run the same regex replace on each of those lines
This answer based on #Shaun's answer. This really needs a macro. But the correct regexp is
:'<,'>s/\(^\s\+\)/\1node->/
Because I need to take into account indentation.
But this approach does not universal. For every particular case we need new regexp.

Resources