Loading ...
Sorry, an error occurred while loading the content.

Extract information using Find, Copy & Paste

Expand Messages
  • Chuck
    Hello, I have recently downloaded NoteTabPro Trial (ver5.61) and really need some help with the clip programming language. One of your members suggested I
    Message 1 of 68 , Jul 11, 2008
    View Source
    • 0 Attachment
      Hello,

      I have recently downloaded NoteTabPro Trial (ver5.61) and really need
      some help with the clip programming language. One of your members
      suggested I post my questions here. I do have some experience
      programming but that was in DOS & GWBasic and MANY years ago.

      I have a need to copy multiple text entries from a binary file. The
      binary files are generally .75 to 15 megabytes in length. The "text"
      portion of the file is usually less than 1/2 meg. IF there were just
      a few I would do them by hand but I have over 500 to do. IF this is
      not the correct program to use, someone please have pity on an Old
      Man and tell me.

      ANY and ALL assistance is appreciated.

      Below is a synopsis of what I am trying to accomplish:

      I have managed to open the binary file by using the "Filter Binary
      Codes" option and found the information I was seeking.

      The bits of information I am looking for immediately follow a unique
      string. As a matter of fact, there are several unique strings I need
      to extract information from. Below is an example of the identifier
      and info I am trying to capture.

      {
      "classname" "info_player_deathmatch"
      "origin" "-544 3344 1272"
      }
      {
      "classname" "info_player_ start "
      "origin" "-2080 -2104 304"
      "angle" "90"
      }


      The unique identifiers are:
      "info_player_deathmatch", "info_player_FFA", "info_player_allied", "in
      fo_player_axis" and "info_player_start"

      As is apparent, all identifiers are identical except the word
      following the last "_". I didn't use a wildcard because I need the
      output in their respective groups.

      The information I need to extract includes the identifier, the line/s
      staring with "origin", and the line "angle" (if present) immediately
      below the identifier. Rather than create a conditional statement, I
      chose to select 2 lines below the identifier and just delete the line
      with only the "}" in the output.

      The output is saved to a text file with the same name as the binary
      file name. (I can't for the life of me figure out how to create a
      file using the original name with out the extension so my file name
      is something like "origfilename.bsp.txt".)

      Below is the code I have managed to create so far but it is certainly
      NOT pretty. (P.S. Please don't hurt yourselves laughing. :)
      =====================================================
      = V5 MultiLine NoSorting TabWidth=30

      H=";Extracting Spawn Points"
      This clip will extract all the spawn points from a BSP file and save
      them in a text file of the same name!

      H=";"

      H="Start"

      :Start
      ; Makes sure we start with no other files open
      ^!Close All
      ;Provides me the choice of the file I want to open
      ^!ToolBar Open Document
      ;Assigns the file name of the file I opened to a variable
      ^!Set %BSPTXT%=^$GetDocName(1)$
      ;Creates a text file with the same filename as the opened file
      ^!ToolBar New Document
      ^!Save As ^%BSPTXT%.txt
      ;Moves focus back to the file I opened
      ^!Document PREV
      ;Gives me the opportunity to see the files are correct.
      ^!Continue OK

      H=";"

      H="; Find Spawns"
      ;Label to return to after loop1
      :Spawns
      ;1st bit of information needed
      ^!Find ""info_player_allied"" CIWS
      ;If info found,goto loop1, if not go to next search
      ^!IfTrue ^!Find ""info_player_allied"" Loop1 ELSE Next

      ^!Find ""info_player_axis"" CIWS
      ^!IfTrue ^!Find ""info_player_axis"" Loop1 ELSE Next

      ^!Find ""info_player_Deathmatch"" CIWS
      ^!IfTrue ^!Find ""info_player_Deathmatch"" Loop1 ELSE Next

      ^!Find ""info_player_start"" CIWS
      ; If info not found, Spawn search ends
      ^!IfTrue ^!Find ""info_player_start"" Loop1 ELSE End

      :Loop1


      ^!Document NEXT
      ^!Keyboard HOME SHIFTDOWN DOWN DOWN DOWN SHIFTUP
      ^!Keyboard CTRL+C
      ^!Document NEXT
      ^!Paste
      ;Inserts a line between found info
      ^!Keyboard ENTER
      ^!Document PREV
      ^!Goto Spawns

      :End
      end

      =====================================================

      Best regards to all and thanks in advance for any comments.

      Chuck
    • rainmark
      Yes, I am at least one of the culprits. I didn t realize until a few days ago that this was a no-no and that it caused problems on the Yahoo list. I guess the
      Message 68 of 68 , Aug 12, 2008
      View Source
      • 0 Attachment
        Yes, I am at least one of the culprits.

        I didn't realize until a few days ago that this was a no-no and that it
        caused problems on the Yahoo list.

        I guess the proper way is to simply address a new email to the list.

        My apologies to all.



        Alec Burgess wrote:
        >
        > wonder whether its just a quirk in my client or if you
        > guys really did take the quick and dirty path to switch topics?
        >
        >
      Your message has been successfully submitted and would be delivered to recipients shortly.