【VB】如何将文件读入自定义数组中?
一个数组有多个不同类型的元素变量。如下:
type studtype
name as string*5
sex as string*1
age as integer
...
end type
dim stud() as studtype
文件是将不同变量值用“,”分开,不同的数组值在不同行。如下:
×××,男,20
×××,女,19
...
我写的是
open "D:\学生.txt" for random as #1
for i =1 to 6
get #1,1,stud(i)
next i
close #1
提示我,变量使用了一个VB不支持的自动化类型
怎么弄呀!
get #1,1,stud(i)è¿æ ·ä¸è¡çã
ä½ åºè¯¥æ ÃÃÃ,ç·,20 åå«æååºæ¥åå«èµå¼ã
stud(i).name=xxx
stud(i).sex="ç·"
stud(i).age=20
æä½ ç代ç åçï¼åªç»ä½ ä¿®æ¹stud(i),åææ¯ä½ å ¶ä»ä»£ç æ£ç¡®ï¼æä½ è¯´çæ¹äºï¼è¿æ¯æ示æåé使ç¨äºä¸ä¸ªä¸æ¯æçèªå¨åç±»åï¼æ¯ä¸æ¯åæ使ç¨çæ¯ç²¾ç®çæå ³
读åéæºæ件ä¸éè¦ç¨split()å§
追çsplit ä¸æ¯éæºï¼æ¯åå²ä½ 读åºæ¥çæ°æ®ã
ä½ è¯»åºæ¥çæ ¼å¼ÃÃÃ,ç·,20ï¼split(abc,",")å°±æ¯ä»¥,åå²ææ°ç»ï¼ç¶åå次èµå¼ã
è³äºå ¶ä»é误ï¼éè¦ä½ æä¾å®æ´ä»£ç æè½ç¥éå ·ä½åªéçé®é¢ã
追é®ç¨splitåé¢ä¸åºè¯¥ç¨line input #1,abcä¹ï¼
追çç»ä½ çä¸ä¸æè·¯å§ï¼
1ãline input #1,abcï¼æ¯ætxt读ååºæ¥çæ°æ®èµå¼ç»abcï¼ä½ æ¯ç´æ¥èµå¼ç»stud(i)ï¼stud(i)ä¸è½è¿ä¹èµå¼ï¼å ·ä½çä¸é¢ã
2ã读ååºæ¥çabcçæ ¼å¼æ¯ä»ä¹ï¼æ¯è¿æ ·çï¼ÃÃÃ,ç·,20
3ãå¦ä½æè½æååºéé¢çå§åxxxï¼æ§å«ç·ï¼å¹´é¾20å¢ï¼è¿å°±éè¦ç¨å°splitåå²å½æ°ã
zz= split(abc,",") å°±æ¯ä»¥éå·åå²abcï¼åå²æ3åï¼
stud(i).name=zz(0) 'zz(0)æ¯åå²åºæ¥ç第ä¸åï¼å°±æ¯xxxå§å
stud(i).sex=zz(1) 'zz(1)第äºåæ§å«
stud(i).age=val(zz(2))'zz(2)第ä¸åå¹´é¾ï¼valæ¯æåæ°åï¼å 为年é¾æ¯æ°åï¼ææç¨äºä¸ªval
4ãä¸é¢è§£éå®äºãä½ çæ°ç»å®ä¹ä¹æé®é¢çã
for i =1 to 6
redim preserve stud(i) '======æ°å¢ä»£ç ï¼éæ°å®ä¹ä¸ä¸æ°ç»
zz=split(abc,",")
stud(i).name=zz(0)
stud(i).sex=zz(1)
stud(i).age=val(zz(2))
next i
5ãåæå ¶ä»é®é¢ï¼éè¦ä½ è´´åºä½ çå ¨é¨ä»£ç æè½ç¥éæ¯ä»ä¹é®é¢