Page 1 of 1

Searching for blank line in .txt file with ^$

Posted: Wed Apr 19, 2006 1:20 am
by BradMarshall
I am editing a .txt file under Windows XP Pro. I have blank lines in my file (0D.0A in the hex dump, as I would expect). A search for ^$ wirh regular expressions enabled does not find the blank line. Searches including \n or \r do not return results anywhere in the file. A search for ^.*$ will find any non-blank line.

Why isn't my search on ^$ finding the blank line?

Posted: Wed Apr 19, 2006 4:48 am
by jussij
Hi Brad,
A search for ^$ with regular expressions enabled does not find the blank line.
Unfortunately it looks like you have found a bug with the Zeus searching engine :(

I suspect this bug will be a fairly easy to fix so with any luck, expect to see a new Zeus patch in the the next week or two :)
Searches including \n or \r do not return results anywhere in the file
Currently there is no way to search for the \n or \r characters. This is a known limitation of the Zeus search engine :(

In the mean time, the only other solution I can suggest is using a Zeus macro to do the search. As an example of what I mean, here is a quick and dirty macro that finds the next blank line in the current document.

Code: Select all

function key_macro()
  -- macro only works for documents
  local document = is_document()

  if (document == 0) then
    -- can't run astyle.exe on current document
    message("This macro can only be run with an open document.")
    beep()
    return
  end

  local line_current = get_line_pos()

  -- get the length of the current line
  local len = string.len(get_line_text(line_current))

  if len == 0 then
    -- check if the file was found last time
    local line_last = get_global_string("LineSearch")

    if (line_last ~= nil) then
      if (line_current == tonumber(line_last)) then
        line_current = line_current + 1
      end
    end
  end

  local line_total = get_line_count()

  -- search the current file for the empty lines
  while line_current < line_total do
      -- get the length of the current line
      local len = string.len(get_line_text(line_current))

      if len == 0 then
        -- place the cursor on the empty line
        set_line_pos(line_current, 0)

        -- save the last line found to the global variable
        set_global_string("LineSearch", line_current)

        message("Found an empty line.")
        return
      end

      -- next line
      line_current = line_current + 1
  end

  -- reset the global variable
  set_global_string("LineSearch", "")

  message("No empty line found.")
end

key_macro() -- run the macro
Thank you for taking the time to posting this bug report ;)

Cheers Jussi

Searching for blank line in .txt file with ^$

Posted: Wed Apr 19, 2006 9:29 am
by BradMarshall
Thanks, Jussi. I'll keep a sharp eye out for the patch.

Posted: Sun Apr 23, 2006 11:40 pm
by jussij
Why isn't my search on ^$ finding the blank line?
The latest Zeus patch found here:

http://www.zeusedit.com/forum/viewtopic.php?t=533

can now search for the ^$ regular expression.

Cheers Jussi

Thanks!

Posted: Thu Apr 27, 2006 12:23 pm
by BradMarshall
Thanks for taking care of this, Jussij.

Best regards,

Brad