Jump to content

Search big text file and select versions


Lesler
 Share

Recommended Posts

Hello

I have a big text file with 54,000 lines in.

eg

P:\spec\66\660-20995-01.pdf

P:\spec\66\660-20995-01-A.pdf

P:\spec\66\660-20995-01-B.pdf

P:\spec\66\660-20995-01-C.pdf

P:\spec\66\660-21034-01.pdf

P:\spec\66\660-21035-01-S.pdf

The drawings are available in different versions.

Tagged with A-B-C

But-s is not a text but a quality of material presented.

So-s may not participate in the search.

But the file name might appear as

P:\spec\66\660-21035-01-S.pdf

P:\spec\66\660-21035-01-A-S.pdf

P:\spec\66\660-21035-01-B-S.pdf

So that I can avoid manually gememn go to the 54,000

lines, I would like to make a program which Soter the filenames out so I get the following out of a list

P:\spec\66\660-20995-01.pdf

P:\spec\66\660-20995-01-A.pdf

P:\spec\66\660-20995-01-B.pdf

P:\spec\66\660-21035-01-S.pdf

P:\spec\66\660-21035-01-A-S.pdf

So the smaller versions.

But I do not have an idea how I get programert Autoit to do it for me

It will save me a great many hours of work if I get it to work.

Is there one of you will give me a hint in the right direction.

Thanks in advance

ps

I hope that the text is understandable, it is translated from Danish into English using the Goggels

Link to comment
Share on other sites

  • Moderators

Lesler,

Does this do what you wanted? :D

#include <Array.au3>

$sText =  _
"P:\spec\66\660-20995-01.pdf" & @CRLF & _
"P:\spec\66\660-20995-01-A.pdf" & @CRLF & _
"P:\spec\66\660-20995-01-B.pdf" & @CRLF & _
"P:\spec\66\660-21035-01-S.pdf" & @CRLF & _
"P:\spec\66\660-21035-01-A-S.pdf" & @CRLF & _
"P:\spec\66\661-20995-01.pdf" & @CRLF & _
"P:\spec\66\661-20995-01-A.pdf" & @CRLF & _
"P:\spec\66\661-20995-01-B.pdf" & @CRLF & _
"P:\spec\66\661-21035-01-S.pdf" & @CRLF & _
"P:\spec\66\661-21035-01-A-S.pdf"

; Get your file into an array
$aStartArray = StringSplit($sText, @CRLF, 1)

; Just to show you what we get
_ArrayDisplay($aStartArray, "Initial order")

; Initialise arrays and counters
Global $aMainArray[$aStartArray[0]], $aSArray[$aStartArray[0]], $iMainCount = 0, $iSCount = 0

; Now look at each element and see if it contains "-S"
For $i = 1 To $aStartArray[0]
    If StringInStr($aStartArray[$i], "-S") = 0 Then
        ; Put entries without "-S" into the Main array
        $aMainArray[$iMainCount] = $aStartArray[$i]
        $iMainCount += 1
    Else
        ; Put entries with "-S" into the S array
        $aSArray[$iSCount] = $aStartArray[$i]
        $iSCount += 1
    EndIf
Next

; Get rid of the unwanted elements and sort the array
ReDim $aMainArray[$iMainCount]
_ArraySort($aMainArray)

; And this is what you get
_ArrayDisplay($aMainArray, "Main array")

; Do the same for the entries which include "-S"
ReDim $aSArray[$iSCount]
_ArraySort($aSArray)
; And add the 2 arrays together
_ArrayConcatenate($aMainArray, $aSArray)

; And here is the final result
_ArrayDisplay($aMainArray, "Added -S at end")

If not, please let me know. :huggles:

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

whatever Edited by MvGulik

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Link to comment
Share on other sites

  • Moderators

Lesler,

Jeg er meget glad for dig, men vi taler engelsk her! :D

Trans: I am very happy for you, but we speak English here! :huggles:

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...