传奇部落

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

[复制链接]
发表于 2026-2-4 21:48:51 | 显示全部楼层 |阅读模式
传奇主流引擎目前已经都支持CSV文件的支持,做为老GOM插件派新增了写法高速缓存CSV将文本文件缓存到M2内存上面,命令SDCACHERWCSV对高速缓存CSV文件操作,二次或多次调用则会重新刷新常量内容建议固定内容放QM启动时调用一次,特别重要的文件名称不能重复不用路径的文件名称也不能重复!/ u& D( e+ h* r* P5 I
* O* y: |5 b* m. ~9 P; a

. c% _" L' |" ~2 D% {6 W8 D- j
- H$ b. \1 @+ O& \# Z- t2 O; ?( T
17666730200000a26.jpg 1 f) u* a: o0 l$ {% L; h5 L; S
! e+ o, i' T! S7 W9 ~5 H
# b. d+ E1 A9 v
CSV自定义常量 命令:SDLOADCONLIST* V. K1 x1 G4 o7 F4 `; v
+ ?; {2 [" M$ w& q1 ]% E
参数位置 参数说明
1 ]7 c/ s3 M$ M3 V2 ~& W& i* ~3 p参数1 文件路径7 R6 I- ~4 b% j; P* Q
参数2 所填列数为查找列数 ABCD….. 留空默认“A”5 g1 c$ p8 K- J
参数3 所填行数为查找列数 1234….. 留空默认“1”
! {9 D9 o5 T0 c) b( P
$ ?( |7 ]' v% J* _8 O注意1:SDLOADCONLIST二次或多次调用则会重新刷新常量内容,建议固定内容放QM启动时调用一次!+ x  D- B$ E# m1 W1 w! h6 Q# s
注意2:特别重要的,文件名称不能重复!!!不用路径的文件名称也不能重复!!!8 Q) H- S/ i; @  g6 h8 ?6 e5 @
3 s$ h2 ?0 W/ U  P. p( `: ^
举例说明:
& m" v7 F" x/ ?, i% i& L- H) ^9 ?0 N+ H3 _
[@载入常量文件]
! g5 m$ g) N  H: o+ H#act8 x  C+ z# a7 {' N, L( x5 q9 t
LOADCONLIST .\测试.csv A 1  u2 e6 I5 i8 k0 V% c# m# c) H% H
sendmsg 7 载入工作表3
- k( e$ @5 R; j- i6 y& ]  pbreak
% U6 v( g( V7 K2 t;以A列数为查找 行数1为查找5 Z! M8 D) R  Z0 y8 o$ K
[@显示常量文件]& x. w. n/ j3 x+ M# S. C
#act
" l# o2 d  r! N8 @;获取张三的年龄 此时 变量应为
- @( T, G  T1 P8 I% H; q, e$ T* s: l5 d张三年龄=<$CL_测试(张三.年龄)>
3 d, j1 M9 h+ L; x2 F;输出为张三年龄=18
. S" ^' k$ H7 {! Q' B) Z1 A4 K$ Y7 N% t/ X
;获取李四的体重 此时 变量应为
; [5 U4 G0 z( A  o李四体重=<$CL_测试(李四.体重)>- S' G! B( K! |
;输出为 李四体重=121
/ T$ H* x* W* q- ?/ K) e3 ?& y$ _8 @* d) Y+ j- Y5 W
csv脚本说明1 {4 z6 @. W$ h6 b
路径说明: T+ W4 q6 p/ b2 G3 T3 F# Q& s
.\这是当前目录
" v& L- R! w0 l$ m' M  K9 R..\这是上级目录& f6 w/ {! a) o& m1 }$ g
  ..\..\这是MIR200目录' z1 L- s! _9 {  J$ x# i- W
 ..\..\..\这是版本目录
9 |' `* O( W5 p2 W0 u  ..\..\..\..\这是盘符根目录
, g( e& q! J7 {& P注:支持相对路径 ..\..\..\..\ 和 绝对路径 D:\KEY.ini
: ?2 P2 N6 T! }- D  l普通CSV(对版本内CSV文本文件操作)
9 h, E' n" e/ V# m& C# `命令:SDRWCSV 参数1 参数2 参数3 参数4* }  Q) n( a) K( \( \, @

& p2 w1 b2 s0 l参数位置 参数说明: F" n% G. M# G' x, D( r
参数1 文件路径+ ^3 O" E2 ]& l7 t
参数2 0=读 1=写 2=取CSV参数(行数,列数)
  G3 g  y+ q6 G/ {7 k/ Z参数3 参数2为0和1时 此参数为行数 当参数2为2时此参数为行数记录保存的变量' L: ?; D1 B3 g9 S
参数4 参数2为0和1时 此参数为列数 当参数2为2时此参数为列数记录保存的变量
0 `* Y1 r) p5 |. u7 J0 R" m: ]参数5 参数2为0时 此参数为记录保存的变量 参数2为1时此参数为需要写入的数值 参数2为2时此参数无需填写7 D) W% t6 N! O# }
% ~$ [0 c$ d7 b: J7 b3 ?0 L
注意:根据自己的脚本去选择要使用的变量
2 ^9 Q  v8 w7 E# o+ K
1 Q) _2 A8 m/ N, q- v读:! I9 B4 x6 R; J7 v% V7 r' I0 N
SDRWCSV .\测试.CSV 0 1 2 S0
! ?' ^5 P) Y8 ?$ q0 D3 |读取CSV 第1行 第2列数据到S0
- b8 t7 Y: Q; k  o/ v7 Q
8 V  ~! D6 R* d$ M. V0 Q7 y. K, {写:
" w6 p0 {3 f: n2 Y5 z1 y& mSDRWCSV .\测试.CSV 1 1 2 变量
" T9 i: y7 \$ a- S4 i将”内容”写到CSV第1行 第2列" h& z3 _5 S. k4 a

1 s, r6 b- T+ M; B, D取:1 r, ?8 f$ g9 e( o# }5 P1 l/ J$ a
SDRWCSV .\测试.CSV 2 N0 N1
+ |3 P2 b0 h+ f" ], d- o5 ^, _: n0 Y取出CSV行数保存到N0,取出CSV列数保存到N13 g- f4 B5 G% _" c; h4 p
8 c/ t' M! n/ }& ^" }  K3 e
高速缓存CSV(将文本文件缓存到M2内存上面)
. D# O3 `$ Z. W7 _- W' f7 T命令:SDCACHELOADCSV 参数1 参数26 C) R4 u+ A" ^0 j0 z" g

! ~  [& h* Z4 x* L' c参数位置 参数说明
  d. P& n" C2 l) P# @参数1 文件路径0 ?' q. }* M6 Z: E' j4 R
参数2 0载入,存在则覆盖 1存在则不重复载入& N" \" u* i: a5 Y

" B6 M8 H9 D3 W3 K注:使用高速缓存CSV必须先调用此命令载入,此命令建议放在引擎启动时用于初始化。$ }9 Y) V2 d" p' Z- i4 K) {" e
#act
# ^* Y. H+ I: ]; X& p2 z# ^SDCACHELOADCSV D:\MirServer\Mir200\Envir\Market_Def\测试.csv 00 L* b6 H4 E5 \6 @" B( [
2 E# _0 E' c& \" B
命令:SDCACHERWCSV 对高速缓存CSV文件操作: O8 ~" ~+ M" l/ A1 P- p8 n/ z6 h
参数位置 参数说明
$ [4 U! J  @, c/ [, K3 X2 c. M) @& S, z! D参数1 文件路径
  ^2 T  Y% V  R! b; H% D参数2 -1保存 0读 1写 2取CSV
; x0 ~# e. u' P! C参数3 列,正找关键行5 Q  g, E, b! {5 y* l# i/ d2 g/ L: o
参数4 列,倒找关键行, m4 _+ C3 x! k2 B$ e; H" X

9 U- v6 l4 m5 G5 p" Y保存:9 i- z+ q1 N* d" Z2 r
SDCACHERWCSV .\测试.CSV -1 .\测试2.CSV
2 V+ M; M7 }7 ?' ~/ L+ F4 a将高速缓存CSV保存到新的测试2.CSV,若.\测试2.CSV不填写则覆盖原文件
  Y  S3 L* u/ {+ s
+ G7 S! g! E" o, c- K读:
! U  b* S* r; U$ b7 v3 a' NSDCACHERWCSV .\111.CSV 0 1 2 S0
& F0 m7 Z% g/ {" g读取CSV 第1行 第2列数据到S0
4 z& j1 r2 R4 [) h- V& g! q) E7 `% ?- h" S
写:
7 t% b2 ]+ d2 K( l  W( ]SDCACHERWCSV .\111.CSV 1 1 2 内容
) b& w+ |2 X$ t' q将"内容"写到CSV第1行 第2列
' q% ~$ w' T' i/ ^) t# y; l缓存CSV写入不影响原文件,需要改变原文件请使用保存参数- n& o) x, x/ T4 P1 D& c
7 m* M5 A- H) [. \
取:
! L2 T* U# b+ |- Y; j( z4 ~SDCACHERWCSV .\111.CSV 2 N0 N1% V( v( F% x2 ]) K/ w
取出CSV行数保存到N0,取出CSV列数保存到N18 [1 p- H$ Q, n5 n
7 u7 t% z/ D3 b: h" [; `
列找关键字所在行,从首部开始找:
& o8 Y. T/ e! @- MSDCACHERWCSV .\111.CSV 3 2 内容8 i; t9 _' ]& K- i8 o: l
首部开始找出第2列关键字“内容”所在行
. Q0 U! K7 X; Z: @0 [* a; V; U" a( k! |5 M
列找关键字所在行,从尾部开始找:! M7 O: `# `( W6 R, y7 j. x$ d
SDCACHERWCSV .\111.CSV 4 2 内容
. X7 u0 L! ^; s4 ~6 J从尾部开始找出第2列关键字“内容”所在行/ j- S" m) X9 q: Q

2 b: s. [- ?$ |常量命令:(仅支持高速缓存CSV)
( E# P- h6 O- g( J, q1 n8 K0 B<$CSV_111(0,1,2)>
% |3 z- ?+ X8 [& \3 e; i结构:$CSV_    111为CSV文件名不需要后缀   (0,1,2) 0=读 1=行 2=列8 P  r& @  A. @" f) @
解释:读缓存111.CSV第1行第2列内容
- q/ m* b1 Q; z# M0 Q
2 T8 P  Z3 x$ i5 I5 V* f<$CSV_111(1)>/ H, P1 a. H+ d* ^$ M, j: |
结构:$CSV_    111为CSV文件名不需要后缀   (1) 取行数
0 P; p( u* ?% Y' n0 T0 S) r+ [解释:取缓存111.CSV总共有多少行7 z* @' w. K; v

0 N- {  l$ v  Q<$CSV_111(2)>* D* o, \/ X% `2 K; d/ v! c
结构:$CSV_    111为CSV文件名不需要后缀   (2) 取列数
+ X) k- n& y, V% }! s" V( L2 }解释:取缓存111.CSV总共有多少列& J( |9 \/ w( C4 U+ h) X

4 \  B8 ~- x' S; B9 D" ~( [4 [<$CSV_111(3,2,内容)>! K6 L* s! k" u
结构:$CSV_    111为CSV文件名不需要后缀   (3,2,内容) 列找关键字所在行,从首部开始找
) S4 N8 b2 \' u4 L5 H1 A5 E解释:缓存111.CSV从首部开始找出第2列关键字“内容”所在行
& f2 v* b; \" \# N2 @) _4 w6 P1 m$ H8 ?
<$CSV_111(4,2,内容)>
& c" N" T1 q5 A- Q+ t结构:$CSV_    111为CSV文件名不需要后缀   (4,2,内容) 列找关键字所在行,从首部开始找- v( K$ [4 O4 n! O/ V: N
解释:缓存111.CSV从尾部开始找出第2列关键字“内容”所在行
# z. B; ~/ X$ D" P6 h, X9 V: S
站长承接传奇一切业务,小问题免费咨询。站长QQ137919001
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-12 13:25 , Processed in 皖公网安备:34112402000394号 0.246247 second(s), 26 queries .