Build {formmenu} from a text string

DATA from a text field in a BLAZE table:
SXC | 06/07 | R | | RV SXC (destination Catalina) Top=ATC
CHATY5 | 06/07 | R | GMN, HENER, KWANG, RZ5 | RV V23 Top=ATC, No TurboJets
DARRK3 | 24/25 | C | DINTY, MCKEY, RIZIN, SCTRR, STOKD | RNAV TO, Top=FL230 TurboJets only
DOTSS2 | 24/25 | C | CLEE, CNERY | RNAV TO, Top=17K
GARDY4 | 06/07 | CR | BEALE, HAILO, LAS, MISEN, NNAVY | RNAV TO, 07L/R RV Cross TRAAP @ 8K, Maintan 3k
GMN7 | all | R | AVE, EHF | Top=ATC (Use VTU nite ops), RV (see charts)
LADJ4 | 24/25 | C | COREZ, CSTRO | RNAV TO, Top=8K, (Use DARK, SUMMR, VTU nite ops) NA 06/07
LAXX1 | all | R | IPL, MZB, OCN, ROSIN, TRM | 06/07=RV to SLI, 24/25=RV Trans. Top=ATC, TurboJet Only
MOOOS2 | 24/25 | CR | IKAYE | RV DTAIL, Top=9K, NA 06/07, TurboProp only Maintain 3k expect...

Each line ends with a
Each line has exactly 5 items separated by "|"
I have read from the table into "sids" var

I would like to take the first field of each line and build a {formmenu} called DDM
I have tried to build an ordered list for the menu data. Unable to get it right.

I have worked on this for a very long time. Read and re-read docs. Still no joy. Any ideas?

{mc=""}
{repeat: for x in {=split({=sids},"\n")}} {var={=split({=x},"|")}}
{repeat: for i in var}
{if: {=location(var,i)}=1}
{mc={=mc}&{=i}&","}
{endif}
{endrepeat}
{endrepeat}

{formmenu: name=DDM; values={=mc}}

At this point MC= a long string with 3 copies of the first field. I am stumped.

@Timothy_Treaster try this:

{sids="SXC | 06/07 | R | | RV SXC (destination Catalina) Top=ATC
CHATY5 | 06/07 | R | GMN, HENER, KWANG, RZ5 | RV V23 Top=ATC, No TurboJets
DARRK3 | 24/25 | C | DINTY, MCKEY, RIZIN, SCTRR, STOKD | RNAV TO, Top=FL230 TurboJets only
DOTSS2 | 24/25 | C | CLEE, CNERY | RNAV TO, Top=17K
GARDY4 | 06/07 | CR | BEALE, HAILO, LAS, MISEN, NNAVY | RNAV TO, 07L/R RV Cross TRAAP @ 8K, Maintan 3k
GMN7 | all | R | AVE, EHF | Top=ATC (Use VTU nite ops), RV (see charts)
LADJ4 | 24/25 | C | COREZ, CSTRO | RNAV TO, Top=8K, (Use DARK, SUMMR, VTU nite ops) NA 06/07
LAXX1 | all | R | IPL, MZB, OCN, ROSIN, TRM | 06/07=RV to SLI, 24/25=RV Trans. Top=ATC, TurboJet Only
MOOOS2 | 24/25 | CR | IKAYE | RV DTAIL, Top=9K, NA 06/07, TurboProp only Maintain 3k expect..."}{lines=split(sids, "\n")}{repeat: for x in lines; locals=temp}{firstline=split(x, "|")[1]}{endrepeat}{menuvalues=map(temp, x -> x["firstline"])}{formmenu: name=DDM; values={=menuvalues}}

I'm not 100% sure it'll work when pulling data from Data Blaze as you described but give it a shot.