代码拉取完成,页面将自动刷新
package securities
import (
"bufio"
"gitee.com/quant1x/exchange/cache"
"gitee.com/quant1x/gox/api"
"gitee.com/quant1x/gox/text/encoding"
"io"
"os"
"slices"
"strings"
)
// IndustryInfo 行业板块对应
type IndustryInfo struct {
MarketId int // 市场代码
Code string // 股票代码
Block string // 行业板块代码
Block5 string // 二级行业板块代码
XBlock string // x行业代码
XBlock5 string // x二级行业代码
}
// 获取行业板块
func loadIndustryBlocks() []IndustryInfo {
hyfile := "tdxhy.cfg"
name := hyfile
cacheFilename := cache.GetBlockPath() + "/" + name
if !api.FileExist(cacheFilename) {
// 如果文件不存在, 导出内嵌资源
err := export(cacheFilename, name)
if err != nil {
return nil
}
}
file, err := os.Open(cacheFilename)
if err != nil {
return nil
}
defer api.CloseQuietly(file)
reader := bufio.NewReader(file)
// 按行处理txt
decoder := encoding.NewDecoder("GBK")
var hys = []IndustryInfo{}
for {
data, _, err := reader.ReadLine()
if err == io.EOF {
break
}
line := decoder.ConvertString(string(data))
arr := strings.Split(line, "|")
bc := arr[2]
bc5 := bc
if len(bc5) >= 5 {
bc5 = bc5[0:5]
}
var xbc, xbc5 string
if len(arr) >= 6 {
xbc5 = arr[5]
if len(xbc5) >= 6 {
xbc = xbc5[:5]
}
}
hy := IndustryInfo{
MarketId: int(api.ParseInt(arr[0])),
Code: arr[1],
Block: bc,
Block5: bc5,
XBlock: xbc,
XBlock5: xbc5,
}
hys = append(hys, hy)
}
return hys
}
// 从行业信息中提取股票代码列表
func industryConstituentStockList(hys []IndustryInfo, block string) []string {
list := []string{}
for _, v := range hys {
if len(block) == 5 {
//if v.Block5 == block {
if strings.HasPrefix(v.Block5, block) || strings.HasPrefix(v.XBlock5, block) {
list = append(list, v.Code)
}
} else {
if v.Block == block || v.XBlock == block {
list = append(list, v.Code)
}
}
}
if len(list) > 0 {
slices.Sort(list)
}
return list
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。