Whether it's the 18th or 19th elements you're after, just adjust the values of $cnt1 and $cnt2 on the code below.
You can remove the array "$d" and replace the reference to "$d" with a Get-Content cmdlet to get the information from a file.
Be aware that there can be NO COMMAS in any of the quoted strings in the file.
$d = 'Header=0,"Some Name",0,3,54,48,90,0,1,23,0,100,1,5,0.400000,250,1000,500,9600,10,10,10,960,1,2,30,14,100,1,5,0,0,2000,0,0,0,1,0,0',
'RmSetup=4310,1,1#2|0|3#4|3#4|3#4|3#4|3#4|5#6|0|0|3#4|0|3#4|3#4|8|0,10,100,0,0,1,70,1,1,0,0,5310,0,0',
'C1=AAAAAAEEXX,195.168.3.1,0,0,DSP',
'C2=AAAAAAEEXX,195.168.3.2,1,0,DSP',
'C3=AAAAAAEEXX,195.168.3.3,1,0,DSP',
'A1="A123 (Name2 CTG#2) - Ia",c,600.000000,100.000000,0.000000,Ia,-1,-1,-1,0.000000',
'A2="B123 (Name2 CC CTG#2) - Ib",c,600.000000,100.000000,0.000000,Ib,-1,-1,-1,0.000000'
#positions
$cnt1 = 2 # 2nd
$cnt2 = 18 # 18th
#indexes
$index1 = $cnt1 - 1 # 2nd
$index2 = $cnt2 - 1 # 18th
$each = [ordered]@{}
$d |
ForEach-Object{
$a = $_ -split ','
$each["Site"] = $null
$each["Hz"] = $null
if ($a.count -ge $cnt1){
$each["Site"] += $a[$index1]
if ($a.count -ge $cnt2){
$each["Hz"] += $a[$index2]
}
[PSCustomObject]$each
}
} | Export-Csv c:\junk\pos.csv -NoTypeInformation
EDIT: Export to CSV. Use has insteas of array to provide headers for the CSV.