Thanks David,
I seem not to have stated my project clearly enough. I do not want to
gather text blocks from several files and consolidate them into one
("AllExtracts.txt") in your proposal. It's rather opposite, actually. I
want to collect text blocks on various topics from ONE file (at a time) and
distribute them by topic to various receiving files, indicated by various
file names I will place just ahead of the various text blocks in the source
file. Hope that's clear. If not, I'll try again.
I do have several of these source files, but I anticipate prepping them and
processing them one at a time. Maybe I'll reach a point where I'll want to
batch process several at a time, but not initially.
On Sunday, December 17, 2023 at 9:06:44 AM UTC-5 David Weinberger wrote:
> Just for fun, I asked ChatGPT 3.5 about this.
>
> Here's my prompt to it:
>
> I have an AppleScript project. I have a set of text files. I am going to
> go through them and mark the text blocks I want to extract with ";;" as a
> delimiter. Each text block will begin with some header text and a date. I
> will create a document that is a list of the pathnames of all the files I
> want to process; let's call that the "manifest." I will create a blank
> document named "All Extracts.txt". I would like the AppleScript to go
> through the manifest, extract each delimited text block, and append it to
> "All Extracts.txt"
>
> It responded:
>
> -- Set the path to the folder containing your text files
> set folderPath to "YourFolderPath"
>
> -- Create or open "All Extracts.txt" for writing
> set outputFile to (open for access (folderPath & "All Extracts.txt") with
> write permission)
>
> -- List of file paths in the manifest
> set manifest to {"/path/to/your/file1.txt", "/path/to/your/file2.txt"} -- Add
> your file paths here
>
> -- Process each file in the manifest
> repeat with filePath in manifest
> -- Open the current file
> set inputFile to open for access filePath
>
> -- Read the content of the file
> set fileContent to read inputFile as «class utf8»
>
> -- Close the current file
> close access inputFile
>
> -- Extract text blocks based on ";;" delimiter
> set textBlocks to paragraphs of fileContent
> set extractedText to ""
> set isBlockActive to false
>
> repeat with lineText in textBlocks
> if lineText starts with ";;" then
> if isBlockActive then
> -- Append the extracted text to "All Extracts.txt"
> write extractedText & lineText & linefeed to outputFile
> starting at eof
> set extractedText to "" -- Reset for the next block
> else
> set isBlockActive to true
> end if
> else
> if isBlockActive then
> set extractedText to extractedText & lineText & linefeed
> end if
> end if
> end repeat
> end repeat
>
> -- Close "All Extracts.txt" after processing all files
> close access outputFile
>
> This script assumes that each text block is started with ";;" and ends
> before the next ";;" delimiter. It extracts the text blocks and appends
> them to the "All Extracts.txt" file in the same folder as your text files.
>
> Remember to replace "/path/to/your/file1.txt", "/path/to/your/file2.txt"
> with the actual file paths in your manifest. Also, make sure to back up
> your data before running any script, especially if it modifies files.
>
> -------
>
> I don't use AppleScript so I don't know if this will work, but my
> experience with chatGPT so far has been that at least for the sort of
> simple Python and JavaScript programming I do as a clunky hobbyist, it's
> usually pretty durn good!
>
> Also, I apologize if I've misunderstood your scenario.
>
> Good luck!
>
>
> On Sat, Dec 16, 2023 at 10:39 PM <[email protected]> wrote:
>
>> [email protected]
>> <https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/bbedit/topics>
>> Google
>> Groups
>> <https://groups.google.com/forum/?utm_source=digest&utm_medium=email/#!overview>
>>
>> <https://groups.google.com/forum/?utm_source=digest&utm_medium=email/#!overview>
>>
>> Topic digest
>> View all topics
>> <https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/bbedit/topics>
>>
>>
>> - help on notes project
>> <#m_3631864014303049434_m_-1846469767624989676_group_thread_0> - 1
>> Update
>>
>> help on notes project
>> <http://groups.google.com/group/bbedit/t/e783874069af7684?utm_source=digest&utm_medium=email>
>>
>> Andrew McDowell <[email protected]>: Dec 16 08:47AM -0800
>>
>> - notes project description
>> - I have a number of notes journals, some up to 100k words, written over
>> some 30 years. Multiple topics in each file. My project is to extract and
>> compile all meaningful notes from these journals and split them out by
>> topic into separate files. Everything will be plain text, at least
>> initially (I'll have to sanitize some Word files). My thought is to use
>> BBEdit and Apple Scripts to accomplish this, as it's the only thing I've
>> found that shows any promise at all. If anyone has a better idea I'm
>> listening.
>> - I would prep the notes journal files into delimited text blocks as seen
>> below. Following that is my pseudo code attempt at a script. I'm a
>> beginner
>> with Apple Scripts and with BBEdit. I am not a coder but willing to learn
>> enough scripting, regex, etc to do this. Help is appreciated. Let me know
>> if I can be clearer.
>> - If this works I'm sure I'll find other things to automate for this or
>> other projects.
>> -----
>> - proposed form for 'prepped source file' (notes journal)
>> - misc (unwanted) text
>> - filename1 (target file for the following clip)
>> - ;; (beginning delimiter)
>> - heading, date
>> - text body
>> - ;; (end delimiter)
>> - misc (unwanted) text
>> - filename2
>> - ;;
>> - heading, date
>> - text body
>> - ;;
>> - misc text
>> - etc ... to end of file
>> -----
>> - proposed (pseudo code) script
>> - find 1st filename
>> - index that file to front
>> - select & copy delimited text (;; text ;;)
>> - append selection to target file
>> - find next filename in source file & repeat
>> - no more filenames?
>> - done.
>> -----
>> - maybe only an end delimiter is needed, if filename may serve as
>> beginning
>> delimiter?
>> - If anyone offers a script, please translate it for me (I'm a dummy)
>> - Or if there's a better way...
>> Thanks, Andy
>> Back to top <#m_3631864014303049434_m_-1846469767624989676_digest_top>
>> You received this digest because you're subscribed to updates for this
>> group. You can change your settings on the group membership page
>> <https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/bbedit/join>
>> .
>> To unsubscribe from this group and stop receiving emails from it send an
>> email to [email protected].
>>
>
--
This is the BBEdit Talk public discussion group. If you have a feature request
or need technical support, please email "[email protected]" rather than
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
---
You received this message because you are subscribed to the Google Groups
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/bbedit/b2e68b29-2c4c-4217-b97c-985bcb8bf84fn%40googlegroups.com.