传奇部落

老GOM神盾插件CSV文本文件操作以及常量说明

[复制链接]
发表于 2026-2-4 21:48:51 | 显示全部楼层 |阅读模式
传奇主流引擎目前已经都支持CSV文件的支持,做为老GOM插件派新增了写法高速缓存CSV将文本文件缓存到M2内存上面,命令SDCACHERWCSV对高速缓存CSV文件操作,二次或多次调用则会重新刷新常量内容建议固定内容放QM启动时调用一次,特别重要的文件名称不能重复不用路径的文件名称也不能重复!
4 {3 O9 `- h, K. E
; g, x: {! _; R' |% `) q  U! a. [5 Y+ A6 x0 O! P% {
& x1 Q+ w8 F( ^: S/ f5 p9 T
17666730200000a26.jpg / |$ x5 d- z6 f" J4 o& Q" W( L+ z

' [: F/ P9 u! `) Q0 Y! r
4 |5 Z0 y+ v' E7 f1 n; S% b. H
CSV自定义常量 命令:SDLOADCONLIST9 x: `8 A% E- D0 G% Y% H
" E1 L6 L7 Z% A+ @$ }
参数位置 参数说明. L0 s0 y- q5 n+ P- j* s( n4 C
参数1 文件路径. r3 y- H6 C8 U- v! n
参数2 所填列数为查找列数 ABCD….. 留空默认“A”6 c0 @8 G( ]; c; R. w' O* P7 m1 r, j
参数3 所填行数为查找列数 1234….. 留空默认“1”
9 J, q* y8 X+ y7 c! m0 U1 G" [
  r. `3 H: a  _注意1:SDLOADCONLIST二次或多次调用则会重新刷新常量内容,建议固定内容放QM启动时调用一次!+ f# e! t% V$ e+ T9 |7 T
注意2:特别重要的,文件名称不能重复!!!不用路径的文件名称也不能重复!!!
8 u% u  ]. v8 t6 |1 ]0 P! u3 l3 F+ z- c; D! c
举例说明:0 y6 M$ ]* k# l# D

2 H. o; I) H, A; A; p8 a- T9 Q4 r[@载入常量文件]0 E; t) }- X# n0 e+ G1 P2 W
#act3 L2 E1 u! L! V( e* O$ L
LOADCONLIST .\测试.csv A 1( c8 w% E8 y/ I; P' t* z4 e
sendmsg 7 载入工作表31 u/ u4 ]% `0 V; J" Y& v# f8 l
break
# s' N; v# i' {7 E) r6 B" N;以A列数为查找 行数1为查找' Y$ B! ^, l$ u2 G) D" {* Q3 X
[@显示常量文件]
% m, r7 P* `$ S) @' h3 J' R#act5 N' G* d* U, q* H+ {' [5 C3 |# B
;获取张三的年龄 此时 变量应为; e! i4 [3 y, F8 d$ q: h
张三年龄=<$CL_测试(张三.年龄)>5 I" c8 ~0 ]3 p
;输出为张三年龄=18
$ y. \5 P0 [) i9 F* {0 y# {; p) Y, e4 w) f1 s, J: Q
;获取李四的体重 此时 变量应为$ Q! V  k0 |' Z; S( p6 V& M' e, f
李四体重=<$CL_测试(李四.体重)>
; W5 G1 L3 n# z7 F;输出为 李四体重=121
7 ?" K! W+ j; _0 L; C( ]
/ u4 Z/ m+ W5 Z& d3 y! Q3 B+ |" Mcsv脚本说明8 y. L8 H  @2 B! C7 Z
路径说明
0 c  y+ `0 k( n/ Q9 ^.\这是当前目录5 u9 m2 c& e8 @: Z/ F- H4 `
..\这是上级目录
. O( w3 d4 i! a- m% {; b  ..\..\这是MIR200目录, I4 {+ ]$ X, h+ X2 T) X$ k7 A+ Q1 F' ]
 ..\..\..\这是版本目录& x' N& d$ g0 ^, ~
  ..\..\..\..\这是盘符根目录
3 }& a$ ^. ?) \* s% R$ w: |注:支持相对路径 ..\..\..\..\ 和 绝对路径 D:\KEY.ini0 d! ]9 N, V, o, x, n3 T, r# n
普通CSV(对版本内CSV文本文件操作)8 L. L; w0 U/ `' R. g# f
命令:SDRWCSV 参数1 参数2 参数3 参数4- ?& k8 ^( M, U  K

) H; ?0 `; u, h3 a  x- w+ j* ]参数位置 参数说明' ?. g$ q# o9 J7 |0 [- v
参数1 文件路径
$ t' c0 v4 `" ~; c参数2 0=读 1=写 2=取CSV参数(行数,列数)
" [$ ~9 h; s' T4 F参数3 参数2为0和1时 此参数为行数 当参数2为2时此参数为行数记录保存的变量7 E1 j7 M* N9 v" S, e
参数4 参数2为0和1时 此参数为列数 当参数2为2时此参数为列数记录保存的变量
3 U; F: I0 J. i9 P- l" M2 W参数5 参数2为0时 此参数为记录保存的变量 参数2为1时此参数为需要写入的数值 参数2为2时此参数无需填写
7 ?# D1 L9 H; }0 |6 S% g' Z
+ c3 k6 v( Y+ A. Y注意:根据自己的脚本去选择要使用的变量
& Y& L8 A1 w* s) X, [
* H5 B: v; L5 r( ]$ V9 I' ~读:! q: b' |+ m5 N5 G( G5 ]9 d
SDRWCSV .\测试.CSV 0 1 2 S0
# q" y# t/ y: K$ V6 c" h9 d  b读取CSV 第1行 第2列数据到S0: G2 F; ~4 G0 g2 Q& G3 k+ s
8 H( V! V4 N, u5 {* u& J  Z
写:7 [( @- D. A- D/ i$ l$ }+ k
SDRWCSV .\测试.CSV 1 1 2 变量. a) T: E0 V: s, P% Y5 N* b' {3 ?
将”内容”写到CSV第1行 第2列$ G; D5 {* |- |: u

+ C0 v6 _  V% s/ o6 j取:& d1 g4 A9 z, o9 s+ h
SDRWCSV .\测试.CSV 2 N0 N1
8 r& y2 l2 H4 ?2 r* s( m- U取出CSV行数保存到N0,取出CSV列数保存到N1
' Q6 X8 g9 Q. P* T1 j9 J( h
1 w1 a6 _# Y# V0 _; L4 k- r# I' S高速缓存CSV(将文本文件缓存到M2内存上面)' L% G+ S$ b2 O
命令:SDCACHELOADCSV 参数1 参数2! W# o: a0 s/ X% u! c

& W& d% {3 J& P: X% b参数位置 参数说明, u7 @5 w/ m" n+ }# d# E! G0 f
参数1 文件路径
9 X6 J' [# p9 t7 R4 _/ W参数2 0载入,存在则覆盖 1存在则不重复载入/ f9 A, N2 x9 `, A+ X; J
  t7 [& ?& z# \: S
注:使用高速缓存CSV必须先调用此命令载入,此命令建议放在引擎启动时用于初始化。
; d/ i. ~1 j; A3 k#act; R8 l& z7 ^% H9 W% Z
SDCACHELOADCSV D:\MirServer\Mir200\Envir\Market_Def\测试.csv 0
, R% s% |- v, V8 z& N8 E  n" n1 c6 P: D( \+ \$ m7 r$ o
命令:SDCACHERWCSV 对高速缓存CSV文件操作
# c) P9 \! h$ B6 o8 y' c5 O参数位置 参数说明$ J& C& w7 C) Q/ F* {/ J; x; _  C
参数1 文件路径  x( J% P* g8 c. s7 ^, n
参数2 -1保存 0读 1写 2取CSV
1 u  s3 l2 l3 g' h参数3 列,正找关键行$ \2 I" c5 Y( _0 L- H
参数4 列,倒找关键行
. p( `" n- C# B3 `: Q( W
4 O5 z6 p! a  M& l0 ~  ^# F保存:
! y' Y# x- c- K! ?SDCACHERWCSV .\测试.CSV -1 .\测试2.CSV
8 i, ~( i) h- b9 r2 q. m, @& D将高速缓存CSV保存到新的测试2.CSV,若.\测试2.CSV不填写则覆盖原文件8 J& Y4 B# R0 H

2 x$ v) {# P/ N读:1 a8 x2 S+ p! m  C. b6 l9 }# ~; p8 ]
SDCACHERWCSV .\111.CSV 0 1 2 S0
) `: H! E% X  b9 U* T+ J2 W# s- h4 x读取CSV 第1行 第2列数据到S08 U6 J& W; [; h4 V: D1 W$ {! H

0 r" P0 }, f  H( v2 A2 e8 O写:
; e+ u6 G" {3 e6 I/ e1 _1 JSDCACHERWCSV .\111.CSV 1 1 2 内容
# t) x$ g' R0 q1 D  |& J; [. s将"内容"写到CSV第1行 第2列
' G: E1 N- J( \! r1 Z! w缓存CSV写入不影响原文件,需要改变原文件请使用保存参数. Y4 A7 c! `' Z5 y, V
5 t, v/ M: Y4 F* Q3 [7 _
取:
/ s& I( M4 S) L' D; {* t) y% vSDCACHERWCSV .\111.CSV 2 N0 N17 M5 c8 F- X+ ~  r  ?* t) l4 s
取出CSV行数保存到N0,取出CSV列数保存到N1
! w& J  w9 ?" U1 u0 @
- ^% S4 w( l; u/ ], D& v) q& c7 T列找关键字所在行,从首部开始找:9 {# y( L/ d. z$ N' I, Z; ]" g
SDCACHERWCSV .\111.CSV 3 2 内容
3 r5 |! y/ G$ N* m! Z# R6 ?6 @首部开始找出第2列关键字“内容”所在行
2 n1 X4 v7 x9 w, @- l, M
5 c( Y% }4 Y9 g列找关键字所在行,从尾部开始找:) X, _9 ?5 u$ C5 `* [5 i7 V
SDCACHERWCSV .\111.CSV 4 2 内容$ Z* `- ]1 w) r1 f/ G0 O, P+ h  v
从尾部开始找出第2列关键字“内容”所在行& x  r1 h. V' M* A' Y6 \5 m

/ v& S1 g5 j# U- g) L4 r! \# b常量命令:(仅支持高速缓存CSV)& S4 ~$ a. u( O" L* }
<$CSV_111(0,1,2)>
1 P+ w% F& b- h# O结构:$CSV_    111为CSV文件名不需要后缀   (0,1,2) 0=读 1=行 2=列
4 Y. S$ g; I+ {8 @& q/ O6 K, @解释:读缓存111.CSV第1行第2列内容
9 t( u2 o5 ^& S
" `# `7 l- Z5 y7 s<$CSV_111(1)>: O' t) D2 R' Q; D1 X( `+ k$ A
结构:$CSV_    111为CSV文件名不需要后缀   (1) 取行数* n4 _( y- k" J1 P
解释:取缓存111.CSV总共有多少行# N  M$ t* Y6 h3 ]$ H# W% E( [( y3 P! k
) v8 x* D' ^$ M4 Q0 y7 G
<$CSV_111(2)>- h5 A8 P- z: W/ [% I1 T
结构:$CSV_    111为CSV文件名不需要后缀   (2) 取列数, e! l6 V- A3 S5 Q
解释:取缓存111.CSV总共有多少列
: \% b6 M, O7 M: r0 [( m, A3 W' [
+ d! \/ M8 \. Y<$CSV_111(3,2,内容)>
( p7 O/ b0 o1 m, V5 t9 b' a# I+ ~5 c/ ~结构:$CSV_    111为CSV文件名不需要后缀   (3,2,内容) 列找关键字所在行,从首部开始找
1 Y# q+ r7 \) G解释:缓存111.CSV从首部开始找出第2列关键字“内容”所在行  A* F2 j  ~7 i! O$ w3 Q9 J

! Y8 E5 ^( w9 ]* W3 G<$CSV_111(4,2,内容)>& m* R0 J# V6 K4 ?
结构:$CSV_    111为CSV文件名不需要后缀   (4,2,内容) 列找关键字所在行,从首部开始找& o! o* j6 }: e6 E4 f" G/ Y3 f
解释:缓存111.CSV从尾部开始找出第2列关键字“内容”所在行

" f+ G8 Q7 @/ @: u. r, l
站长承接传奇一切业务,小问题免费咨询。站长QQ137919001
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|网站地图|皖ICP备18020244号-7|传奇部落

GMT+8, 2026-9-18 05:51 , Processed in 皖公网安备:34112402000394号 0.186745 second(s), 26 queries .