0320 OPEN(14)VIN04 0330 REM" PAINT SCREEN" 0340 LET N3 $ = FNZ $(N1 $)+ QUOT; - 会员系统 0350 LET Y $ = FNF $(FNE $(Z9 $)),Y = NUM(Y $(3,2)) - 6 0360如果Y< 1那么 LET Y $(1,2)= STR(NUM(Y $(1,2)) - 1:00 ),Y $(3,2)= STR(NUM(Y $(3,2))+ 6:0 0) ELSE LET Y $(3,2)= STR(Y:" 00") 0370打印 ''CS'','' SB '',@(36-INT(LEN(N3 $)/ 2),0),N3 $ '' BG '',@(0,1),B2 $ '' EG '', '' SF '' 0380 PRINT''SB'',@(0,2)," NUMBER",@(15,2)," LAST NAME",@(50 ,2),INVOICE #,@( 0,3),评论,@(65,3),LAST TIME",@(53,5)," HARDWARE",@(0,4)," NAME",@(35,4)," ; DL#",@(42,5)," VCR OWNER?",@(55,5)," MAILING?",@(6 6,5),TYPE,@(0,5),ADDRESS,@(0,6),ADDRESS,@(42,6),JOINED, @(58,6),LAST ACTIVITY,@(0,7), ZIP,@(18,7),CARRIER ROUTE,@( 42,7),MTD,@(51, 7),YTD,@(61,7),HOLD,@(0,8),P HONE HM,@(24 ,8),WK,@(42,8),#LT,@(50,8),#FREE,@(60,8),#M P ;,@(0,10),T OT $$,@(16,10),IG,@(25, 10),IM,@(34,10),IU,@(43,10),IV, @(52,10),IX ;,@(62,10),UNPAID FEE,''BG'',@(0,9),B2 $,@(0,11),B2 $ ,''EG'',''SF'' 0390 REM< IOLISTS" 0400 IOLIST ''LD'',''LD'',''LD'',''LD'',''LD'',''LD'',''LD'', ''LD'',''LD'',''LD'',''LD'',''LD'',''L D'',''LD'' 0410 REM额外设置 0420 LET M5 $ =& ## 0",M6 $ =" ####。00-",M7 $ =" ###。00-" 0430 READ(6,KEY = DUEDATE)D1 $; LET D4 $ = D1 $,D2 $ = D1 $ 0440 READ(6,KEY =" STORENUM",DOM = 00441)R8 0450 DIM Z5 $(36); READ(6,KEY =" DZIP",DOM = 00451)Z5 $(1,9) 0460 READ(6,KEY =" DACODE",DOM = 00461)Z5 $(10,3) 0470 READ(6,KEY =" DAADDR", DOM = 00471)Z5 $(13,24) 0480 LET D5 $ = S $(1,6); READ(6,KEY =" HANDOUT" ,DOM = 00490)D5 $,D6 $ 0490 REMSOLICIT会员编号 0500 IF E1 $<> ""那么 LET E0 $ = E1 $(1,3); IF E1 $(1,3)<> S $(1,3)那么 GOTO 00520 0510 GOSUB 02430; IF E0 $ =""那么 GOTO 00010 0520 PRINT @(7,2),B1 $(1,6); IF E1 $<>""那么 PRINT @(7,2),''SB'',E1 $(4,6),''SF'' 0530 DIM M0 $(250 ),M(16); LET M0 $(222,1)= STR(R8:0),M0 $(147,6)= FNE $(Z9 $) 0540 LET G $ =" **",M0 $(210,3)= E0 $(1,3) 0550 PRINT @(0,23), " F1 = ID NUMBER",@(0,22)," ENTER MEMBER#,CR = LAST NAME, F2 =电话搜索,F3 =下一个新客户#,F4 = END",; INPUT(0,ERR = 00550)@(7,2),Q $,@(0,23),''CL'',@(0,22) ,''CL'', 0560如果CTL = 1那么 GOTO 01240 0570如果CTL = 2那么 GOTO 01360 0580 LET X = NUM(Q $,ERR = 00590); 如果LEN(Q $)= 7或LEN( Q $)= 10那么 LET G $ = Q $; GOTO 01370 0590如果Q $ =" T"那么 READ(6,KEY =" TEMPNUM",DOM = 00600)P5; LET P5 = P5 + 1,Q1 $ = STR(P5:" T00000); READ(1,KEY = Q1 $,DOM = 00690); WRITE(6,KEY =" TEMPNUM")P5; GOTO 00590 0600 IF Q $ =" END"或者CTL = 4那么 GOTO 09110 0610如果CTL = 3那么 READ(6,KEY =" NXTCUS",DOM = 00620)P5; LET P5 = P5 + 1,Q $ = STR(P5:##### 0"; WRITE(6,KEY =" NXTCUS")P5; READ(1,KEY = Q $,DOM = 00680); GOTO 00610 0620 IF Q $ = QUOT;" AND E1 $<>""那么 LET Q $ = E1 $(4,6); GOTO 00710 0630如果Q $ =""那么 PRINT @(7,2),S $(1,6); GOTO 01070 0640 FOR I = 1到LEN(Q $) 0650 IF POS(Q $(I,1)<"!")<> 0 OR POS(Q $(I,1) >" z")<> 0那么 EXITTO 00540 0660下一个我 0670如果LEN( Q $)> 6那么 GOTO 00550 0680 LET Q $ = S $(1,6-LEN(Q $))+ Q $ 0690如果Q $ =T那么 LET Q $ = Q1 $ 0700 PRINT @(7,2),Q $ 0710 LET M0 $(1,6 )= Q $ 0720 READ(1,KEY = M0 $(1,6),DOM = 01490)IOL = 00200 0730 GOSUB 00740; GOTO 00850 0740如果M0 $(238,1)=" "那么 LET X7 $ = S $(1,7) ELSE LET X7 $ =" * NOF *" ;; 关闭(7); OPEN(7)" MEMTY"; READ(7,KEY = M0 $(238,1) ,DOM = 00750)X7 $; LET X7 $ = X7 $(2) 0750 LET X7 $ = X7 $ + S $(1,10) 0760如果M0 $(153,1)=" "那么 LET X8 $ = S $(1,11) ELSE LET X8 $ =" NOT ON FILE"; CLOSE(7); OPEN(7)" VSYH"; READ(7,KEY = M0 $(153,1), DOM = 00770)X8 $; LET X8 $ = X8 $(2) 0770 LET X5 $ = S $(1,14); 如果M0 $(112,10)<> S $(1,10)那么 LET X5 $ = FND $(M0 $(112,10)) 0780 LET X6 $ = S $(1,14); 如果M0 $(122,10)<> S $(1,10)那么 LET X6 $ = FND $(M0 $(122,10)) 0790如果M0 $(215,6)= S $(1,6)那么 LET X3 $ =" NONE" ELSE LET X3 $ = FNA $(M0 $(215,6)) 解决方案 (80," - "),B1 (80," _"),B2 (80,"<"),S (Hope I''m posting this correctly, otherwise - sorry!, don''t know what elseto do)I wrote a set of programs "many" years ago, running in a type of basic,called "Thoroughbred Basic", a type of business basic. I need to re-writeit, bring it kicking and screaming to run on Windows XP. This is for avideo rental place, tracks movie and game rentals, customers, employeetransactions, reservations, does reports,..... and on.I know some of Visual Basic - I now write VB scripts for work. Can anyonehelp with suggestions, as to converting this to a new language? What may beeasiest for me? And, what type of database engine would be best? SQL,Access, flat files, I don''t know enough.This does NOT run under Windows, Linux, or any "new" OS - but I can exportall the files, and programs to DOS. They currently are running on 20-30 286or 386 computers - not a misprint - OLD! Not networked, not neccessary.The data files it uses are called "Direct" and "Sort". I have about 90programs, a few are overlays, most are stand-alone, 25-30 are just forreporting purposes. It can stay character based - no need for fancy screensor pix. Here is a sample:0010 REM "RENTAL/MEMBERSHIP SYSTEM TOP HALF AND SUBMENU"0020 REM "PROGRAM VID-AA"0030 REM 06/07/990050 BEGIN0060 PRECISION 20070 SETERR 090000080 DIM B$(80,"-"),B1$(80,"_"),B2$(80,"<"),S$(80," ");IF FID(0)="T0" THENDIM B2$(80,CHR(205))0090 DEF FNA$(X$)=X$(1,2)+"/"+X$(3,2)+"/"+X$(5,2)0100 DEF FNC$(X$)=X$(3,2)+"/"+X$(5,2)+"/"+X$(1,2)0110 DEF FND$(X$)="("+X$(1,3)+") "+X$(4,3)+"-"+X$(7,4)0120 DEF FNE$(X$)=X$(1,2)+X$(4,2)+X$(7,2)0130 DEF FNF$(X$)=X$(5,2)+X$(1,4)0140 DEF FNZ$(X$)=X$(1,POS(" "=X$+" ")-1)0150 OPEN (6) "CONTRO"0160 READ (6,KEY="001") *,N1$,*,A0$,A1$,A2$0170 READ (6,KEY="TODAY") Z9$,Z8$0180 LET E1$="";READ (6,KEY="RENT"+FID(0),DOM=00200) E1$,T0190 REMOVE (6,KEY="RENT"+FID(0)) ;IF T<>TIM THENLET E1$=""0200 IOLISTM0$(1,250),M(0),M(1),M(2),M(3),M(4),M(5),M(6),M(7) ,M(8),M(9),M(10),M(11),M(12),M(13),M(14),M(15),M(16) 0210 REM "OPEN FILES" 0220 OPEN (1) "VID01"0230 OPEN (2) "VIDST"0240 OPEN (3) "VIN01"0250 OPEN (4) "PHONEY"0260 OPEN (5) "VIV02"0270 OPEN (8) "IDSRT"0280 OPEN (9) "VIN02"0290 OPEN (10) "VIN03"0300 OPEN (11) "RSVST"0310 OPEN (12) "VINST"0320 OPEN (14) "VIN04" 0330 REM "PAINT SCREEN" 0340 LET N3$=FNZ$(N1$)+" - MEMBERSHIP SYSTEM"0350 LET Y$=FNF$(FNE$(Z9$)),Y=NUM(Y$(3,2))-60360 IF Y<1 THENLETY$(1,2)=STR(NUM(Y$(1,2))-1:"00"),Y$(3,2)=STR(NUM(Y$(3,2))+6:"00")ELSELET Y$(3,2)=STR(Y:"00")0370 PRINT''CS'',''SB'',@(36-INT(LEN(N3$)/2),0),N3$,''BG'',@(0,1),B2$,''EG'',''SF'' 0380 PRINT ''SB'',@(0,2),"NUMBER",@(15,2),"LAST NAME",@(50,2),"INVOICE#",@(0,3),"COMMENTS",@(65,3),"LASTTIME",@(56,4),"HARDWARE",@(0,4),"NAME",@(35,4),"DL#",@(42,5),"VCROWNER?",@(55,5),"MAILING?",@(66,5),"TYPE",@(0,5),"ADDRESS",@(0,6),"ADDRESS",@(42 ,6),"JOINED",@(58,6),"LAST ACTIVITY",@(0,7),"ZIP",@(18,7),"CARRIERROUTE",@(42,7),"MTD",@(51,7),"YTD",@(61,7),"HOLD",@(0,8),"P HONEHM",@(24,8),"WK",@(42,8),"#LT",@(50,8),"#FREE",@(60,8),"#M P",@(0,10),"TOT$$",@(16,10),"IG",@(25,10),"IM",@(34,10),"IU",@(43 ,10),"IV",@(52,10),"IX",@(62,10),"UNPAIDFEE",''BG'',@(0,9),B2$,@(0,11),B2$,''EG'',''SF'' 0390 REM "IOLISTS" 0400 IOLIST''LD'',''LD'',''LD'',''LD'',''LD'',''LD'',''LD'',''LD'',''LD'',''LD'', ''LD'',''LD'',''LD'',''LD'' 0410 REM "EXTRA SETUP" 0420 LET M5$="##0",M6$="####.00-",M7$="###.00-"0430 READ (6,KEY="DUEDATE") D1$;LET D4$=D1$,D2$=D1$0440 READ (6,KEY="STORENUM",DOM=00441) R80450 DIM Z5$(36);READ (6,KEY="DZIP",DOM=00451) Z5$(1,9)0460 READ (6,KEY="DACODE",DOM=00461) Z5$(10,3)0470 READ (6,KEY="DAADDR",DOM=00471) Z5$(13,24)0480 LET D5$=S$(1,6);READ (6,KEY="HANDOUT",DOM=00490) D5$,D6$ 0490 REM "SOLICIT MEMBER NUMBER" 0500 IF E1$<>"" THENLET E0$=E1$(1,3);IF E1$(1,3)<>S$(1,3) THENGOTO 00520 0510 GOSUB 02430;IF E0$="" THENGOTO 00010 0520 PRINT @(7,2),B1$(1,6);IF E1$<>"" THENPRINT @(7,2),''SB'',E1$(4,6),''SF''0530 DIM M0$(250),M(16);LET M0$(222,1)=STR(R8:"0"),M0$(147,6)=FNE$(Z9$)0540 LET G$="**",M0$(210,3)=E0$(1,3)0550 PRINT @(0,23),"F1=I.D. NUMBER",@(0,22),"ENTER MEMBER #, CR=LASTNAME,F2=PHONE SEARCH, F3=NEXT NEW CUSTOMER #, F4=END",;INPUT (0,ERR=00550) @(7,2),Q$,@(0,23),''CL'',@(0,22),''CL'',0560 IF CTL=1 THENGOTO 012400570 IF CTL=2 THENGOTO 01360 0580 LET X=NUM(Q$,ERR=00590);IF LEN(Q$)=7 OR LEN(Q$)=10 THENLET G$=Q$;GOTO 013700590 IF Q$="T" THENREAD (6,KEY="TEMPNUM",DOM=00600) P5;LET P5=P5+1,Q1$=STR(P5:"T00000");READ (1,KEY=Q1$,DOM=00690) ;WRITE (6,KEY="TEMPNUM") P5;GOTO 005900600 IF Q$="END" OR CTL=4 THENGOTO 091100610 IF CTL=3 THENREAD (6,KEY="NXTCUS",DOM=00620) P5;LET P5=P5+1,Q$=STR(P5:"#####0");WRITE (6,KEY="NXTCUS") P5;READ (1,KEY=Q$,DOM=00680) ;GOTO 006100620 IF Q$="" AND E1$<>"" THENLET Q$=E1$(4,6);GOTO 007100630 IF Q$="" THENPRINT @(7,2),S$(1,6);GOTO 01070 0640 FOR I=1 TO LEN(Q$)0650 IF POS(Q$(I,1)<"!")<>0 OR POS(Q$(I,1)>"z")<>0 THENEXITTO 00540 0660 NEXT I0670 IF LEN(Q$)>6 THENGOTO 00550 0680 LET Q$=S$(1,6-LEN(Q$))+Q$0690 IF Q$="T" THENLET Q$=Q1$0700 PRINT @(7,2),Q$0710 LET M0$(1,6)=Q$0720 READ (1,KEY=M0$(1,6),DOM=01490) IOL=002000730 GOSUB 00740;GOTO 008500740 IF M0$(238,1)=" " THENLET X7$=S$(1,7)ELSELET X7$="*NOF*";CLOSE (7) ;OPEN (7) "MEMTY";READ (7,KEY=M0$(238,1),DOM=00750) X7$;LET X7$=X7$(2)0750 LET X7$=X7$+S$(1,10)0760 IF M0$(153,1)=" " THENLET X8$=S$(1,11)ELSELET X8$="NOT ON FILE";CLOSE (7) ;OPEN (7) "VSYH";READ (7,KEY=M0$(153,1),DOM=00770) X8$;LET X8$=X8$(2)0770 LET X5$=S$(1,14);IF M0$(112,10)<>S$(1,10) THENLET X5$=FND$(M0$(112,10))0780 LET X6$=S$(1,14);IF M0$(122,10)<>S$(1,10) THENLET X6$=FND$(M0$(122,10))0790 IF M0$(215,6)=S$(1,6) THENLET X3$="NONE"ELSELET X3$=FNA$(M0$(215,6)) 解决方案 (80,"-"),B1(80,"_"),B2(80,"<"),S 这篇关于从古代BASIC转换为新数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 10-30 15:18