CBI Architecture Decision Basic ArchiveNum.01

CBI Architecture Decision Basic Archive Num.02

Discuttion2018CBI

GDI Architecture Decision Basic Archive 2018

Discuttion2018GDI

Communication Architecture Desicision Basic Archive Num.01

BASIC DISCUSSION ARCHITECTURE : CHARACTER BASE INTERFACE NUM.1 BY.DAI FUKUOKA

BASIC DISCUSSION ARCHITECTURE : GRAPHIC DEVICE INTERFACE 2018 JUN.7 AUTHOR BY.DAI FUKUOKA


現在の閲覧者数:


キャラクターベースインターフェイスその1
BASIC アーカイブ ディスカッション

解説
index.html
戻る↑



4 Season Stock
**************************
100 REM ---------------------
110 REM Program by Dai Fukuoka 2016.08.01-08.05
120 REM (C)電脳組
130 REM --------------------- 140 CONSOLE 0,25,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,0,1:CLS 3
150 DIM SUM(99):DIM AGREE(20)
160 *START
170 *Q1 PRINT "What many Mounth at Start Incoming"
180 PRINT "何月から収入の始めですか:";:INPUT "",MOUNTH
190 IF MOUNTH>0 AND MOUNTH<13 THEN ELSE *Q1
200 *Q2 PRINT "Is Society Insurance Contract EXPONENT for much"
210 PRINT "社会保険の契約指数はいくつですか:";:INPUT "",SI
220 IF SI>-1 AND SI<11 THEN ELSE *Q2
230 *Q3 PRINT "Is many at Stock Holder's Fine"
240 PRINT "証券罰金料の指数はいくつですか";:INPUT "",SHF
250 IF SHF=0 AND SI=0 THEN *Q2
260 IF SHF>-1 AND SHF<10000 THEN ELSE *Q2
270 *Q4 PRINT "Select is Money Rate for (0)Euro(1)Yen(2)UsaDoll"
280 PRINT "通貨のレーティングを選択してください(0)Euro(1)Yen(2)UsaDoll";:INPUT "",RATE
290 IF RATE=0 THEN RATING=180 ELSE IF RATE=1 THEN RATING=1 ELSE IF RATE=2 THEN RATING=133 ELSE *Q4
300 *Q5 PRINT "What is Incoming for Payed Type Account(0)Cooprate Tax and Allotment Plus(1)Cooprate Tax Only(2)Allotment Only(3)Full Income"
310 PRINT "収入の支払形式は何ですか(0)法人税と配当(1)法人税のみ(2)配当金のみ(3)全部の収入";:INPUT "",PAY
320 IF PAY>-1 AND PAY<4 THEN ELSE *Q5
330 *Q6 PRINT "Is many EXPONENT of Stock Market Investment Payed Plan for Plan Total"
340 PRINT "合算は、支払い計画にて幾つの証券指数にしますか";:INPUT "",TOTAL
350 IF TOTAL<0 THEN TOTAL=ABS(TOTAL) ELSE IF TOTAL=0 THEN *Q6
360 *Q7 PRINT "Stock Market Holder do not Mine(0)Yes(1)No"
370 PRINT "自分が保有しない株ですか(0)はい(1)いいえ";:INPUT "",MINE
380 IF MINE=0 OR MINE=1 THEN ELSE *Q7
390 *Q8 PRINT "Is Year Range of Stock Market Holder for many (0)1Year(1)2Year(2)4Year"
400 PRINT "証券期間を幾つのためにしますか:";:INPUT "",SR
410 IF SR>-1 AND SR<3 THEN ELSE *Q8
420 AGREE(1)=MOUNTH:AGREE(2)=SI:AGREE(3)=SHF:AGREE(4)=RATE:AGREE(5)=PAY
430 AGREE(6)=TOTAL:AGREE(7)=MINE:AGREE(8)=SR
440 IF SR=0 THEN SR2=1 ELSE IF SR=1 THEN SR2=2 ELSE IF SR=2 THEN SR2=4
450 FOR T=1 TO SR2:FOR I=MOUNTH TO 12:COUNT=COUNT+1
460 INCOME1=SI*30000:INCOME2=SHF*30000:INCOME=INT(INCOME1+INCOME2)/RATING
470 IF PAY=0 THEN INCOME=INCOME/3 ELSE IF PAY=1 OR PAY=2 THEN INCOME=INCOME/3*2
480 SUM=INT(SUM+INCOME)
490 REM
500 SUM(I)=SUM
510 IF I=1 THEN PRINT "First Winter Season Count 1";SUM(I);INT(INCOME)
520 IF I=2 THEN PRINT "First Winter Season Count 2";SUM(I);INT(INCOME)
530 IF I=3 THEN PRINT "First Winter Season Count 3";SUM(I);INT(INCOME)
540 IF I=4 THEN PRINT "Splinter Season Count 1";SUM(I);INT(INCOME)
550 IF I=5 THEN PRINT "Splinter Season Count 2";SUM(I);INT(INCOME)
560 IF I=6 THEN PRINT "Splinter Season Count 3";SUM(I);INT(INCOME)
570 IF I=7 THEN PRINT "Summer Season Count 1";SUM(I);INT(INCOME)
580 IF I=8 THEN PRINT "Summer Season Count 2";SUM(I);INT(INCOME)
590 IF I=9 THEN PRINT "Summer Season Count 3";SUM(I);INT(INCOME)
600 IF I=10 THEN PRINT "Last Fall Season Count 1";SUM(I);INT(INCOME)
610 IF I=11 THEN PRINT "Last Fall Season Count 2";SUM(I);INT(INCOME)
620 IF I=12 THEN PRINT "Last Fall Season Count 3";SUM(I);INT(INCOME)
630 NEXT:MOUNTH=1:INPUT "",PASS:NEXT
640 IF INCOME1+INCOME2>TOTAL THEN PER=(INCOME1+INCOME2)*COUNT*100/(TOTAL*1000000)/RATING
650 IF INCOME1+INCOME2<TOTAL THEN PER=(INCOME1+INCOME2)*COUNT*100/(TOTAL*1000000)/RATING
660 PRINT "share of";PER:PRINT
700 GOTO *START

行番号100,110,120,130は、このプログラムが、福岡 大の製作したソフトである事が書かれています。また、開発環境を電脳組であると明記しています。
Command Line 100,110,120,130, This Program is Programming By Dai Fukuoka Maked with Development "Dennougumi" Coopration Limited Sign Signal .
行番号140は、配列変数の格納個数を”SUM”99個”AGREE”20個定義します。
Command Line 140 , Arrangement Valiable Container Kind of "SUM" 99 Unit and "AGREE" 20 Unit Formatted it .
行番号170と180は現在の月を入力します。年末決算までの収入を計算します。
Command Line 170,180 , User Must Just Now Mounth Typing After Incoming Close The Year Sales on Start Line Now .
行番号190は、意志表示の関数を実行します。0より大きく、13より小さい場合は何もしません、その代わり例外が起こった時に、ラベル”Q1”に戻りますから、1から12までしか、変数に格納できません。 Command Line 190 , This Function is Statement Execution 0 More Than 13 Less Than Case in Not Execute , Exception Case is Return Go to "Q1" Label .
行番号200と210は社会保険の指数を入力を必要とします。社会保険がない場合は投資売上を計算する事ができません。
Command Line 200,210, Society Insurance EXPONENT is Must Need Typing , IF Society Insurance Case Nothing is No Total .
行番号220は、−1より大きく11より小さい場合は何もしません、例外はラベル”Q2”に一段階戻ります。
Command Line 220 , Type Result -1 More Than and 11 Less Than Case is Nothing Else Exception Jump to "Q2" Label Back One Step Type Work .
行番号230と240は、証券罰金の金額を指数で入力します、株から投資の還元が出来ない、ファイナンシャルプランに対して付くファイナンシャルです。”SHF”変数に格納されます。 Command Line 230,240 , Stock Market Fine Must Type EXPONENT , No Capital Incoming Case is Financial Plan Use It , This In Puted Information is Variable "SHF" Conteiner In . 行番号250と260は、社会保険指数を入力した”SI"と、証券罰金の指数の”SHF”no両方が空で有れば、社会保険の質問の”Q2"ラベルに移動します。
Command Line 250,260 , Typed "SI" and "SHF" Variable with In Puted EXPONENT Society Insurance and Stock Market Fine , IF Case is Both Nothing Answer Question Label "Q2" Jump . 行番号270と280は、変数”RATE”に通貨換算値を入力します。
Command Line 270,280 , User Must Typing Variable "RATE" In put Money Exchange Rating Value .
行番号290は、前回の入力に0は、180分の1、1は等倍、2は、133分の1とユーロ、円、米ドルに対応します。実際のFXは、もっと日本の通貨が高い数値で取引されていますが、ストックマーケットはこの値です。
Command Line 290 , RearWard Typed Method Exchange Value Case "0" 180 Divide, Case "1" Equivalent ,Case "2" Divide 133 Support Change Value 3 Type ,Reality Fx A Mount Japan Yen Height Rating Exchange ,Else Exist Stock Market Standard Value .
行番号300と310は、収入方式を、支払責任を設定します。”0”法人税と配当金を社会保険、罰金に払う、給料は決済される(1)法人税のみ、投資責任を証券会社のみに任せる(2)配当金のみ、投資家責任を負う(3)全部の資本責任を自分で負う。
Command Line 300,310,Setting Incoming Type Payed Responsibility Type In put Valiable "PAY" Value of "(0) Cooperate Tax with Allotment Society Insurance and Fine , Payed Incoming ,(1) Only Cooperate Tax Pay Security with Stock Market (2) Only Allotment Responsibility Investor (3) All Incoming Responsibility" 行番号320は、変数”PAY”がー1より大きく、4より小さい場合に何もしません、その他の実在されるのは、ラベル”Q5”行番号300にある所に移動する。
Command Line 320 Valiable "PAY" More Than -1 Less Than 4 Case Nothing ,Else Exist Jump Label "Q5" Command Line 300 .
行番号330と340は、入力を必要とし、通り越すことができません、社会保険と、証券罰金の合算について聞いています。それを上回る場合は、株と解釈されます。
Command Line 330,340 , User Need Type with on No Skip , hear Society Insurance Addition Fine Total , Case Over is Addit Chapital Understand .
行番号350は、合算の結果が0より小さい場合、ABS関数で符号を反転します。
Command Line 350 , Result Case Valiable "TOTAL" Value Less Than "0" is Reverse Sign ABS Function .
行番号360と370は、署名について自分自身の管轄であるか、預かっているのかを聞きます。
Command Line 360,370 , This Since About User Proxy or My Found Else Undecided hear It , Valiable "MINE" Value Type In Put True (0) Did User No Have Use It , False (1) DId User Have Use It . 行番号380は、変数”MINE”が”0”か”1”であれば何もしません、その他の実在は、元の質問のラベル”Q7”に戻ります。
Command Line 380 , Valiable "MINE" Value is Case "0" or Case "1" Than Nothing ,Else Exist Return Answer Jump Label "Q7" .
行番号390と400は、証券を運用する年数を聞いています、変数”SR”に格納されます、(0)1年(1)2年(2)4年。
Command Line 390,400 , Practical Use Term Year Type Count Valiable "SR" In Put , Tarm is Next (0)1 Year Between (1) 2 Year Between (2) 4 Year Between .
行番号410は、−1より大きく3より小さい場合は何もしません、その他の実在はラベル”Q8"に戻ります。
Command Line 410 , More Than "-1" Less Than "3" Case Nathing , Else Exist Go to Label "Q8" .
行番号420と430は、配列”AGREE”に対して各変数を代入していきます。
Command Line 420,430 , Arrangement Valiable "AGREE" Target EquiValent Case "(1):Mounth", Case "(2):SI", Case "(3):SHF" , Case "(4):RATE" , Case "(5):PAY" , Case "(6):TOTAL" , Case "(7):MINE" , Case (8):SR" Input Many Value Equivalent . 行番号440は、”SR”を期間の年数に変換します。”SR2”に代入されます。
Command Line 440 , Valiable "SR" Change Tram "SR2" Min 1Year Max 4 Year Type In put Loop Count Valiable .
行番号450は、関数”FOR”は変数”T”に”1”の開始を定義して、変数”SR2”に終了します。、また、その間“FOR”関数は、変数”I”に対して開始月を変数”MOUNTH”から始まり、12月に統計を終了します。年が繰り越されたら、月は冬の”1月”にもどります。
Command Line 450 , Statement Function "FOR" is Valiable "T" in "1" to "SR2"(SR2 Tarm Season Monthly) and End of "SR2" , Through Also Between Statement Function "FOR" is Valiable "I" in Start Mounth with Valiable "Mounth" to December 31 Close Year ,Over Take Year is Start Mounth Change Junylary 1 Turn And Loop with "SR2" Year End Year with Season .
行番号460は収入変数”INCOME1”に社会保険料変数”SI”に30千に掛け算します。収入変数”INCOME2”には、証券罰金を30千で掛け算します、収入変数”INCOME”は、”INCOME1”と”INCOME2”を合算し通貨換算値で割ります。日本通貨を通常と想定しているので、日本円は、換算値で割りません。
Command Line 460, Receive Payed Valiable "INCOME1" in Society Insurance Valiable "SI" Method Multiply 30Thousand Resolution EXPONENT ,With Recieve Pauyed Valiable "INCOME2" in Stock Market Fine Method Multiply 30 Thousand With Method "INCOME1" Addition "INCOME2" Equivalent "INCOME" TOTAL Divition Contry Money Rating Exchange ,Japan Yen Money is Standard Accounting with Default .
行番号470は、条件関数にて変数”PAY1”が”0”の場合、”1”の場合、そして”2”の時、3で割り算するのか、3で割って10分の1を求めて2で掛け、20PerMoneyを計算します。雇用計画の二つになる。
Command Line 470, Derision Statement Function "IF" by 2 Type Brunch Case "0" by Method "INCOME" Division 3,Reduce 10 Per Money ,Case "1" by Method "INCOME" Division 3 with Multiply 2 of 20Per Incoming Money Payed Employee Plan 3 Type .
行番号480は、変数”SUM"に小数点を切り捨てる関数”INT”を使用して、”SUM”に対して”INCOME”を加算します。
Command Line 480, Valiable "SUM" into "SUM" Addition with "INCOME" and Filter Function "INT" Execute Matrix .
行番号500は、配列変数”SUM(Count)”に、SUMを等価にします。
Command Line 500, Arrangement Valiable "SUM()" with Now Count Equivalent Valiable "SUM" .
行番号520から620は、関数”IF”にて、現在の変数”I”を12段階で分岐し、冬から秋にかけて現在の”INCOME”と、”SUM(数)”を表示します。620番まで途中で加算する式はありません。行番号630は、12月ごと変数”Pass”にて、ユーザーの入力を待ちます。関数”NEXT”で、440行番号から、630の区間を繰り返します。 Command Line First 520 to Last 620, Statement Function "IF" by Now Valiable "I" is Case Count 12 Type to Show Display Valiable "SUM(I)" with Valiable Now "I" and Season List Wait User Typing Passager Valiable "Pass" ,Command Line 630 is Statement Function "NEXT" is 440 to 630 Section Looping Count and Count . 行番号640は、変数”TOTAL”(合算)が収入変数”INCOME1”と”INCOME2”より小さい場合、”PER”変数に、合算を格納します。
Command Line 640 ,Valiable "TOTAL" less than Valiable "INCOME1" Addition "INCOME2" Case Valiable "PER" In put Container Method "INCOME1" Addition with "INCOME2" Multiply Valiable "Count" Multiply 100 Division Valiable "TOTAL" Multiply 1Milion Division Valiable "RATING" . 行番号650は、変数”INCOME1”と変数”INCOME2”を加算した同じ値より、変数”TOTAL”が上回る場合、変数”PER”に対して”INCOME1”と”INCOME2”の合算を格納します。 Command Line 650 ,Valiable "INCOME1" Addition "INCOME2" Equivalent More Than Valiable "TOTAL" Case is Valiable Container "TOTAL" Method Valiable "INCOME1" Plus Valiable "INCOME" Total Valiable "TOTAL" . 行番号660は、占有率と変数”PER”を表示します。
Command Line 660 ,Share of Valiable "PER" to Show Display Counting .行番号700は、ラベル”START”に移動します。行番号160に移動します。
Command Line 700 ,Go to Label "START" and Command Line 160 Jump

*****************
deditor

100 REM --------------------
110 REM copyright Module by DaiFukuoka 2016.6.20-7.21
120 REM (c)電脳組
130 REM --------------------
140 CONSOLE 0,24,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,7,2:CLS 3
150 DIM CSV$(9999,11)
160 IF POINT(639,479)=POINT(639,399) THEN LINEMODE=-1:GOTO *L2 ELSE LINEMODE=1:GOTO *L1
170 *L1
180 LINE (0,0)-(639,18),4,BF:LINE(0,32)-(639,48),4,BF
190 LINE(0,96)-(639,112),5,BF:LINE(0,176)-(639,192),5,BF
200 LINE(0,256)-(639,272),6,BF:GOTO *O1
210 *L2
220 LINE (0,0)-(639,18),4,BF:LINE(0,36)-(639,54),4,BF
230 LINE(0,110)-(639,130),5,BF:LINE(0,187)-(639,204),5,BF
240 LINE(0,263)-(639,282),6,BF
250 *O1
260 LOCATE 0,0:PRINT "Load File Name : ";:INPUT "",LFN$:IF LFN$="" THEN *START
270 OPEN LFN$ AS 1:LEOF=EOF(1):CLOSE 1:IF LEOF=-1 THEN *MAKEFILE
280 OPEN LFN$ FOR INPUT AS #2:
290 FOR I=1 TO 9999:INPUT #2,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(1,4),CSV$(1,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(I,11):NEXT:CLOSE #2
300 LOCATE 0,0:PRINT SPC(78);:GOTO *START
310 OPEN LFN$ FOR OUTPUT AS #1
320 FOR I=1 TO 9999:WRITE #1,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(I,4),CSV$(I,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(1,11):NEXT:CLOSE #1
330 LOCATE 0,0:PRINT SPC(78);:GOTO *START
340 *START
350 LOCATE 0,0:PRINT SPC(78);
360 IF CSV$(PAGE,ARTICLE)="" THEN CSV$(PAGE,ARTICLE)=" "
370 IF CSV$(PAGE,1)="" THEN CSV$(PAGE,1)=" "
380 IF FLAG=0 THEN PAGE=1:LOCATE 0,0:PRINT "Tittle / Page :";:INPUT "",PAGE:LOCATE 0,1:PRINT CSV$(PAGE,1):LOCATE 0,2:PRINT "Article Preview :";:INPUT "",ARTICLE:LOCATE 0,3:PRINT CSV$(PAGE,ARTICLE)
390 IF FLAG=-1 THEN FLAG=0:LOCATE 0,0:PRINT "Tittle / Page :";PAGE;SPC(200);:LOCATE 0,1:PRINT CSV$(PAGE,1):LOCATE 0,2:PRINT "Article Preview :";ARTICLE;SPC(200);:LOCATE 0,3:PRINT CSV$(PAGE,ARTICLE)
400 LOCATE 0,6:PRINT "Edit Artice";ARTICLE;" Page";SPC(200);PAGE;:LOCATE 0,7:INPUT "",WROTE$
410 IF WROTE$="" OR WROTE$=" " THEN ELSE CSV$(PAGE,ARTICLE)=WROTE$
420 *LOOP1
430 LOCATE 0,10:PRINT "Select Article and Pages";
440 LOCATE 0,11:PRINT "0: NoMove , 1:Add+ , 2: Dec-";:INPUT "",REQUEST
450 IF REQUEST=0 THEN *ACCEPT
460 LOCATE 0,12:PRINT "0:[1]/1:[10]/2:[100]/3:[1000]";:INPUT "",MANY
470 *ACCEPT
480 LOCATE 0,13:PRINT "Okay? 0:Yes / 1:No ";:INPUT "",ACCEPT:IF ACCEPT=1 THEN *LOOP1
490 IF MANY=0 THEN COUNT=1
500 IF MANY=1 THEN COUNT=10
510 IF MANY=2 THEN COUNT=100
520 IF MANY=3 THEN COUNT=1000
530 IF COUNT+PAGE>9999 THEN *LOOP1
540 IF COUNT+PAGE<1 THEN *LOOP1
550 IF REQUEST=0 THEN PAGE=PAGE
560 IF REQUEST=1 THEN PAGE=PAGE+COUNT:FLAG=-1
570 IF REQUEST=2 THEN PAGE=PAGE-COUNT:FLAG=-1
580 LOCATE 0,14:PRINT "For Number of Article : (1-11) : ";:INPUT "",ARTICLE
590 IF ARTICLE<1 OR ARTICLE>11 THEN ARTICLE=1
600 LOCATE 0,15:PRINT "0:Saving Sequence 1:No Think : ";:INPUT "",FILESAVE
610 IF FILESAVE=1 THEN *START ELSE IF FILESAVE=0 GOTO *SFN
620 *SFN
630 LOCATE 0,16:PRINT "Save File Name : ";:INPUT "",SFN$
640 CLS:IF SFN$="" THEN *LOOP1
650 OPEN SFN$ AS 1:CLOSE 1:OPEN SFN$ FOR OUTPUT AS #1
660 FOR I=1 TO 9999:WRITE #1,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(1,4),CSV$(1,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(I,11):NEXT:CLOSE #1
670 GOTO *START
680 *IFEND GOTO *START:END IF:END



行番号100,110、120,130、これは、モジュールを作った著者の福岡 大は、控めな申請です。開発環境は、有限会社電脳組です。
Command Line 100,110,120,130 , This is Make Moduler Dai Fukuoka All Right Reserved(Copy right) and Platform Cooperation Limited Dennougumi .
行番号140は、文字の大きさと、スクリーン画面の設定と合わせて、色彩と、背景色です。
Command Line 140 , Setting is Screen Character size with Color mode and Background Color .
行番号150は、配列変数CSV形式の文字列を、1万回と、11段に分けた設定します。
Command Line 150 , Setting is CSV Type Data of Arrangement Strings Words with Count and 10Thousand withon 11 Category .
行番号160は、背景色が、640と、480数の位置と、640と400の数の位置の色情報を実際に採取して、それをIFステートメントで判定を分けます、480ラインと同じで有れば−1と*L2ラベル、400ラインで有れば、黒色が地点に返されて、+1のラインモードの変数に格納します。ラベル*L1に移動します。
Command Line 160 , Case and Case IF Decision Case Ture Screen Line Mode Max 480 , Less than case False Screen Line Mode Min 400 , Decision Large or Small , Program Must Standard Screen Setting and Execute Setting ForWard Label Large *L2 or Small *L1 withon Target Root in *O1 .
行番号170、180.190、200、図形機能Line関数を使って四角形を端から端まで描いて、画面を編集します、色覚を文字列に密接します。
Command Line 170,180,190,200 , Draw Rect Deep and Deep Screen Side , Edit Screen Color Background Color with Fit String Text .
行番号220,230,240、規格高さで整列した四角い領域を400ラインモードで描画します。
Command Line 220,230,240 , Arrangement Rect Square Angle of Standard Height 400 Line Screen Mode at Draw .
行番号260は、必要なければ、名前を指定する必要ありません、記録したファイル名データを読み込みます。
Command Line 260 , Recording Wrote CSV Sequenceal Load File Name , File Name is Need Less Appointment .
行番号270は、ファイルの終端をLEOF変数に判定を納めます、LFNが行番号260にて指定されたファイルを開きます。
Command Line 270 , RearWard One Step with Variable Value Decision Put in "LEOF" Variable Value , Appointment File Name "LFN" Open .
行番号280、290は、指定したファイル名を開き、書き込み設定で11列のCSVと、終端までの高さを定数9999行まで記録ファイルから読み取ります
Command Line 280,290 , Appointment File Name Open with Trough Writing 11 Count Arrangement withon 9999 Count Height Column Record File to Read and End of File .
行番号300、330は、文字列の在った0,0座標に78文字半角で空白を埋め、ラベル *Startへ飛び越します。
Command Line 300 , Skip out Label "Start" Jump with String Text Coordinate 0,0 Point Harf 78 Count Type Spacing .
病番号310、320は、キャッシュから書き込んで失った変数値を”OUTPUT”設定で書き込んだ情報から読み込みます。
Command Line 310,320 , Wrote Information at Cash Memory loss Variable Value After Read Setting "OUTPUT" Mode at Variable Full Fill a Hole Record .
行番号360、370は、CSV形式に空の情報に対して空白を詰めていきます。CSVの先頭配列と参照配列に空白を詰めます。
Reference Pick upping Empty Changing Space Fill a Hole and Top Word Change Space .
行番号380は、変数”FLAG”が0の結果の時、開始準備を設定し、”PAGE”変数が1から始まります。整数で使用者が入力する必要があります。
Command Line 380 , Decision Result Variable Value of 0 Count For Start up Setting Page Variable Start one Trough , User is Need Typing Information .
  行番号390は、変数値”FLAG”が-1の時"FLAG”をオフセット(0)にします。現在位置の変数値”PAGE”と、”ARTICLE”の値を表示したあと200文字空白で埋めます。1行目と3行目です、また空白を詰めたあと、現在位置の”CSV”形式の現在位置の内容を表示します。
Command Line 390 , Decision Result Variable "FLAG" Value if "-1" Case For Ward Set "0" off Set , String Text Clear Setting Space Mode , Show Display "CSV" onTime "Page" and "Article" Variable Value to Location 0 with 2 and Show String Text Contents .
行番号400は、7、8行目の6と7に、今編集中の”ARTICLE”と”PAGE”を表示し、変数値”WROTE”に格納します。空の場合は、1文字の空白が詰められます。
Command Line 400 , Column 7,8 Value 6,7 onTime Editing Text "ARTICLE" and "Page" Enter "CSV" Type Arrangement Variable , Show Display "Page" and "Article" Count .
行番号410は、入力で何も入力しなかった場合や空白が詰められている場合 なにもしなく、また他は”CSV”配列変数に対して文書を格納します。
Command Line 410 , This is Type Nothing Skip,User Must Typing , if No Nothing Case In Put Arrangement Variable Value Type Text Information .
行番号430、440、450、460、480は、”MANY”と、”REQUEST”を入力し、その案内を表示します。そのままエンターキーを押すとラベル”ACCEPT”に移動して回答を伺う、否定した場合に変数”ACCEPT”を”1”とする、普通にエンターキーを押して、数値が”0”で有れば、同意し次へ進みます。
Command Line 430,440,450,460,480 , User Type Page Change Program For Input of "MANY" , "REQUEST" After Sign In Next , Request Ask Type Method withon Addition or Decrease Type Result , Move Page is "1","10","100","1000" Plus Minous to Decision Value Pages,Accept Type Support Enter and Default Value to Skip Request Standard Settings .
行番号490,500,510,520は、変数"MANY”で入力した数値に対して表記結果を条件によって数値が変わります。
Command Line 490,500,510,520, Decision Variable "MANY" Value IF Case is Need Type And Result Method Column , Default Setting Value Skip "Enter" Accept Automation Result Type Value,Change Page Count it .
行番号530,540は項の数値が9999以下1以上になるように例外を除外します。
Command Line 530,540, This Function is Exist Variable Value of 10000 under with 0 Over,Other Run Back .
行番号550、560、570は、回答した項の増減を中立なのか、増えるのか、減るのか変数”PAGE”に対して先ほど入力した”MANY”から作られた”COUNT”を増減します。
Command Line 550,560,570, RearWard This Function Ask reQuest Page Count Warehouse Neutral or Addition or Decrease,This is Make Variable "MANY" to "COUNT" IF Case Neutral is NoFlag Else Other Decision is Flag "-1"
行番号580は、590、CSV規格に準拠し、256文字以内、12項目以下です。質問と答え、”ARTICLE”にCSVの項目値を入力します。正しくない値は除外されます。
Command Line 580, This Soft Ware Standard Basic/98 with MicroSoft N88Basic(86) with TYPE DATA CSV, This Function Information "ARTICLE" Type Input "ARTICLE" at Value And Arrangement, Request and Answer "CSV" Standard Type Variable Input Values, Exist No "256" Word Over with No "11" Arrangement Over .
行番号600は、書いた情報を今保存するのか、結構なのか回答を必要とします。任意のエンターキーでは通常は保存します。変数値”FILESAVE”に結果を保持します。
Command Line 600, Now Savings Information Wrote or No think Need Type Answer,User Type Result Nothing is Accept Wrote Planning Keep Result .
行番号610は、先程の説明に0と1以外の不正な値が格納されないように判定します。
Decision Bad Value Type Input "FILESAVE" Case Exist it , This Variable is Keep Container Data .
行番号630と640は、”SAVE FILE NAME”保存する名前を”SFN”変数に入力します。次の行で、”SFN”変数が空で有ればラベル”LOOP1”に移動します。”LOOP1”は、420行番号にあります。データを保持することにファイル名を入力しなければならないそれと、通り越し禁止に一緒に
Command Line 630,640 , Show Answer "SAVE FILE NAME" After Stand by Typing and ReName Variable Container "SFN" In Put Typing Information , IF Case Variable Value Nothing with Go to Label "Loop1" Jump Command Line 420 .Keep Data is Must Typing FileName withIn NoSkip .
行番号650と660は、変数”SFN"にあらかじめ空のファイルを#なしで作成しておき、後から作られたように、シーケンシャルファイル番号#1番にエクスポートの”OUTPUT"モードに変えます。また次の行でっは、ループ(繰り返し処理)を使って、実際に一行づつ9999回まで書き込みます、書きこまれる内容の全てが、”CSV”配列変数でなければなりません、Nextで折り返しForに戻り、抜けると#1のファイルを閉じます。
Command Line 650,660 , Starting by Empty Data File , Make "SFN" Variable New File Name For Write , Maked ForWard Sequence #1 Open Number Export "OutPut" Mode Change Open File Mode , This Function with Variable is Loop 1 to 9999 Count Jump Start on Count , This All Contents is Standard "CSV" Type Variable Arrangement , IF Loop out is Sequence Number #1 Close Open File with File Name Close .
行番号670は、初期化作業のみを除いた位置にラベル”START”に戻ります。行番号340にあります。
Command Line 670 , System Work is Full Setting Go to Jump Label "START" Return Locate on Command Line 340 .

*************
dissue

100 REM ---------------------
110 REM rating Program by Dai Fukuoka 2016.07.26-2016.07.29
120 REM (C)電脳組
130 REM ---------------------
140 CONSOLE 0,25,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,0,1:CLS 3
150 *START
160 PRINT "Property account Type Account Capital of Hieghest :"
170 INPUT "資産料(一番大きい株郡)を入力してください:",CAPITAL
180 PRINT "Audit Delay Dispit Issue Reduce 2 Account Member Count is :"
190 INPUT "監査会(猶予の回数人数)の審査の回数を乗算で求めます",DELAY
200 LET ISSUE=CAPITAL : LET COUNT=0
210 IF CAPITAL<1 THEN *START
220 FOR I=0 TO DELAY STEP 1
230 ISSUE=ISSUE*2:COUNT=COUNT+1
240 NEXT
250 PRINT ISSUE:
260 IF ISSUE>10000 THEN PRINT "万:man/d5-tenThousand"
270 IF ISSUE>100000000 THEN PRINT "億:oku/d9-oneHandletMilion"
280 IF ISSUE>1000000000000 THEN PRINT "兆:chou/d13-oneThousandBilion"
290 IF ISSUE>1D+017 THEN PRINT "京:kyou/d17-oneHandletTousandTrilion"
300 IF ISSUE>1D+021 THEN PRINT "亥:gai/d21-oneBilionTrilion"
310 IF ISSUE>1D+025 THEN PRINT "序:jo/d25-tenThousandBilionTrilion"
320 IF ISSUE>1D+029 THEN PRINT "襄:jou/d29-oneHandletMilionBilionTrilion"
330 IF ISSUE>1D+036 THEN PRINT "溝:kou/d36-TenHandletThousandMillionBilionTrilion"
340 IF ISSUE>1D+040 THEN PRINT "間:kan/d40"
350 IF ISSUE>1D+044 THEN PRINT "正:sei/d44"
360 IF ISSUE>1D+048 THEN PRINT "載:sai/d48"
370 IF ISSUE>1D+052 THEN PRINT "極:goku/d52"
380 IF ISSUE>1D+056 THEN PRINT "黄河沙:kougasya/d56"
390 IF ISSUE>1D+060 THEN PRINT "阿僧紙:asousi/d60"
400 IF ISSUE>1D+064 THEN PRINT "那由他:nayuta/d64"
410 IF ISSUE>1D+068 THEN PRINT "不可思議:fukasigi/d68"
420 IF ISSUE>1D+072 THEN PRINT "無量大数:muryoutaisuu/d72"
430 GOTO *START

行番号100,110,120,130は、キャプション"レーティングプログラム”に著者の名前、福岡 大と日付を記入しています、また、法人団体を、有限会社電脳組は、漢字で記載されています。
Command Line 100,110,120,130 , Cooperation Limited , Dennougumi Wrote "KANJI" Top Title with This Caption is Copyright Program by Dai Fukuoka and Sign Term First and Last and Between Development Day .
行番号140は、初期化関数を実行しています、しかし、スクリーンラインモードは、セットアッププログラムに分けられており、無視されます。スクリーンは、変更を加えることができません。
Command Line 140 , Setting Format Function Executive , Though But Screen Line Mode is No Addition Modify withon Use Setup Program .
行番号160,170は、2ヶ国語です、いまから漢数字をローマ字読みします。残り残高が最も大きいものが有効です。例えば、剰余金と、資本額を比較して剰余金の方が多きれば剰余金を用います。CAPITAL変数に等しい値を代入します。
Command Line 160,170 , Double Language , Now Starting "KAN SUJI" Show Change Roman , Compare More than Surplus or Capital , Equivalent Variable "CAPITAL" Type Value Count , Take Over Count IF Over Case is Surplus Issue Use It .
行番号180、190は、監査委員の定員を回答を入力します、一人につき、2倍に資産額は、発行され、監査員は、資本金を払わないで会計出来る資本空間を作ります。
Command Line 190,190 , Audit Member on Key Broad Type Ask and Answer Member Count , Property of Means 2 Multiply on One Member Example , This Example Member In Put Variable "DELAY" Type Count 2 Member is 4 Multiply Method Value , Audit Member is Self Account and Issue Space Use It .
行番号200は、新規変数”ISSUE”に”CAPITAL”から代入式を行います、”COUNT”は”0”にセットされます。
Command Line 200 , New Variable "Issue" Equivalent "capital" Method with "count" Equivalent "0" Settings .
行番号210の関数は、変数”CAPITAL”が1よりも下回る場合、ラベル”START”に戻ります。”START”は150行にあります。
Command Line 210 , This Function is 1 Less Than Case Turn Go To "Start" Label Jump in , More Than 1 Case Next Step . "Start" is Command Line 150 Location .
行番号220,230,240は、監査委員の数の回答を予め入力したので。それを使って、その人数の回数だけ、更に、予め回答を入力した、資産額を一人につき2にかけるのを繰り返します。
Command Line 220,230,240 , Just Advance Notice is Audit Member Count And Property of Means Count Step of Audit Count Loop with Decision Property of Means 2 Multiply Many Count on Audit Member Count , Loop Out Dcision is Over "DELAY" and Between Looping Less Than "DELAY" and Start Count of Zero After Plus and Plus .
行番号250は、演算の結果を表示します。
Command Line 250 , Result Show Process and Method "ISSUE" .
行番号260から420は、4カラムごとに、漢数字のローマ字が繰り上がります。
Command Line First 250 to Last 420 , 4column Every Match Carry Over ForWard "KAN" Mathematics Roman .
行番号430は、初期化が済んだラベル”START”に移動します。行番号150にあります。使用者は初めに戻れます。
Command Line 430 , Label is Formatted "START" Move to Label Looping , Command Line 150 Go on , User Can ReStart it Again .

dfxchange
**************
18:39 2018/01/16100 REM ---------------------
110 REM exchange rate Programming by Dai Fukuoka
120 REM (C)電脳組
130 REM ---------------------
140 CONSOLE 0,25,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,0,1:CLS 3
150 *START
160 INPUT "元利の単価−1:フラン、2:USAドル、3:オーストラリアドル、4:欧州ユーロ、5:人民元、6:円?: ",A
170 INPUT "幣替の単価−1:フラン、2:USAドル、3:オーストラリアドル、4:欧州ユーロ、5:人民元、6:円?:",B
180 IF A=1 THEN PRINT "元利の単価は、1フラン100円です":A2=100
190 IF A=2 THEN PRINT "元利の単価は、1米国ドル133円です":A2=133.3#
200 IF A=3 THEN PRINT "元利の単価は、1オーストラリアドル150円です":A2=150
210 IF A=4 THEN PRINT "元利の単価は、1ユーロは180円です":A2=180
220 IF A=5 THEN PRINT "元利の単価は、1人民元は200円です":A2=200
230 IF A=6 THEN PRINT "元利の単価は、1円です":A2=1
240 IF B=1 THEN PRINT "幣替の単価は、1フラン100円です":B2=100
250 IF B=2 THEN PRINT "幣替の単価は、1米国ドル133円です":B2=133.3#
260 IF B=3 THEN PRINT "幣替の単価は、1オーストラリアドル150円です":B2=150
270 IF B=4 THEN PRINT "幣替の単価は、1ユーロは180円です":B2=180
280 IF B=5 THEN PRINT "幣替の単価は、1人民元は200円です":B2=200
290 IF B=6 THEN PRINT "幣替の単価は、1円です":B2=1
300 IF A2<B2 THEN RESULT=1
310 IF B2<A2 THEN RESULT=2
320 C=(A2/B2):PRINT C,RESULT
330 INPUT "幣替する量を指定してください?",COST
340 COSTRESULT=C*COST
350 PRINT COSTRESULT
360 INPUT "手数料の割合を指定してください?",D
370 E=COSTRESULT/10*D
380 PRINT "幣替の手数料は";E;"です。"
390 PRINT "合算は";E+COSTRESULT;"です"
400 GOTO *START


行番号100から130まで、プログラムの名前と、著者の名前と、開発環境の作成法人の情報が記録されています。
Command Line 100 to 130,On Record in Information is Program Name and CopyRight User by Name(Dai Fukuoka) and PlatForm Cooperation (Dennogumi)
フラン、アメリカドル紙幣、オーストラリアドル紙幣、ヨーロッパユーロ連合共通貨幣、中国人民元を、相互に比較します。
Compare Cross Over 100\ France Fran, 133\ United States America Doll , 150\ Australia Doll , 180\ Europa United Euro , 200\ China Human People Gen.
行番号180 フランと、円の取引が書かれています、* A=パラメーターは、*Startラベルから始めた入力情報をもとにして数値を変換します。
Command Line 180, France Fran Exchange to Japan Yen Wrote 1:1 Cross Exchange,Parameter A From By *Start Labels,Input Foundation Information on Value Changes.
行番号190 USAドルと、日本円との取引が書かれています。* A=のパラメーターは、1ドルにつき133円をA2=パラメーターに設定します。
Command Line 190 , Setting Parameter A2 in Exchange Rate , USA Doll Exchange Japan Yen to Value is 133\ to 1 Doll .
行番号200〜290 その他の貨幣と別の貨幣の取引価格が書かれています、日本円を表示していて、日本国外と、日本国外とも取引可能です。式は合算=A2÷B2(どちらも円で価格を掲示し、比率が分かるようにしています。
Command Line 200 to 290 , Input on A2 Parameter and B2 Parameter with Each Exchange,Display Exhibition Yen Rating A2 and B2,Method Total=A2 Division B2,Cost Show Display Yen to Yen Start Compare Other Country Plan on Understand.
行番号300と310は、結果1の判定と、結果2の判定を出すため、比較関数(IF)と(THEN)を使いA2と、B2のどちらが大きいか判定します。
Command Line 300 to 310 , Lees Than Method A2 or B2 , Compare Using IF AND THEN Hit it Large Parameter A2 or B2 .
行番号320は、Cに代入して式を実行します、またCの結果と、リザルトの結果を回答を表示します。
Command Line 300 and 310 , Executive Method Value C,Result C with Value of "Result",Ask Typing Input Answer From Method with Display .
行番号330は、貨幣と貨幣を取引することに、更に単価の量を求めます。
Command Line 320 , Multiply Parameter C by Unit Cost, Money to Money Exchange by it .
行番号340は、合算したレーティングを数でかけます、”COSTRESULT”値に格納されます。
Command Line 340 , Put Total Rating to "COST RESULT" , Method Multiply Count And Count Rating Number .
行番号350は、合算を格納した結果の数値を表示します。
Command Line 350 , Show Display Values , Get Result and Total .
行番号360は、手数料の割合を入力します。手数料は、10分の1にしたものを整数で掛けたものです。
Command Line 360 , Division Commotion Exchange Payed Type Input And Method Multiply Commotion Matrix .
行番号370は、E=の値に340で演算した計算に対して、手数料を1わりづつに計算するように、10で割って掛けます。
Command Line 370 , Method Process Target Command Line 340 Value , Divide of Ten Multiply Commotion of Count .
行番号380は、先程の行番号370の結果を表示します。
Command Line 380 , RearWard Progress Result Show Display .
行番号390は、手数料を含めた最終値を求め、次の行には、スタートとループし、ゼロからくり返します。
Command Line 390 , That Last Value Purchase , ForWard Next Command Line 400 is Loop up Start and Result Zero .

***************
Master Address

100 REM ---------------------
110 REM Programming by Dai Fukuoka
120 REM (C)電脳組 2016.07.06-07.15
130 REM ---------------------
140 CONSOLE 0,25,0,1:SCREEN 3,0,0,1:COLOR 0,7,0,0,1:WIDTH 80,25:CLS 3
150 DIM CSV$(10000,11):DIM CHECK$(11):DIM TITLE$(12)
160 DIM LOC1(80):DIM LOC2(25)
170 *SETSCREEN IF POINT(639,479)=POINT(639,399) THEN *RESTART
180 FOR T=1 TO 80:LOC1(T)=(T*8):NEXT:FOR I=1 TO 25:LOC2(I)=(I*16):NEXT
190 LINE(LOC1(0),LOC2(0))-(LOC1(80),LOC2(1)),5,BF
200 LINE(LOC1(0),LOC2(2))-(LOC1(80),LOC2(3)),5,BF
210 LINE(LOC1(0),LOC2(6))-(LOC1(80),LOC2(7)),5,BF
220 LINE(LOC1(0),LOC2(13))-(LOC1(80),LOC2(14)),5,BF:GOTO *TEXTBASE
230 *RESTART LINE(0,0)-(640,19),5,BF:LINE(0,57)-(640,76),5,BF
240 LINE(0,115)-(640,134),5,BF:LINE(0,172)-(640,192),5,BF
250 LINE(0,229)-(640,248),5,BF:LINE(0,286)-(640,305),5,BF
260 *TEXTBASE
270 TITLE$(1)="Card ID :":TITLE$(2)="Secure ID:":TITLE$(3)="E-Mail Address :"
280 TITLE$(4)="TelePhone :":TITLE$(5)="Name : ":TITLE$(6)="2Byte Name :"
290 TITLE$(7)="ZIP Code :":TITLE$(8)="Country,Continental,City : ":TITLE$(9)="Section,Street,Address Number :"
300 TITLE$(10)="Birth Year,Mounth,Day :":TITLE$(11)="Card Use Time Cycle Limid :"
310 *OPENFILENAME
320 CLS
330 LOCATE 0,0:PRINT "Open file Name :";:INPUT "",OFN$:IF OFN$="" THEN OFN$="StandardMA":GOTO *START
340 OPEN OFN$ AS 1
350 IF EOF(1)=-1 THEN MAKE=-1 ELSE IF EOF(1)=0 THEN MAKE=1
360 CLOSE 1
370 IF MAKE=-1 THEN *MAKEFILE ELSE IF MAKE=1 THEN *INPUTFILE
380 *INPUTFILE
390 OPEN OFN$ FOR INPUT AS #1
400 FOR I=1 TO 10000:INPUT #1,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(I,4),CSV$(I,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(I,11):NEXT I
410 CLOSE #1
420 *START
430 CLS : LOCATE 0,0:PRINT "Page:";:INPUT "",PAGE:LOCATE 40,0:PRINT "Lot Number:";:INPUT "",LOT
440 IF PAGE=0 OR LOT=0 THEN *OPENFILENAME
450 IF LOT=1 THEN *TRYBLOCK ELSE IF LOT=2 THEN *TRYBLOCK1
460 IF LOT=3 THEN *TRYBLOCK2
470 IF LOT=4 THEN *TRYBLOCK3 ELSE IF LOT=5 THEN *TRYBLOCK4
480 IF LOT=5 THEN *TRYBLOCK4 ELSE IF LOT=6 THEN *TRYBLOCK5
490 IF LOT=7 THEN *TRYBLOCK5 ELSE IF LOT=8 THEN *TRYBLOCK6
500 IF LOT=9 THEN *TRYBLOCK8 ELSE IF LOT=10 THEN *TRYBLOCK9
510 IF LOT=11 THEN *TRYBLOCK10
520 *TRYBLOCK LOCATE 0,1:PRINT CSV$(PAGE,1):LOCATE 0,2:INPUT "Card ID Number:(19 Count):",A$
530 ALEN=LEN(A$)
540 IF ALEN=0 THEN IF NOT CSV$(PAGE,1)="" THEN *TRYBLOCK1
550 IF NOT ALEN=19 THEN *START
560 FOR I=1 TO PAGE-1
570 IF A$=CSV$(PAGE,1) THEN *START
580 NEXT
590 FOR I=PAGE+1 TO 10000
600 IF A$=CSV$(I,1) THEN *START
610 NEXT
620 IF CSV$(PAGE,1)="" THEN CSV$(PAGE,1)=A$:GOTO *TRYBLOCK1
630 GOTO *SKIPTO
640 *MAKEFILE
650 FOR I=1 TO 11:CSV$(1,I)="":NEXT
660 FOR I=1 TO 10000:FOR T=1 TO 11:CSV$(I,T)="":NEXT T,I
670 OPEN OFN$ FOR OUTPUT AS #1
680 FOR I=1 TO 10000
690 WRITE #1,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(I,4),CSV$(I,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(I,11)
700 NEXT I:CLOSE #1
710 GOTO *START
720 *SKIPTO
730 *TRYBLOCK1 LOCATE 0,4:PRINT CSV$(PAGE,2);
740 LOCATE 0,5:PRINT "Secure ID (001-9999) : ";:INPUT "",SID$
750 IF VAL(SID$)<1 AND VAL(SID$)>9999 THEN *TRYBLOCK1 ELSE *TRYBLOCK2
760 IF CSV$(PAGE,2)="" THEN CSV$(PAGE,2)=SID$:GOTO *TRYBLOCK2
770 *TRYBLOCK2 LOCATE 0,7:PRINT CSV$(PAGE,3);
780 LOCATE 0,8:PRINT "E-Mail Address : ";:INPUT "",EMA$
790 IF LEN(EMA$)=0 THEN IF NOT CSV$(PAGE,3)="" THEN *TRYBLOCK3
800 TB2$="false"
810 FOR I=1 TO LEN(EMA$):IF MID$(EMA$,I,1)="@" THEN TB2$="True"
820 NEXT I
830 IF CSV$(PAGE,3)="" THEN CSV$(PAGE,3)=EMA$
840 IF TB2$="True" THEN *TRYBLOCK3 ELSE IF TB2$="false" THEN *TRYBLOCK2
850 *TRYBLOCK3 LOCATE 0,10:PRINT CSV$(PAGE,4);
860 LOCATE 0,11:PRINT "TelePhone : ";:INPUT "",TEL$
870 IF LEN(TEL$)=0 THEN IF NOT CSV$(PAGE,4)="" THEN *TRYBLOCK4
880 IF TB3$="True" THEN *TRYBLOCK4 ELSE IF TB3$="false" THEN *TRYBLOCK3
890 IF CSV$(PAGE,4)="" THEN CSV$(PAGE,4)=TEL$
900 *TRYBLOCK4 LOCATE 0,13:PRINT CSV$(PAGE,5);
910 LOCATE 0,14:PRINT "Name English : ";:INPUT "",NAMEENG$
920 IF LEN(NAMEENG$)=0 THEN IF NOT CSV$(PAGE,5)="" THEN *TRYBLOCK5
930 IF NAMEENG$="" OR NAMEENG$=" " OR NAMEENG$="-" THEN *TRYBLOCK4
940 IF CSV$(PAGE,5)="" THEN CSV$(PAGE,5)=NAMEENFG$
950 *TRYBLOCK5 LOCATE 0,16:PRINT CSV$(PAGE,6);
960 LOCATE 0,17:PRINT "Name Japan Kanji : ";:KINPUT KANJINAME$
970 IF LEN(KANJINAME$)=0 THEN IF NOT CSV$(PAGE,6)="" THEN *TRYBLOCK6
980 IF KLEN(KANJINAME$,3)>0 THEN ELSE *TRYBLOCK5
990 IF KANJINAME$="" OR KANJINAME$=" " OR KANJINAME$="-" THEN *TRYBLOCK5
1000 IF CSV$(PAGE,6)="" THEN CSV$(PAGE,6)=KANJINAME$
1010 CLS
1020 *TRYBLOCK6 CLS:LOCATE 0,4:PRINT CSV$(PAGE,7);
1030 LOCATE 0,5:PRINT "ZIP Code : ";:INPUT "",ZIP$
1040 TB6$="false":FOR I=1 TO 79:IF MID$(ZIP$,I,1)="-" THEN TB6$="True"
1050 IF LEN(ZIP$)=0 THEN IF NOT CSV$(PAGE,7)="" THEN *TRYBLOCK7
1060 NEXT I:IF TB6$="True" THEN *TRYBLOCK7 ELSE IF TB6$="false" THEN *TRYBLOCK6
1070 IF CSV$(PAGE,7)="" THEN CSV$(PAGE,7)=ZIP$
1080 *TRYBLOCK7 LOCATE 0,7:PRINT CSV$(PAGE,8);
1090 LOCATE 0,8:PRINT "Contry And Continental and City : ";:INPUT "",ADR1$
1100 IF LEN(ADR1$)=0 THEN IF NOT CSV$(PAGE,8)="" THEN *TRYBLOCK8
1110 IF ADR1$="" OR ADR1$=" " OR ARD1$="-" THEN *TRYBLOCK7
1120 IF CSV$(PAGE,8)="" THEN CSV$(PAGE,8)=ADR1$
1130 *TRYBLOCK8 LOCATE 0,10:PRINT CSV$(PAGE,9);
1140 LOCATE 0,11:PRINT "Section and Street Number Address : ";:INPUT "",ADR2$
1150 IF LEN(ADR2$)=0 THEN IF NOT CSV$(PAGE,9)="" THEN *TRYBLOCK9
1160 IF ADR2$="" OR ADR2$=" " OR ARD2$="-" THEN *TRYBLOCK8
1170 IF CSV$(PAGE,9)="" THEN CSV$(PAGE,9)=ADR2$
1180 *TRYBLOCK9 LOCATE 0,13:PRINT CSV$(PAGE,10);
1190 LOCATE 0,14:PRINT "Birth Year-BirthMounth-BirthDay : ";:INPUT "",BIRTH$
1200 IF LEN(BIRTH$)=0 THEN IF NOT CSV$(PAGE,10)="" THEN *TRYBLOCK10
1210 IF BIRTH$="" OR BIRTH$=" " OR BIRTH$="-" THEN *TRYBLOCK9
1220 *TRYBLOCK10 LOCATE 0,16:PRINT CSV$(PAGE,11);
1230 LOCATE 0,17:PRINT "Limid MM/YY And Renewal Card : ";:INPUT "",LIMID$
1240 IF LEN(LIMID$)=0 THEN IF NOT CSV$(PAGE,11)="" THEN *CHECK
1250 TB3$="false":FOR I=1 TO LEN(LIMID$):IF MID$(LIMID$,I,1)="/" THEN TB3$="True"
1260 NEXT I
1270 IF CSV$(PAGE,11)="" THEN CSV$(PAGE,11)=LIMID$
1280 IF LEN(LIMID$)=5 OR LEN(LIMID$)=7 THEN ELSE *TRYBLOCK10
1290 *CHECK
1300 IF NOT A$="" THEN LET CSV$(PAGE,1)=A$
1310 IF NOT SID$="" THEN LET CSV$(PAGE,2)=SID$
1320 IF NOT EMA$="" THEN LET CSV$(PAGE,3)=EMA$
1330 IF NOT TEL$="" THEN LET CSV$(PAGE,4)=TEL$
1340 IF NOT NAMEENG$="" THEN LET CSV$(PAGE,5)=NAMEENG$
1350 IF NOT NAMEKANJI$="" THEN LET CSV$(PAGE,6)=NAMEKANJI$
1360 IF NOT ZIP$="" THEN LET CSV$(PAGE,7)=ZIP$
1370 IF NOT ADR1$="" THEN LET CSV$(PAGE,8)=ADR1$
1380 IF NOT ADR2$="" THEN LET CSV$(PAGE,9)=ADR2$
1390 IF NOT BIRTH$="" THEN LET CSV$(PAGE,10)=BIRTH$
1400 IF NOT LIMID$="" THEN LET CSV$(PAGE,11)=LIMID$
1410 OPEN OFN$ AS 1:OFLAG=EOF(1):CLOSE:OPEN OFN$ FOR OUTPUT AS #1
1420 FOR I=1 TO 10000:WRITE #1,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(I,4),CSV$(I,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(I,11):NEXT I
1430 CLOSE #1
1440 LOCATE 0,18:PRINT "0:SKIP 1:Print Mode ?:";:INPUT "",PRINTER
1450 IF PRINTER=0 THEN GOTO *START
1460 IF PRINTER=1 THEN *PRINTSCREEN
1470 *PRINTSCREEN CLS:CLS 3
1480 OPEN OFN$ FOR INPUT AS #1
1490 FOR I=1 TO 10000:INPUT #1,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(I,4),CSV$(I,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(I,11):NEXT I
1500 CLOSE #1
1510 COUNT=0:LC=1:FOR COUNT=1 TO 11
1520 LOCATE 0,LC:PRINT CSV$(PAGE,COUNT)
1530 LC=LC+2
1540 NEXT
1550 LOCATE 0,0:PRINT TITLE$(1)
1560 COUNT=0:LC=2:FOR COUNT=2 TO 11
1570 LOCATE 0,LC:PRINT TITLE$(COUNT)
1580 LC=LC+2
1590 NEXT:LOCATE 70,0:INPUT "",Q$
1600 GOTO *SETSCREEN
1610 *LOOPOUT



行番号100と110と120と130は、マスターアドレスの著作者とBASIC/98の開発法人名をサインインしています。
Command Line 100,110,120,130, This Caption is Master Address into Author by Dai Fukuoka with Development Coopration "Dennougumi" Wrote .
行番号170から開始する事ができません、必ず配列変数の定義を先に行っておき、プログラムの始めからDIM関数の配列定義を行番号150と160を通しておきます。
Command Line 170 User with Developer This is Can Not Start Program ,Surely Go Start Filter Passager Command Line 150 with 160 .
行番号150と、160の”DIM”この関数の定義と配列変数値と、形式は”CSV”規格と、確認の11こ、キャプションの12個、文字の幅と、文字の高さの定義を実行します。
Command Line 150,160, This "DIM" Function is Definition Arrangement Variable Value, Type is "CSV" Standard and System "Check" with Caption "Title" and Charactor width "Loc1" and Character Height "Loc2" executive Difintion .
行番号180は、2次元の座標を”LOC1”と、”LOC2”に分けて文字の画像座標を割り出します、80を指定すると、640ピクセルを8で割った80行目(システムは79で0を1)端まで描画されます。
Command Line 180, This is 2 Dimension Variable Arrangement on "LOC1" is Character change to Graphics 80count width and "LOC2" is Character change to Graphics 25count height Coordination .This is Screen View Deep and Deep with on Character Coordinate .
行番号190から220は、”LINE”関数にて、範囲を定義し”BF”背景を塗ります。座標位置を”LOC1”と”LOC2”を呼び出し、目標の位置を参照します。これは、400ラインモードの場合実行されます。
Command Line 190,200,210,220, This View Control Function "Line" by Range on Definition with "BF" Parameter on Paint , coordinate Now Location Call "Loc1" with "Loc2" Target Reference, This is Screen Mode is 400 Line Standard Mode case by execution . Go to Skip Label "Restart" with Go on Label "Textbase" .
行番号230と240と250は、480ラインモードにて、高さが16ではなく19になります、座標の自動入力が困難のため、任意の位置を電卓から求めた座標を”レクトペイント”に入力します。
Command Line 230,240,250, This System Case is Height 480 Line Screen Mode execute Method coordinate Character Height 19Px-20Px , Screen View is Difficult No Automation Type Out, Calculator Method Measure coordinate View Point Box Fill Paint Background Color execute "Line" Paint1 .
行番号250から300は、配列文字列”TITLE”に11個の要因を入力します。1にはカードID、2にはセキュリティID、3には、電子手紙、4には電話、5には名前、6には2Byte、7には郵便番号、8には、住所の先頭、9には住所の後、10には、誕生日、11にはカードの有効期限。
Command Line 250,260,270,280,290,300, "TITLE" Variable Arrangement Strings is 11 Factor with caption in put 11 information, Case 1 Card ID, Case 2 Security ID, Case 3 Electrics Mails, Case 4 Tele Phone, Case 5 Names, Case 6 2Byte Names, Case 7 Postal Card Number, Case 8 Address Top, Case 9 Address Bottom, Case 10 Birth Day , Case 11 Card Limited Day .
行番号320は、テキストの範囲を消去します。
Command Line 320, Clear Text String Field on Erased .
行番号330は、テキストの座標1、1に”OPEN FILE NAME”を表示し、”OFN”の変数に任意の入力を待ちます。また空の場合を想定して空の場合はラベル”START”に戻ります。
Command Line 330, Text Area 1,1 Locate to Wait Accept Type Variable "OPN" Case About Conteiner Empty is Return Label "START" .
行番号340と、350と360は、新しいCSV形式のファイルを作成します、その時、”#”シーケンスを指定しません。開いている間 EOFがー1か調べることができます、CLOSEまでに”MAKE”変数は、状態を情報によって始めることができます。
Command Line 340,350,360, New CSV Standard Make File, Then Not Sequence Type and "For" Option. Open File Timing is Between Abstraction EndOfFile Value Search Count -1 or 0 Find Value Then Close File and Variable "MAKE" Status Stand by Information .
行番号370と380は、”MAKE”変数がー1か1の時−1終端に達していてファイルが空の場合ー1が指定され、新しくランダムファイルを作成するラベル”MAKEFILE”へ移動し書き込みます。0で返ることで1とフィルタし、ファイルが終端に達しない状態でファイルが空でない場合に読み込みます。
Command Line 370,380, "MAKE" Variable is -1 or 1 then -1 with Reach EndOfFile Case Empty File to Open New File Now, IF "MAKE" is -1 Value Go to Label "MAKEFILE" and Open New File, Return 0 Case Equivalent 1 with Filter No EndOfFIle and Open Rambom File Now then Read File "OFN" File Name .
行番号390と400と410は、ファイル名”OFN”に対して読み込みモードの”INPUT”付属を指定します。また、その間、ネストで、カウンタの値1から1万回数えて読み込みます。ファイルモードは、#1番です。CSV(カウンタ、1〜11種類)によって、この規格に、どこのカウンタの階でも、11個の情報が取り出せるようにします。
Command Line 390,400,410, Target "OFN" File Name Read Mode Nest Option "INPUT" AndToo, Then Value Counter 1 to 10000 Between by Nest, FIle Mode is #1 Count and CSV Standard "CSV(counter,11 Article Information) by This Standard is When Floor Because Get Information 11 Article .
行番号430は、”PAGE:”と”LOTNUMBER:”を表示しています。ユーザーは必要項目に入力する必要があります。入力することによって、参照点を変えることができます。
Command Line 430, Show Display "PAGE:" and "LOTNUMBER:" It, User is Must Need Typing Many Item, User Can Type Change Reference Locate Point .
行番号440は、”PAGE”と”LOT”変数が”0”で空の時ラベル”OPENFILENAME”に移動します。
Command Line 440, "Page" Variable and "Lot" Variable is "0" Value Case Go to Label "OPENFILENAME" Move It .
行番号450から510のステートメント関数によるルーチンの振り分けを”LOT”変数を参考値に分岐します。
Command Line First 450 to Last 510, This Statement Function by Brunch Case Routine Reference "LOT" Variable Exsample Values, Brunch is Label "TRYBLOCK" Plus (1-11) Section .
行番号520は、2行目に”CSV”規格の配列(PAGE,1条)、19桁の空白文字を含む番号が19桁に合致していなければ、再入力を求めます。
Command Line 520, 2Line Standard "CSV" Arrangement (Page,"1 Article") contain Space Word with Number 19 Column, Checking 19 Column Length, Not Equivalent Case ReTyping Purchase .
行番号530と540と550は、変数”ALEN”に先に入力した変数”A”文字列に対して長さを求めます、長さを求め”0”で通り越せないように”IF”ステートメント関数にて”0”の場合”CSV”(PAGE,1)が空の場合は、ラベル”TRYBLOCK1”に進めます。行番号550番は、変数”ALEN”の長さが19を否定した場合”IF”ステートメント関数は最初辺りのラベル”START”に移動します。
Command Line 530,540,550, "ALEN" Variable is RearWard Result "A" String Variable PurChase Word Length, No Skip "0" Value, No Type is Skip to Start, Empty Variable "CSV" Standard at Go to Label "TRYBLOCK1" Can Progress, Command Line 550, Word Length Variable String "ALEN" Not 19 Column Case is by Statement Function "IF" to Jump "Start" Move It .
行番号560,570,580は、同じカード番号が既存している場合にラベル”START”へ移動します。最大値まで一つ一つ調べます。式は、文字列変数”A”=”CSV(回数,1条)”。
Command Line 560,570,580, Existing Checking Card Number, Equivalent Existing Value is Return Label "START" Move It, Count is Maximum Matter-Affair by 1 Count , Method False is String Variable "A" Equivalent String Arrangement Variable "CSV" (Counter,Article 1) Find Check out .
行番号590と600と610は、”PAGE”に0から1に足した形で1万件文字列”A”と、”CSV”規格(数える変数,1条)に照会が一致する場合にラベル”START”に移動します。
Command Line 590,600,610, Variable Value of "I" Start Page Variable Plus 1 to 10Thousand Counter Count Check It, Standard "CSV" Type (Count,Article 1) Equivalent String text Variable "A" Then Go to Label "Start" Move it .
行番号620と630は、現在位置の規格の”CSV”が(PAGE変数,1条)の配列が空の時同じ位置の規格”CSV”にテキスト変数”A”を代入します。規格”CSV”が指定の空の場合にラベル”TRYBLOCK1”に移動します、空ではない場合はラベル”SKIPTO”に移動して行程を省略します。
Command Line 620,630, Standard "CSV" Arrangement Variable is Sequence Location Now Then Case Empty to Substitute "CSV" to "A" After Equivalent "CSV" is String Text "A" Variable,Target to Standard "CSV" Case is Empty Go to Label "TRYBLOCK1" Move It, Then Not Empty is Skip Method and Goto Label "SKIPTO" Move It .
行番号640と650と660は、ラベル“MAKEFILE”の行程です。650は、変数”I”に一万項、変数”T”に十一条を初期化します。一条から十一条まで空を入力して残存記憶を消去し設定します。
Command Line 640,650,660, Label "MAKEFILE" Plan Routine Command Line 640,650,660, Count Variable "I" is Count 1 to Count 10Thousand with 11 Article Standard "CSV" 2 Dimension Arragement Variable This "MAKEFILE" is All Format Setting and Memory Flush Value Equivalent Empty .
行番号670と680と690と700は、変数文字列”OFN”に書き込みモードで開きます。規格”CSV”の1項から10千項まで1から11条までの項目をWRITE関数にて、書き込み設定します。
Command Line 670,680,690,700,710 Generic Write Mode is Fuction Open Mode, String Text Variable "OFN" Open File Name Clause 1 to 10Thousand with 1 to 11 Article Write It, Step End at Jump to Label "Start" turn loop .
行番号720と730は、ラベル”MAKEFILE”を行程を省略してキーボードカーソルの位置を4行に揃えその時の規格”CSV”(項,2条)を表示します。
Command Line 720,730, Step Skip to Label "MAKEFILE" Not Work, KeyBorad Cursor Line 4 with Standard "CSV" Variable (PageCount,Article 2) Show Display It .
行番号740はクレジットカードの裏にある認証番号をVISAは1から999、MasterCardは1から9999までで、入力を必要としています。入力したユーザ情報は鍵番号と確認します。変数”SID”に情報が格納されます。
Command Line 740,Passenger User Need Credit Card Be Hind Look at Accept Number Typing is Case Visa equivalent 1 to 999(3 Column), Case MasterCard 1 to 9999(4 Column) Type In Put Secure ID Number,User Typed Information is Checking Password Number, "SID" Variable Value in Container Variable Information .
行番号750は、”SID”変数に文字列から算数値にVAL関数で変換して1以下と、9999以上にならないようにします。その時例外が入力された場合に730行にある最も近いラベル”TRYBLOCK1”に移動します。
Command Line 750, "SID" Variable Text Convert Function "VAL" to Exchange Number,Exception 1Under with 9999Over Then No Pass and ReStart Most Near Label "TRYBLOCK1" Move and Jump It .
行番号760は、”CSV”規格の次の条を2に設定して空の場合に先程の変数”SID”を置き換えます。
Command Line 760,IF "CSV" Arrangement Variable Standard Case Empty by Next Value Article "2" Replacement Exchange RearWard Variable "SID" .
行番号770と780と790は、”CSV”規格の3条を表示します。表示の後、E−mailを入力し、変数”EMA”を格納する。EMAが関数LENによって1文字以下で確認している場合に”CSV”規格がなおかつ空でない場合、ラベル”TRYBLOCK3”まで工程を省略します。
Command Line 770,780,790, "CSV" Standard and Article "3" Show Display After User Word Type "E-MAIL" Variable "EMA" Container In Put Case Function "LEN" by Variable "EMA" Word Length Under "1" and "CSV" (PAGE,3) Equivalent Empty Then Skip Command Line Jump to Label "TRYBLOCK3"
800は、省略しなかった場合に、変数”TB2”に”false”を自動で入力します。
Command Line 800, User Type Inflammation Case No Skip Then Variable "TB2" In Put Container Word "false" by Automation Typing .
行番号810と820は、変数”I”を1から始まりLEN関数で文字数の間を実行します。もし、文字列解析”MID”関数で、特定の”@”が見つかれば変数”TB2”を”True”に置換します。その際の式はMID(”EMA“,回数,1文字づつ)です。
Command Line 810,820, "I" Valible Start Value "1" to Function "LEN" and Variable "EMA" Word Length Between Execute Command Line,IF Word Analysis Function "MID" execute Find "@" Mark by Search in Look and Replacement "false" change "True" by Method is MID Function (Variable "EMA" , Counter , 1Length Word) .
行番号830は、規格”CSV”が項と、3条が空の時、“CSV"に変数”EMA”を置換します。
Command Line 830, "CSV" Standard is Clause with Article 3 is Empty Then Replacement "CSV" to "EMA" .
行番号840は、変数”TB2"の結果が”True”の場合次のラベル”TRYBLOCK3”に移動します、変数”TB2”の結果が”false”の場合”True”の後のラベル”TRYBLOCK2”に戻ります。
Command Line 840, "TB2" Variable is Result "True" Case Jump to "TRYBLOCK3" Next Stage Else "TB2" Variable is Result "false" Case Jump to Return Behind Block "TRYBLOCK2" .
行番号850と860と870と880と890は、”CSV”規格(項,条4)を表示し、変数”TEL”の置き換わる変数を入力します。文字列”TEL”の文字数が0の場合その条件は、”CSV”規格が、空で有る事を否定系である事で次のラベル”TRYBLOCK4”に進みます。次に変数”TB3”の結果が”True”の場合ラベル”TRYBLOCK4”に移動します。その結果が”false”の場合後ろのラベル”TRYBLOCK3”に戻り入力をやり直します。次は”CSV”規格が(項,条4)が空の時、別の変数”TEL”を置き換えます。
Command Line First 850 to Last 890, "CSV" Standard is Show Display "CSV(Page,Article4)" Typing This System Can Variable "TEL" Replacement Nothing Information "CSV" Arrangement Variable Value,User Typing Case Equivalent Word Length 0 This Terms "CSV" Standard Arrangement Variable Value of Result Not Nothing Jump to Label "TRYBLOCK4" Move It,Next Terms "TB3" Variable Value Result "True" Case Jump to Label "TRYBLOCK4" Move It, Else "TB3" Variable Value Result "false" Case Return to BeHind Label "TRYBLOCK3" Move It,"CSV" Standard is (Page,Article4) Case is Empty Then Distinction By "TEL" Variable Value Replacement "CSV" Standard Empty Clause Change It .
行番号900と910と920と930と940は、関数”LOCATE”によって14行に位置し”CSV”規格の”(項、条5)”を表示します。そのあと、行番号900と940の間、関数”LEN”にて、文字列変数”NAMEENG”の文字数が0のとき且つ”CSV”規格が空でない時次のラベル”TRYBLOCK5"に移動します。変数”NAMEENG”が無効な文字列の場合ラベル”TRYBLOCK4”に戻り同じ質問を繰り返します。”CSV”規格が空の時、”CSV”規格が変数”NAMEENG”に置換されます。
Command Line First 900 to Last 940, Function "LOCATE" by Place 14 word Line Pottision, Show Display "CSV" Standard by "(PAGE,ARTICLE5)" After Forward First 900 to Last 940 Between Then "LEN" Function "NAMEENG" Variable Value Count word by "0" with "CSV" Standard is Not Empty Then Go to "TRYBLOCK5" Move It, IF Key Board Typing is In Put From by Invalidity String word Case Return Go to Label "TRYBLOCK4" Looping Type, Out Follow Same Answer ReQuesting,Else and Value Empty by "CSV" Standard in Replacement Arragement Variable Value "(Page,Article5)" to "NAMEENG" Variable .
行番号950と960と970と980と990と1000と1010は、関数”LOCATE”にて、文字位置が16行に移動し、規格”CSV”と配列”(項,条6)”の結果の値を表示します。また文字位置が17に移動し、日本名前の漢字モードで答えなければなりません、外国の場合不要です。関数”KLEN”にて、”KANJINAME”の変数の漢字文字数の値を返します。結果が”0”(空)で、”CSV”規格も空で有れば、次のラベル”TRYBLOCK6”に進歩します。”KLEN”関数にて、”3”のパラメーターが指定され、変数”KANJINAME”が”0”で空の場合、何もしません、その他は、ラベル”TRYBLOCK5”に戻って同じ質問をします。無効な文字列が入力された時もラベル”TRYBLOCK5”に戻ります。”CSV”規格が”(項,条6)”の条件で空の時、変数”KANJINAME”に、”CSV”規格が置き換わるように置換されます。そのあと、画面を文字列を全て消去して、次のステージに進歩します。
Command Line First 950 to Last 1010, Function "LOCATE" by Move Jump to KeyBorad Courol Position Line 16 Move It, Result on Show Display "CSV" Standard and Parameter "(Page,Article6)" Value And User Must Answer Typing Kanji in Japanese, KeyBoard Coursol Move to 17 Line Position,This Answer "KANJINAME" Variable Touch Typing by Other Country is Need less, Function "KLEN" is Parameter "3" Localize "KANJINAME" Variable is Empty and ZeroWord to Return Label Move to "TRYBLOCK5" This Answer is Same, Invalidity String Text Touch Typing is 1 Count RearWard Label "TRYBLOCK5" and Question isSame Answer, "CSV" Standard is Parameter "(Page,Article6)" Tarms in Decision by Empty at Replace "CSV" Arragement Variable Value Change to "KANJINAME" Variable From In Put Continer by Japan After ForWard Clear Screen and Next Stage Answer Progress .
行番号1020と1030と1040と1050と1060と1070は、画面を消去したあとの、最初の入力です。”LOCATE”関数で、キーボードカーソルの位置を4行目から開始します。 4行目は、次の項だったバックステージより項目数が少ないので、4行目から開始します。4行目に”CSV”規格の”(項,条7)を表示し、空で有れば、表示されない4行です。5行に移動して、アイテム(項目)を表示します。郵便番号を聞いています。入力情報は、変数”ZIP”に入れられます。5行目に項目と照会が一致する情報を入力しなければなりません。変数”TB6”に”false”を自動入力します。次の工程に”FOR”関数にて、79列カウントを変数”I”にします。間隔は、1列づつです。”MID”関数にて先程入力した”ZIP”変数に文字列”−”がある場合、郵便番号が成立し、変数”TB6”を”True”に変更します。”IF”関数と、文字列の数を数える”LEN”関数が実行され空の時、”0”を示し、”CSV”規格の”(項,条7)の結果が空を否定の時、ラベル”TRYBLOCK7”に移動します。”NEXT”関数で条件が終わりを迎えた時、関数”IF”によって変数”TB6”に”True”が一致する場合、ラベル”TRYBLOCK7”に移動します。他は、変数”TB6”を”false”に自動で入力します。その時、ラベル”TRYBLOCK6”に質問を戻る事ができます。”CSV”規格の”(項,条7)が空の時、変数”ZIP”に置き換わります。
Command Line First 1020 to Last 1070, User Typed to Screen Clear After Begin KeyBorad Type, Function "LOCATE" by Move to Key Coursol Position Line 4 with In Put "ZIP" Variable Container Start on, Line 4 is Less Than Back Stage ITEM and Start Line 4,This 4 Line is "CSV" Standard and "(Page,Article7)" Show Display Then "CSV" Standard is Value of Case Empty is Show Nothing, Move to Line 5 by Function "LOCATE" at Show ITEM Display,Type and Request "ZIP Code" Typing Inflammation in Container "ZIP" Variable, That Line 5 is Must Type Infomation with Identity Check It,"TB6" Variable Value Automation in Replace "false", Next Process Statement Function "FOR" by Cloumn 79 Count Setting "I" Variable in Value and Step 1 Cloumn to Between and "MID" Function to From Back Typed "ZIP" Variable Contein "-" String Text Value is Complate "ZIP Code" and "TB6" Variable Change "True" It,"IF" Statement Function and Word Count "LEN" Function Execute Then Tell Empty and Zero Value, Result of "CSV" Standard with "(Page,Article7)" Case is Not Empty Jump to Label "TRYBLOCK7" Go It,"NEXT" Function Looped at Tarms is End Then "IF" Statement Function by "TB6" Variable Checking of "True" Case by Check Each Agree Go to Label "TRYBLOCK7" Step by Skip Sorce Code Move It,Else Other "TB6" Variable "false" on Automation Input THen Label "TRYBLOCK6" to Back Answer Return Thing,"CSV" Standard and "(Page,Article7)" Case is Empty Then Replacement "ZIP" Variable Change It .
行番号1080と、1090と、1100と1110と1120は、関数”LOCATE”にて文字座標を7行として、規格”CSV”があれば表示します。使用者は入力しなければなりません。最初の住所、区画(国名、県州省、都市の名前)にそれぞれ分けられます。使用者が無効な文字列を入力していないか、自動で調べる事ができます。規格”CSV”が空の時、セルフで入力したIDを持つ変数”ADR1”に置き換わります。
Command Line First 1080 to Last 1120 with Between, Function "LOCATE" by Word Line 7 by User Self Typing Have Information "CSV" Standard Show Display,User Must Typing In Put "ADR1" Variable Container Value,Begin Start Address and Section (Country , Continent, City Name) Difficult Each It,User is Case by Invalidity Typing Character Word at Checking Contents After Automation System Self Checking,"CSV" Standard is by Empty Case is User Have Self Identify Typing "ADR" Variable Value Replace to "CSV" Standard .
行番号1130と1140と1150と1160と1170は、次までの間、住所の市と県省州と国籍のそれ以外の住所を使用者は必要な情報を入力しなければなりません、無効な文字列は無視され位置が動かず質問を繰り返します。空等であれば元のラベル”TRYBLOCK8”に帰ります。すでに規格”CSV”が空でない場合は、変数”ADR2”に置き替えます。次にあるラベル”TRYBLOCK9”に進歩します。
Command Line First 1130 to Last 1170, At Next Behind Between Address by User Must Keyboard Typing Skip Inter National or Continent or CIty Other is Need Information , Invalidity Word Character at Ignore with on No Move Repeat Answer, Case by Empty are Send Return Label " TRYBLOCK8", Already "CSV1" Standard is Have a Information by Change Replace Variable "ADR2", Progress Next Label "TRYBLOCK9" Go on .
行番号1180と、1190と、1200と、1210は、関数”LOCATION”にて13行目に既に有った場合”CSV”規格の”(項,条10)”によって中身を表示します。14行で、誕生日の年、月、日を使用者は、入力しなければなりません。無効な文字列を入力することはできません。そしてその時元のラベル”TRYBLOCK8”に帰ります。
Command Line 1180,1190,1200,1210, Function "LOCATION" Parameter Have Line 13 and Show Display Arrangement Variable "CSV" Standard "(Page,Article10)" by Contents Container, User By Line 14 Typing Number as "Birth" with Year,Mounth,Day, User Can Not Invalidity Character KeyBoard Typing, Through Then Back Label "TRYBLOCK8" Go Returns .
行番号1120と1230と1240は、初頭から”LOCATE”関数で16行に移動を実行します。その時規格”CSV”が空でなければ表示します。17行に移動し、使用者はクレジットカードの更新期限を入力しなければなりません。必要な情報の一つとしています。もしも長さが0のその時規格”CSV”が空でなければラベル”CHECK”に移動して、個人情報の質問の全ては終わります。変数”TB3”を”false”に設定して、入力文字の全部に”/”を含めば変数”TB3”に”True”に変えます。文字数まで繰り返しします。規格”CSV”が空で有れば、今入力していた変数”LIMID”を規格”CSV”に置き換えます。もしも文字数が5他7の場合何もしません、その他、元の質問のラベル”TRYBLOCK10”に使用者は、再入力しなければなりません。
Command Line Fist 1180 Between Last 1280, Operation Oder Next Topics by Function "LOCATE" is Move To Line17 Cursol on Execute, Then "CSV" Standard Show Display if Not Empty Case on Show, Move To Line 17 After Typing User Must Cad Limid End Tarm on Year/Mounth, This is Need Infomation Many One, If String Text Length Case Equivalent "0" Then "CSV" Standard is bu Not Empty at Label "Check" Go it,Type All Container In Put Information Only Person Data on End, "TB3" Variable to Input Container Value Equivalent "false" Variable Set on, User Typing Find Check up Contain Character Word of Use "/" at Change on "True", Repeat Count String Text Length, "CSV" Standard is Not Empty in Case Pass Execute,RearWard "LIMID" Variable Value After Replace to "CSV" Standard,If Character Length in Case is 5 or 7 by Nothing, Else Back Answer Go to Label "TRYBLOCK10" Repate and ReTyping by Self User .
行番号1300と1310と1320と1330と1340と1350と1360と1370と1380と1390と1400は、11項目の変数”A”、”SID”、”EMA”、”TEL”、”NAMEENG”、”NAMEKANJI”、”ZIP”、”ADR1”、”ADR2、”BIRTH”、”LIMID”の全てが、情報を持っていれば、規格”CSV”に置き換えます。”(項,条1〜11)”から、11項目の変数に対して11項目の変数を置き換えます。
Command Line First 1300 to Last 1400, This Section is 11 ITEM Variable Value with "A" and "SID" and "EMA" and "TEL" and "NAMEENG" and "NAMEKANJI" and "ZIP" and "ADR1" and "ADR2" and "BIRTH" ans "LIMID" all 11ITEM Variable Value is IF Not Empty at "CSV" Standard Arragement Variable Value Replace Change to Variable 11ITEM .
行番号1410と1420と1430は、先ず”OFN”シーケンシャルを仮開きした時に得た関数”EOF”の値を変数”OFLAG”を置き換えます。ファイル”OFN”が空で有れば”OFLAG”は、”−1”の値を示します。閉じたあと、新しいファイルが作られ、開くことができます。1から1万件まで管理し、1件につき11項目を同時に書き込み閉じます。
Command Line 1410,1420,1430, First Pre Open "OFN" Sequencial File Then Execute Function "EOF" Parameter is "1" with Get Value,IF This Get Value is "-1" in Case is End of FIle by Empty,"OFLAG" Variable Replace to Function "EOF" on Result,Close After Make New File,User Can Open File in Suggestion, FIrst "1" to "10000" count Arrangement Variable "CSV" Standard After Write File of "OFN" Sometime Wrote by Close .
行番号1440は書き込んだ後、印刷するか尋ねます。その場合、”0”は、いいえ、”1”は、はい。はいの場合、変数を整列します。
Command Line 1440, Write Open File Was After Ask Printing It,This Case is "0" No, Case is "1" Yes, That Case is Align Variable All on Time .
行番号1450と1460と1470は、先程変数”PRINTER”に入力された値が、”0”の場合最初に、”1”の場合、ラベル”PRINTSCREEN”に移動します。”1”の場合、移動後文字列を”CLS”関数、画像を”CLS 3”関数で消去します。
Command Line 1450,1460,1470, Behind of Varible on "PRINTER" to User Typing Input Value with in Result is Case by "0" is Begin Status and Starting,Behind Variable in Result is Case by "1" to After "CLS" Function with "CLS 3" Function Execute in Erased Screen of String Text and Graphics .
行番号1480と1490と1500は、書き込んだ後”FLUSH”によって失った変数記憶を、書き戻ります。”1”から”10000”まで書き戻します。そのあと、”OFN”のファイルを閉じます。
Command Line 1480,1490,1500,Lost Memory by Flush at Open Write File was Return Memory of "1" Start "10000" End of File to Close Open FIle Name "OFN" Variable .
行番号1510と1520と1530と1540は、変数”COUNT”と”LC”を”0”と”1”の数を設定します。ステートメント関数”FOR”にて、変数”COUNT”が”1”から”11”までを、繰り返します。”LOCATE”関数で文字座標を列を”0”、行を変数値”LC”にて、規格”CSV"の”(項,条=COUNT)”の条件にて印刷の情報表示します。変数”LC”は、”1行”の間隔を経て一回で”2”の数を追加します。”NEXT”にて繰り返し点です。
Command Line FIrst 1510 to Last 1540, Set Variable "COUNT" and "LC" Equivalent "0" or "1", Statement Function "FOR" by Repeat Value "1" to "11" Loop up, Function "LOCATE" Move to Coordinate X and Y Character Size with Cloumn "0" and Line "LC" Variable, Show Display "CSV" Standard "(Page,Count)" Terms Case by Print Out Mode Infomation, "LC" Variable is "1" Line Between Pass One More Addition "2" Value, Repeat Point Break Turn by "NEXT" Function .
行番号1550と、1560と1570と1580と1590と1600と1610は、初めの状態が横”0”縦”0”に配列変数”TITLE”を”1”の因数の結果を表示します。次に、変数”COUNT”を0に、変数”LC”を”2”から始めます。関数”FOR”にて変数”COUNT”は、”2”の値から始まり、”11”で終わります。関数”LOCATE”にて横は”0”縦は変数値”LC”に配列変数”TITLE”を”COUNT”の回数を因数に結果を表示します。変数”LC”は、”2”づつ加算されます。”NEXT”で閉じたあと、”LOCATE”関数で、”70”の横で、”0”の縦でキーボードカーソルを移動します。その時、変数”Q”を使用者は、入力したあと、ラベル”SETSCREEN”に移動し、繰り返し作業の現在の”PAGE”を終えます。
Command Line First 1550 to Last 1610, Starting Status is KeyBord Cursol is Horizontal "0" and Vertical "0" to Arrangement Variable "TITLE" in Factor Show Result,Next is "COUNT" Variable Equivalent "0" and "LC" Equivalent "2" Begin, Statement Function "FOR" by "COUNT" Variable Start "2" to "11" End, Function "LOCATE" by Horizontal "0" and Vertical "LC" Variable Show Display Arrangement Variable "TITLE" Value at "COUNT" on Factor Parameter Show Result, "LC" Variable is Addition "2" Count Plus, Close Function "NEXT" After by "LOCATE" Function of Horizontal "70" Column Vertical Line "0" Move to Keyboard Coursol, Then User is Typing "ENTER" After Screen Format, Repate Work is End "PAGE" Now .


********************
Estate Stock Market


100 REM --------------------
110 REM Programing by Dai Fukuoka Estate Stock Market
120 REM (C)2017.03.24-04.12 Rev.2017-04-24
130 REM Development Soft by Dennougumi(C)電脳組
140 REM --------------------
150 CONSOLE 0,25,0,1:SCREEN 3,0,0,1:COLOR 0,7,0,0,1:WIDTH 80,25:CLS 3:PAGE=1
160 DIM CSV$(999,12):DIM CSV(999,12):DIM METHOD$(999,12):DIM METHOD(999,12)
170 DIM ACCOUNTIT(12,99):DIM CLOSEYEAR(99):LET PAGE=1:YEARS=1
180 IF POINT(639,399)=POINT(639,479) THEN SHOWMODE=1
190 LOCATE 0,0:PRINT "Estate Stock Market,User Must Reply Item in Method Case."
200 LOCATE 0,1:PRINT "不動産証券に計算式の場合、使用者は、項目を返答しなければなりません"
210 LOCATE 0,2:PRINT "User Must Total Estate Account Reply Exist Now"
220 LOCATE 0,3:PRINT "使用者は、不動産経理の今の合算を答えなければなりません"
230 LOCATE 0,4:PRINT "User Need Key Board Typing with on Reply Ask it."
240 LOCATE 0,5:PRINT "返事を尋ねるそれの使用者は、キーボード入力を必要とします"
250 LOCATE 0,6:PRINT "User Plan is 2 Type Category on 30 EXPONENT Type (\6,000,000) or 50 EXPONENT Type (\100,000,000) Choicen It."
260 LOCATE 0,8:PRINT "使用者の計画は2種類あり、30指数6千万円と、50指数1億円あります、これを選択します"
270 LOCATE 0,10:PRINT "All Alloment is Exchange Estate Fix Tax After Some Tax by Issue StockMarket."
280 LOCATE 0,11:PRINT"全部の配当は、固定不動産税のあと、同じ税によって証券発行をします"
290 LOCATE 0,12:PRINT "User Account is Decision Mounth Sale in 1 Year Total Tax Credit Debt."
300 LOCATE 0,13:PRINT "使用者の経理の結論は、月の売り上げを1年の合算税として、売掛します"
310 LOCATE 0,14:PRINT "This Stock Market is Target Estate Insurance Tax With Control."
320 LOCATE 0,15:PRINT "この証券は、不動産保険税を対象としています、また一緒に調整します"
330 LOCATE 0,16:PRINT "This Contents have 30 EXPONENT Category is First Park,Farm,Security, Secound FirePlace Last City Office Use Insurance."
340 LOCATE 0,18:INPUT "Next Clause Pages:",PAGE$:CLS
350 LOCATE 0,0:PRINT "この内容は、30指数の種類は、公園、農園、証券のものと、次に防火区域権、最後に、市役所が使う保険があります"
360 LOCATE 0,2:PRINT "This Contents have 50 EXPONENT Category is First Cigarette,Secound Alcoholic Tax Third Low-Justice Tax Force Order-Gudge Tax Last Safe Poket Cargo Tax."
370 LOCATE 0,4:PRINT "この内容は50指数の種類は、初めに煙草税、次に酒税、次に、弁護税、次に裁判税、最後に安全小包税"
380 LOCATE 0,6:PRINT "This StockMarket Account Sale is 100PerCapital Body,Addit 100PerCapital is Contract Accessment"
390 LOCATE 0,11:PRINT "20割の経理収入は20割中2割、所得税2割、固定資産税1割、雇用3割、雇用枠最大人数指数"
400 LOCATE 0,9:PRINT "This 200Per Account is Incoming 20Per and Income Tax 20Per and Estate Fix Tax is 10Per Empolyment 30Per Tax and Low Line is 6Member High Line is EXPONENT."
410 LOCATE 0,11:PRINT "20割の経理は収入は20割中2割、所得税2割、固定資産税1割、雇用3割、雇用枠最大指数人数"
420 LOCATE 0,13:PRINT "煙草税は、精機、半導体に対応する、高い資材コスト、酒税は、総務と、販売士だけの一般市場、安全小包税は、主に、運輸業に充てられる"
430 LOCATE 0,15:PRINT "Cigarette is Worker Unit Cost Low Plan with HighIncoming,Alcoholic is Target Sale Plan with General,Sefe Pocket Post Office is TransPort Tax."
440 LOCATE 0,17:PRINT "このプログラムは、期間を月で開始し、その間、同じペースで増え、売上猶予を付け、不動産保険税証明書のかかる金額を、30と、50指数とします"
450 LOCATE 0,19:PRINT "This Program is Terms in Begin Mounth Between Some Timming Addit Sale Delay and Since Insurance Tax Cost All Count Total EXPONENT 30,50"
460 LOCATE 0,21:INPUT "Next Clause Pages:",PAGE$:CLS
470 *START
480 LOCATE 0,0:INPUT "12ヶ月間始める月を答えてください/Between 12 Mounth Reply Begin Mounth :",CSV(PAGE,1)
490 IF CSV(PAGE,1)=0 THEN *START
500 LOCATE 0,1:INPUT "売掛をする年数を答てください/Reply Credit Debit Close Year Mounth :",CSV(PAGE,2)
510 IF CSV(PAGE,2)=0 THEN *START
520 LOCATE 0,2:INPUT "日本円と比較する通貨の単価を答えてください/Reply Amount Ratio Exchange Compare Japan Yen to It:",CSV(PAGE,3)
530 IF CSV(PAGE,3)=0 THEN *START
540 LOCATE 0,4:INPUT "地方圏の最大個数を答えてください/Reply to Region Place and Estate Insurance Tax StockMarket Target Count It:",CSV(PAGE,4)
550 LOCATE 0,6:INPUT "借地権区域の最大個数を答えてください/Reply to High Density City Place and Estate Insurance Tax StockMarket Target Count It:",CSV(PAGE,5)
560 LOCATE 0,8:INPUT "剰余される税を残すか、期間を途中で停止するか0:途中停止と1:剰余加算で答えてください/Reply (0:Stop Terms) or (1:Exist Surplus Addit Amount):",CSV(PAGE,6)
570 LOCATE 0,10:INPUT "土地を不当に売却すると、禁錮3か月以上に問われる事があります、売却土地代金で税金に投資することは合法ですが、税は都市間を移動できません/Place No Buy,But Arrest 3 Mounth,Place Buy Cost Exchange Tax Not Illegal,Tax No Move City(0:Yes/1:No):",CSV(PAGE,7)
580 LOCATE 0,13:INPUT "最初の予算金額を答えてください、日本単価を換算値で換算します/Reply Start Bigin Plan Cost Unit,Japan Yen less Than to Kind Multiply Ratio(0:Yes/1:Simple) :",CSV(PAGE,8)
590 IF CSV(PAGE,8)=<0 THEN *START
600 LOCATE 0,16:INPUT "登録される市区町村を答えてください/Reply Regist Section Name:",CSV$(PAGE,9)
610 LOCATE 0,17:INPUT "オペレータの名前を答えてください/Reply Naming Operator:",CSV$(PAGE,10)
620 LOCATE 0,18:INPUT "生年月日の情報を答えてください/Reply Birth infomation Year-Mounth-Day:",CSV$(PAGE,11)
630 LOCATE 0,19:INPUT "Next Clause Pages:",PAGE$:CLS
640 SP$=" ":CSV$(PAGE,12)=DATE$+TIME$
650 *PROGRESS1
660 *STARTYEAR
670 MAXREGION=CSV(PAGE,4):MAXCITY=CSV(PAGE,5):COSTREGION=60000000:COSTHIGHCITY=100000000:BOOLIANT=0:FIRSTYEAR=STARTMOUNTH:ANUITY=59999999/CSV(PAGE,3)
680 IF CSV(PAGE,1)=>1 AND CSV(PAGE,1)=<12 THEN ELSE *START
690 IF CSV(PAGE,3)=<0 OR CSV(PAGE,8)=<0 OR CSV(PAGE,2)=<0 THEN *START
700 IF (CSV(PAGE,1)*(CSV(PAGE,8)/10)/CSV(PAGE,3))<(CSV(PAGE,4)*COSTREGION/CSV(PAGE,3))+(CSV(PAGE,5)*COSTHIGHCITY/CSV(PAGE,3)) THEN IRESULT=1 ELSE IRESULT=2
710 STARTMOUNTH=CSV(PAGE,8)*(13-CSV(PAGE,1))/10/CSV(PAGE,3)
720 PRINT "FirstYearAccount with Ratio:";CSV(PAGE,8)/10
730 FOR I=CSV(PAGE,1) TO 12:ADD1=(CSV(PAGE,8)/10/CSV(PAGE,3)):PRINT I;"Mounth Income";ADD1;"total";CSV(PAGE,8)+(ADD1*(I+1-CSV(PAGE,1)));"Result";CSV(PAGE,8)+(ADD1*(I+1-CSV(PAGE,1)))-(COSTHIGHCITY*COUNTCITY)-(COSTREGION*COUNTREGION):NEXT
740 BEGINTOTAL=CSV(PAGE,8)+(ADD1*(13-CSV(PAGE,1)))
750 IF SUBTOTAL=<999999 THEN ERESULT=0:PRINT "Out of Account" ELSE IF SUBTOTAL=<20000000 THEN ERESULT=1:PRINT "Charge Enterprise Annuity and ";BEGINTOTAL
760 PRINT "Accessment Estate Insurance Place Tax is ";ADD1;"on Year.";BEGINTOTAL:PRINT " Between Term: 1"
770 COUNTIT=0:FOR I=CSV(PAGE,1) TO 12:COUNTIT=COUNTIT+1:ACCOUNTIT(I,YEARS)=CSV(PAGE,8)+(CSV(PAGE,8)/10*COUNTIT):NEXT
780 CLOSEYEAR(YEARS)=BEGINTOTAL
790 *RESTARTYEAR
800 IF YEARS<CSV(PAGE,2) THEN YEARS=YEARS+1 ELSE *SKIP1
810 MAXREGIONEXPONENT=(CSV(PAGE,4)*30):MAXCITYEXPONENT=(CSV(PAGE,5)*50)
820 ENTERPRISECOST=20000000:EXPONENTCOST=1D-006:REGIONEXPONENT=COSTREGION*EXPONENTCOST:HIGHCITYEXPONENT=COSTHIGHCITY*EXPONENTCOST
830 IF BEGINTOTAL>COSTREGION THEN COUNTREGION=INT(BEGINTOTAL/COSTREGION)
840 IF BEGINTOTAL>MAXREGION*COSTREGION THEN COUNTREGION=MAXREGION
850 IF BEGINTOTAL>(MAXREGION*COSTREGION)+(MAXHIGHCITY*COSTHIGHCITY) THEN COUNTCITY=MAXHIGHCITY:COUNTREGION=MAXREGION
860 IF BEGINTOTAL>(MAXREGION*COSTREGION) THEN COUNTCITY=INT(BEGINTOTAL-(COSTREGION*MAXREGION)/COSTHIGHCITY)
870 IF COUNTCITY>MAXCITY THEN COUNTCITY=MAXCITY
880 IF ((MAXREGION*COSTREGION)+(COSTHIGHCITY*MAXCITY))<BEGINTOTAL THEN SURPLUS=BEGINTOTAL-((MAXREGION*COSTREGION)+(MAXCITY*COSTHIGHCITY))
890 PRINT "EXPONENT";(COUNTREGION*30)+(COUNTCITY*50)
900 INPUT "Close Plan Enter Continue:",LISTEN$:ADDMOUNTH=CSV(PAGE,1)
910 IF BEGINTOTAL>=20000000 THEN OVERENTERPRISE=1 ELSE OVERENTERPRISE=0
920 PRINT "ESTATE REGION:";COUNTREGION;"/HIGH CITY:";COUNTCITY
930 IF BEGINTOTAL<COSTREGION THEN ENTERPRISE=BEGINTOTAL/10 ELSE ENTERPRISE=0
940 FOR I=1 TO 12:ADD1=(COUNTREGION*COSTREGION/20)+(COUNTCITY*COSTHIGHCITY/20)+ENTERPRISE:ACCOUNTIT(I,YEARS)=BEGINTOTAL+(ADD1*I)
950 PRINT I;"Mounth Income";ADD1;"total";BEGINTOTAL+(ADD1*I);"Result";BEGINTOTAL+(ADD1*(I+1-ADDMOUNTH))-(COSTHIGHCITY*COUNTCITY)-(COSTREGION*COUNTREGION):NEXT
960 PRINT "NextYearTotal Addition 12 Month:";BEGINTOTAL+(ADD1*12);"Income:";ADD1;"Result";BEGINTOTAL+(ADD1*(I-ADDMOUNTH))-(COSTHIGHCITY*COUNTCITY)-(COSTREGION*COUNTREGION):PRINT "Between Term:";YEARS
970 BEGINTOTAL=BEGINTOTAL+(ADD1*12):CLOSEYEAR(YEARS)=BEGINTOTAL
980 IF YEARS<=CSV(PAGE,2) THEN *RESTARTYEAR ELSE *LOADOPENFILE
990 *SKIP1
1000 *LOADOPENFILE
1010 OFN$="ESM"+MID$(DATE$,1,2)+MID$(DATE$,4,2)+MID$(DATE$,7,2)
1020 OFN2$="ESMTAG"+MID$(DATE$,1,2)+MID$(DATE$,4,2)+MID$(DATE$,7,2)
1030 OPEN OFN$ AS 1:IDENTIFY=EOF(1):CLOSE
1040 IF IDENTIFY=-1 THEN *NEWOPENFILE ELSE *SKIPOUT
1050 *NEWOPENFILE
1060 OPEN OFN$ FOR OUTPUT AS #1:T=1:FOR I=1 TO 12:WRITE #1,ACCOUNTIT(I,T):NEXT I:WRITE #1,CLOSEYEAR(T):IF YEARS=>2 THEN ELSE *LOADOPENFILE
1070 FOR T=2 TO YEARS:FOR I=1 TO 12:WRITE #1,ACCOUNTIT(I,T):NEXT I:WRITE #1,CLOSEYEAR(T):NEXT T:CLOSE #1
1080 OPEN OFN2$ AS 2:IDENTIFY=EOF(2):CLOSE #2
1090 IF IDENTIFY=-1 THEN *NEWOPENTAG ELSE *LOADFILENAME
1100 *NEWOPENTAG OPEN OFN2$ FOR OUTPUT AS #2:FOR I=1 TO 8:WRITE #2,CSV(PAGE,I):NEXT:FOR I=9 TO 12:WRITE #2,CSV$(PAGE,I):NEXT:CLOSE #2
1110 *LOADFILENAME OPEN OFN$ AS 1:LCHECK=EOF(1):CLOSE 1
1120 IF LCHECK=-1 THEN *FORWARD ELSE *SKIPOUT
1130 *FORWARD OPEN OFN2$ FOR INPUT AS #2:FOR I=1 TO 8:INPUT #2,CSV(PAGE,I):NEXT I:FOR I=9 TO 12:INPUT CSV$(PAGE,I):CLOSE #2
1140 OPEN OFN$ FOR INPUT AS #1:T=1:FOR I=CSV(PAGE,1) TO 12:INPUT #1,ACCOUNTIT(I,T):NEXT I:INPUT #1,CLOSEYEAR(T)
1150 FOR T=2 TO YEARS:FOR I=1 TO 12:INPUT #1,ACCOUNTIT(I,T):NEXT I:INPUT #1,CLOSEYEAR(T):NEXT T:CLOSE #1
1160 *SKIPOUT






パラメーターをラベル化することにより、よりオブジェクト指向に近い形でプログラミングをベーシックに実現します。完全な形でクラスは実現できませんが、全ての実数は、変数に置き換えられ、番号、、数値を使わないで、関数の各項目を入力する実践の試供は別の項目、「Dai's C Laboratory」に解説してあります。関数定義で、複数のパラメーターを、数値以外で指定することにより、ビジュアル化を図ります。これに少なくとも近い形の思想をベーシックにも実現できます。データベースの作成法等、Cとの差は有りますが、CSV規格で記録されています。特に、変数を関数化することに役に立ち、グラフィックスのインターフェイスでなくても、キャラクターベースで有っても、数値は、置き換えられます。また、変数ラベルを比較することで、入力状況を調査管理しています。概約は、一年間は、株でないかたちで剰余を運営し、2年目から倍の契約料の株に置き換えられるので、一年目の10ヶ月と、二年目の10ヶ月は、同額の収入となります。配当金の1割で資産を投資するので、追加土地証券は、5分の資産が加算されます。よって、20分の一づつのマーケットプレースを追加する約款のソフトとなっております。

Directional Object with Visual Parameter and Actual Cover Variable This Labeling to Basic Programming Complete Existance,No Perfect Class After This Character Base Interface External Control No Acturalism.Class ExSample is Difference This Basic Standard Discussion " Dai's C Laboratory ".This Original Make Function is Variable Base Method Value.This Image Directional by Basic Standard's,Difference Sequence Archive Input Output to Visual C by Basic CSV Data Base Programming,This Make Function Variable Value is Standard JavaScript Function Like This Scripting,This Archive Basic is No Graphic Interface,No Open Actual with Virtual Function,Relational Make Function and Result to Operating Find and Control Input Output.This Agree First Year is Double Incoming 10/1 After Year by Pass Market Place Security Trading by Incoming 20/1 This Standard SoftWare.

行番号100から140は、プログラムの創作者氏名と、日付と、開発環境提供者の署名です。
Command Line 100 to 140,Signature Author By Dai Fukuoka And Date With Development Soft Ware House of Dennougumi.
行番号150は、必要な初期設定です。di
Command Line 150,System is Needed Start Settings.
行番号160、170は、配列変数(二次元配列変数)の宣言です。
Command Line 160 and 170,System is Declaration 2 Detention Two Dimensional Variable Value.
行番号180は、画面端の色彩の採取です。スクリーン画面は、白色なので、画面をはみ出しているときは、式の結果が「0:黒」、画面内の場合は、結果が「&HFFF:白」と成ります。採取位置は、639,399 or 639,479です。
Command Line 180,This View Screen Deep in Capture Color,If case No White is Value 0 Then Else 4096,Capture Point Location is Trams Horizontal of 639 with Vertical of 399(Hi-zore Display) or 479(Standard Display Settings) By Location.
行番号190から340まで、画面スクリーンに一杯に日、英表記の規定文書画面を表示します。また、340で、空変数”Page$”に、エンターの入力を受付、入力内容を検査しません。
Command Line 190 to 340,Full Fill up at View Screen,Display Language is Japanese and English Standard,System is Free Pass Enter Key,No Check out it on Variable Value of Pages$ by Pass.
行番号350から460は、190から340までのものの次項です。同じように”Page$”でエンターで同意して進みます。
Command Line 350 to 460 is 190 to 340 to Next Clause,Same Accept Enter Page$ on Start.
行番号470は、ラベル”Start”によってプログラムの開始が宣言されます。
Command Line 470,By Start is Declaration Program Starter.
行番号480は配列CSV(”項”,”一条”)に数値の形式で入力した数値をCSV配列に格納します。ここでは、12ヶ月内、開始月を聞いています。
Command Line 480,Arrangement Variable Value by CSV(Clause,Article) Database Type Number on Input Container After On Ward Start Mounth at Listen.
行番号490は、配列CSVの前行にて入力された数値の結果が「0」と等しく空の場合、その時スタートにスキップして、入力を始めからやり直します。一回も入力ミスできません。
Command Line 490,Then Front Arrangement Value CSV is Result Equivalent If Case Zero,Then Skip and Back Start,Re Try and No Mistake No Get Once.
行番号500から570までは、内容をチェックしないで日本語と英語で入力を進められます。
Command Line 500 to 570,No Check Out with Language Japanese and English to Enter.
売り掛けする年数、円単価に対するレート、地方ストック、借地ストックの上限、剰余金の額、無資格土地売買の禁止などを質問されます。其れによりCSV”(Page$,Article−6)”迄を格納します。
Allotment Dividend on Investment Program,Year,Yen Rate,Region Stock,Leased Land Stock with Highest,Surplus Account,Stop No License Land Buyer,About Input Container Arrangement Variable CSV Standard on CSV(Page$,Article) Save in Keeps.
行番号570からは、2尺択一で「0」と「1」で答えます。
Command Line 570 to For,User is Choice One by Two,Then 0:False 1:True Selected.
行番号630にて、空のエンターキーを、”Page$”に得ます。
Command Line by 630,This is Push Enter Key Get Empty of Page$.
システムは、回答項目が11条迄でも、12条項に日付と時間を自働で挿入します。”SP$”に空白の文字を格納します。
System is Reply to Full with Eleven Then Case Twelve Automation Insert Time Date Now.SP$ Value is Character Spacing Input Container Fill up.
行番号650、進行過程1がラベルで”Progress1”が宣言されます。
Command Line 650,Progress Step by One Label in Declare Progress 1.
行番号660は、ここから年を始めます。よってラベル”STARTYEAR”を宣言します。
Command Line 660,This Point is Start Year,About by Declare Label STARTYEAR.
行番号670からは、実数のラベリングを行い、ウインドウプロシージャ(ウインドウ構造体変数)の設定例をもとに、ラベルばかりで、比較をしたり、変数のラベルを、クラス関数の代わりに使ったりする目的で、実数を覆い隠した形で、Basicにオブジェクト対策をします。実際に、本物のクラスや、定義関数と、仮想的にまったく同じには出来ませんが、最先端の技術を採用することにより、それに極限まで近づける目的があります。是により、掛けたり割ったりすることを、方程式のX,Y方程式のように比較の調査と、加算減算、割り算掛け算をします。ユーザー側は、入力された情報が覆い隠されるので、操作上は、シームレス(無階層)の平たい設定入力が出来ます。
Command Line 670 For,Actual Labeling Executed,Model Source Window Proceed Use Model Settings,Relation Static Label Method,Exchange Variable Label as Virtual Function,This is Highest Step Out Using Technology Change Target,Private Actual Typing Objective Counter-Measurement by 98 Basic.Model Actual is Pure Class or Definition Function No Same Virtual,Get Plan Technology is Approach Visual C to Purpose.This Case is Multiply or Divide or Addition or Subtract Execute Method,Model Math X,Y Near Analyze.Side User is Accept Type Information on Hidden Private by User Can Operation on Flat Seamless Selected Imputing.
行番号670は、地方証書上限と、借地証書上限、またその2つの価格が設定されます。
Command Line 670 is Peak Region Stock and Peak Capital Stock,And Too Setting Price.
行番号680と、690は、CSV(項、条項)を月日と、絶対値を比較します。「0」以上であるか、「0」以下であるか、また、1から12の範囲内であるかを調べて、異なる場合に、ラベル”Start”に逆戻りします。この点で、入力は、初期の地点に戻りやり直しです。前は、そのまま進めましたが、不正な値の格納を検査し、合格は00通過できます。
行番号700は、地方上限以下の判定の場合、CSV(単価)で割り、CSV(最初の予算額の1割)最初の1年目のCSV(開始月)の回数で掛け、結果を比較します。2月から始まれば、等倍の予算高を10割となります。比較は、今の結果に対して、借地上限に、借地費用を掛け、利率で割ります。それに加え、地方上限に借地費用を掛け、利率で割った場合、その時、真であればiResultは「1」と等しい、偽であればiResultは「2」と等しい。

行番号700は、インプット(入力と格納)によって、に動的に変動する入力(タイプ)に於いて、CSVが何時変更されても、数値を求めることが出来るCSV二次元配列から計算式を使っていくことは、CUIのビジュアル化に於いて、静的変数(コンストラクションバリアブル)のラベリングを行うことが重要であり、あるソースコードの位置から採取される固定式の変数データ(静的変数)の定義がオブジェクト指向に最も重要であり、動的変数を使った、CSVは、オブジェクト指向化にはあまり重要ではない。また、参照を行わないので、リンクバリアブル(アッパー記号などで扱われる連動リンキング変数)とも異なる。主に、静的にする利点は、最初の入力情報が固定化されて、いつも同じ数値を引き出せる利点が在る。この点をオブジェクト指向の課題と捉えよう。これからオブジェクト指向で求められていく要点は、方程式のように実数を持たない組織系列であり、全ての数値の位、全ての文字列の位を静的変数に変更していくことを求められていく。
行番号700は、CSV(最初の予算額)÷10÷CSV(レーティング)それのCSV(結果)<( CSV(地方券上限個数)×地方券価格÷為替レート+(借地券最大個数×借地券価格÷10÷CSV(為替レート)) )と成れば、地方、借地、レート=<CSV(結果)であれば、比較は、真となり、iResult=1とし、CSV(結果)=<地方、借地、レートであれば結果は偽となり終了する、iResult=2とする。
行番号710は、この点で開始月を定義します。静的変数(STARTMOUNTH)に始めの値を格納します。CSV(最初の予算額)×13月−CSV(開始月)>=1、CSV(開始月)<=12ならば、CSV(最初の予算額)×(13月−CSV(開始月)÷10(一月分とする)÷CSV(レーティング)の結果をSTARTMOUNTHの静的変数とする。
行番号720は、CSV(最初の予算額)÷10(初期入力した資産の一月を求めるため、1割とする)をCSV(結果)を初年度経理と利率として、画面に表示します。
行番号730は、For(ステートメント)により、積算をします。動的変数「i」にCSV(初年月)から「i」年末のファーストイアーを、結果「1」静的変数ADD1==(CSV(初期予算)÷10÷CSV(利率))とし、結果「2」は、CSV(初期予算)+(結果「1」×(動的変数「i」+1−CSV(開始月))とする。NEXTをもってI++(I=I+1)を次の条件I=<12と、I=>1を満たすものとする。
番号750は、740の「BeginTotal」再定義します。BeginTotal==CSV(初期予算)+(変数ADD1{730行を参照}×(13月−CSV(開始月))と変更する。此の更新で先の代入を不要済みとする。
行番号760は、SubTotal=<999999の比較として此の条件は、満たす場合は、eResult==0とする。その場合、画面に「Out of Account」と表示する。100万未満を無効とし、ELSEにて分岐し、
SubTotal=<20000000と比較し、真であればeResult==1とし、画面にBeginTotalの結果と、中小企業年金と、BeginTotalは、補充されたという画面に表示します。
行番号760は、一月の収入変数ADD1と、開始年合算変数BEGINTOALを表示します。
行番号770は、汎用カウンタCOUNTITが0から始まり、一年目のCSV(開始月)までをForステートメントで積算します。一月あがる毎にCOUNTITが繰り上がります。汎用配列変数2ACOUNTIT(期間,年)==CSV(最初の予算額)+CSV(最初の予算額)÷10×汎用変数COUNTITと公式となり、一月あがる毎に、最初の予算額の10分の一が加算される。NEXTステートメントで、Forステートメントを閉じます。
行番号780は、ここでは、終期の年変数CLOSEYEAR(期間年)==最初の合算として始めます。
行番号790は、飛び越すラベル*RESTARTYEARです。
行番号800は、カウンタYEARS<CSV(売り掛けする年数)を満たすとき(年のカウンタが、推定期間を超えないとき)、またその時0だったYEARSをYEARS++==YEARS=0+YEARS+1となり、YEARSが1づつ一年で増えます。ELSEステートメントにて、指定した推定期間を新規カウンタYEARSが上回る場合は、次のラベル*SKIP1に移動します。
行番号810静的変数 最大の地方指数MAXREGIONEXPARENTは、CSV(地方最大値)を、静的変数 最大の都市指数はMAXCITYEXPARENT、CSV(借地最大値)とし、静的変数に登録します。それによって、いつもCSV(指定番号)を使わないで、4条項と、5条項を使用できます。また、新しい代入を受け入れないことで、保護化を図ります。
行番号820は、中小企業年金費用 EnterPriseCost==20000000とし、60000000以上あれば、地方指数を清算します。ENTERPRISECOSTは、2千万と等しい。静的変数 指数費用は、EXPARENTCOST÷1000000とし、1D−006とは、1桁から、更に6桁差し引くので即ち百万で1指数 静的変数 EXPARENTCOSTとする。因って指数は、20となる。
行番号830は、地方費用<初期予算の場合(正しくは、初期予算>地方費用も同じ)、カウンタ地方指数==小数点切捨て(開始予算÷地方費用)と成る。この点で、開始予算が、地方予算を優越している分の整数値の静的変数 初期予算において、幾つ地方費用を払えるかを求めます。これを、カウンタCOUNTREGIONに格納します。初期予算から最初から購入できる上限まで差し引いたカウンタの数を求めます。
行番号840は、静的変数 開始予算BIGINTOTALを、上限地方費用×地方費用が初期予算<(上限値×地方費用)である公式の場合、決済可能額の範囲内であれば、カウンタ COUNTREGION==MAXREGION、つまり、地方費用のカウンタ指数は、上限と等しい。
行番号850は、BEGINTOTAL>(MAXREGION×COSTREGION)+(MAXHIGHCITY×COSTHIGHCITY)の静的変数の関係演算と、比較は、開始費用>地方指数費用合算+都市指数費用合算となり、全ての土地株指数が初期予算が上回る場合、その時、カウンタ COUNTCITY==MAXHIGHCITY,COUNTREGION==MAXREGIONとなり、差し引いても、余りがあれば、始めに宣言した静的変数 MAXREGIONとMAXHIGHCITYと同等として、超える場合は、最大値を詰めます。
行番号860は、初期予算>(地方指数×費用)を満たしている場合、地方支払いは無いものとし、カウンタ COUNTCITY==小数点切捨て(初期予算−(上限指数×費用)÷費用都市として此の公式は、COUNTCITY==(COSTREGION×MAXREGION)÷COSTHIGHCITYの静的変数による求めです。この点で、初期費用が、地方を上回る場合にカウンタCOUNTCITYに地方費用に追加した形で、都市指数を、上限を下回る形でカウンタにその指数の合算を格納します。
行番号870は、今現在のカウンタ 地方指数>上限都市として、静的変数は、 COUNTCITY>MAXCITY とし、その条件が満たすとき、またその時、カウンタ COUNTCITY==MAXCITY、カウンタ格納指数は、都市上限指数に等しいとする。
行番号880は、初期合算>((上限地方×費用)+(上限都市×費用))を二回満たす場合、その時、剰余資産==初期費用−((上限地方×費用)+(上限都市×費用))として、剰余資産の余りを求める。SURPLUS==BIGINTOTAL−(MAXREGION×COSTREGION)+(MAXCITY×COSTHIGHCITY)と静的変数の保護値同士を求める。
行番号890は、地方、都市の合算の指数を表示する。地方は、30倍、都市は50倍である。カウンタのないものは0とする。
行番号900は、空文字列 LISTEN$にキー入力を格納します。いかなる値も問いません。また後段に、ADDMOUNTH==CSV(Page,1)をして静的変数として主に呼び出しを目的とした形で代入します。
行番号910は、初期予算が、20指数以上である場合のフラグ OVERENTERPRISE==1とし、20以下を0とします。
行番号920は、地方証書の数と、都市証書の数をカウンタで個別に数字ランクを表示します。都市は、1億のコスト、地方は、6千万のコストで、今現在、採算より得られた、枚数を表示します。






*************
TopicMaster

100 REM --------------------
110 REM Programing by Dai Fukuoka TopicMaster (C)2017.04.17-5.19(FRI)
120 REM Development Soft by Dennougumi(C)電脳組
130 REM --------------------
140 CONSOLE 0,25,0,1:SCREEN 3,0,0,1:COLOR 0,7,0,0,1:WIDTH 80,25:CLS 3:PAGE=1
150 DIM CSV$(9999,11):DIM CSV(9999,11):DIM METHOD$(9999,11):DIM METHOD(9999,11)
160 DIM LOC1(80):DIM LOC2(25):DIM VUID$(9999):DIM CHECKLIST$(999)
170 DIM UPASS$(9999):DIM COMMENTLOG$(999):LET COUNT=1:DIM RESS$(999)
180 IF POINT(639,399)=POINT(639,479) THEN SHOWMODE=1:GOTO *SCREENSKIP
190 FOR I=1 TO 9999:VUID$(I)="":UPASS$(I)="":NEXT
200 FOR I=1 TO 999:CHECKLIST$(I)="United":NEXT
210 FOR T=1 TO 80:LOC1(T)=(T*8):NEXT:FOR I=1 TO 25:LOC2(I)=(I*16):NEXT
220 LINE(LOC1(0),LOC2(0))-(LOC1(80),LOC2(1)),1,BF
230 LINE(LOC1(0),LOC2(2))-(LOC1(80),LOC2(22)),1,BF
240 LINE(LOC1(0),LOC2(24))-(LOC1(80),LOC2(25)),1,BF
250 LINE(LOC1(7),LOC2(2))-(LOC1(7),LOC2(22)),6
260 LINE(LOC1(14),LOC2(2))-(LOC1(14),LOC2(22)),6
270 LINE(LOC1(19),LOC2(2))-(LOC1(19),LOC2(22)),6
280 GOTO *STANDBY
290 *SCREENSKIP
300 FOR T=1 TO 80:LOC1(T)=(T*8):NEXT:FOR I=1 TO 25:LOC2(I)=(I*19):NEXT
310 LINE(LOC1(0),LOC2(0))-(LOC1(80),LOC2(1)),1,BF
320 LINE(LOC1(0),LOC2(2))-(LOC1(80),LOC2(22)),1,BF
330 LINE(LOC1(0),LOC2(24))-(LOC1(80),LOC2(25)),1,BF
340 LINE(LOC1(7),LOC2(2))-(LOC1(7),LOC2(22)),6
350 LINE(LOC1(14),LOC2(2))-(LOC1(14),LOC2(22)),6
360 LINE(LOC1(19),LOC2(2))-(LOC1(19),LOC2(22)),6
370 GOTO *STANDBY
380 *SYSTEMUP
390 LOCATE 0,22:INPUT "Mode:1.Certifacation Account/2.Administrator Login/3.Registry(1-3) :",MODE1:CLS:IF MODE1<1 OR MODE1>3 THEN *SYSTEMUP
400 IF MODE1=1 THEN *M1 ELSE IF MODE1=2 THEN *M2 ELSE *M3
410 *M1 LOCATE 0,22:INPUT "User Account Identify (6 Count) :",UID$:CLS
420 FOR CHECK=1 TO 9999:IF UID$=VUID$(CHECK) THEN CHECKED=CHECK:CHECK=9999
430 NEXT CHECK:CLS:IF CHECKED=0 THEN *SYSTEMUP
440 IF MODE1=1 THEN LOCATE 0,22:INPUT "User's Pass Word (6 Count) :",IPASS$:CLS
450 IF LEN(IPASS$)=6 OR LEN(IPASS$)=5 THEN LFLAG=1 ELSE *SYSTEMUP
460 FOR CHECK=1 TO 9999:IF UID$=VUID$(CHECK) THEN CHECKED=CHECK
470 NEXT CHECK
480 IF IPASS$=UPASS$(CHECKED) THEN LOGON=1
490 IF LOGON=1 THEN LOCATE 0,22:INPUT "Your Enter Topic Accept Login :",A:COUNT=COUNT+1:CLS:GOTO *START ELSE LOCATE 0,22:MODE1=3:GOTO *M3
500 *M3 LOCATE 0,22:INPUT"Registry Mode:1.New Sign In/2.Delete Account/3.Support (1-3) :",REG:CLS:IF REG<1 OR REG>3 THEN *SYSTEMUP
510 IF REG=2 THEN LOCATE 0,22:INPUT "Thread Number (1-999) :",THREAD:CLS:IF THREAD<1 OR THREAD>999 THEN *SYSTEMUP
520 IF REG=2 AND NOT UID$=VUID$(THREAD) THEN LOCATE 0,22:INPUT "Missing Account ID Name's :",A:GOTO *SYSTEMUP
530 IF REG<1 OR REG>3 THEN *SYSTEMUP
540 IF REG=2 THEN LOCATE 0,22:INPUT "Usre's Pass Word (6 count) :",UPASS$(COUNT):IF NOT LEN(UPASS$)=6 THEN *SYSTEMUP
550 IF REG=1 THEN LOCATE 0,22:INPUT "Create Your Thread ID (6 Count ID Word) :",UID$:GOTO *PASSWORDREMIND ELSE *START
560 LOCATE 0,22:INPUT "Success :",A:GOTO *START
570 *M2 LOCATE 0,22:INPUT"Oparator Login:1.TopicMasterAccount/2.ChangeAccount/3.Threade Delete (1-3) :",ADAC:CLS
580 IF ADAC<1 OR ADAC>3 THEN *SYSTEMUP
590 IF ADAC=3 THEN LOCATE 0,22:INPUT "Thread Number (1-999) :",DT1:CLS:IF DT1<1 OR DT1>999 THEN *SYSTEMUP
600 IF ADAC=3 THEN LOCATE 0,22:INPUT "Administrator Pass Word :",ADPS$:CLS:IF NOT LEN(ADPS$)=19 THEN *SYSTEMUP
610 FOR CHECK=1 TO 9999:IF ADPS$=UPASS$(CHECK) THEN CHECKED=CHECK:UID$=VUID$(CHECKED)
620 NEXT CHECK
630 IF ADAC=2 THEN LOCATE 0,22:INPUT "Administrator Old PassWord :",OPASS$:CLS:IF NOT LEN(OPASS$)=19 THEN *SYSTEMUP
640 IF ADAC=2 THEN LOCATE 0,22:INPUT "New Changing Administorator PassWord (4-4-4-4) :",NCAP$:CLS
650 IF ADAC=2 THEN IF NOT LEN(NCAP$)=19 THEN *SYSTEMUP
660 IF ADAC=2 THEN LOCATE 0,22:INPUT "Changed Success :",A:IDFLAG=1:GOTO *START
670 IF ADAC=1 THEN LOCATE 0,22:INPUT "Topic Master Login :",LOGINTM$
680 IF ADAC=1 AND LEN(LOGINTM$)=19 THEN IF ADPS$=LOGINTM$ THEN *CERTIFIAD
690 END IF
700 *PASSWORDREMIND
710 FOR CHECK=1 TO 9999:IF NOT VUID$(CHECK)="" AND UPASS$(CHECK)="" THEN VUID$(CHECK)=""
720 NEXT CHECK:
730 AA$=MID$(TIME$,1,2):BB$=MID$(TIME$,4,2):CC$=MID$(TIME$,7,2)
740 AA=VAL(AA$):BB=VAL(BB$):CC=VAL(CC$):AA=AA*10000:BB=BB*100:CC=CC*1:
750 LOCATE 0,0:PRINT AA+BB+CC
760 IPASS$=MID$(STR$(AA+BB+CC),2,6):IF UPASS$(CHECKED)=IPASS$ THEN VUIDA$(CHECKED)="":GOTO *PASSWORDREMIND
770 IF CHECK>9999 THEN CLS:LOCATE 0,22:PRINT IPASS$;:INPUT " Check Remarks Your ID's PassWord :",A:UPASS$(COUNT)=IPASS$:CHECKLIST$(COUNT)=UID$:VUID$(COUNT)=UID$
780 FOR I=1 TO 9999:IF UPASS$(I)="" THEN VUID$(I)=""
790 NEXT I
800 IF COUNT<1000 THEN *START
810 FOR CHECK=2 TO 999:CHECKLIST$(CHECK-1)=CHECKLIST$(CHECK):COMMENTLOG$(CHECK-1)=COMMENTLOG$(CHECK)
820 CHECKLIST$(999)=UID$:COMMENTLOG$(999)="":NEXT CHECK:CLS:LOCATE 0,22:INPUT "That ID Inserted :",A:GOTO *SYSTEMUP
830 *START CLS
840 FOR I=1+SHOWCOUNT TO 20+SHOWCOUNT:LOCATE 0,I+1:PRINT VUID$(I):LOCATE 7,I+1:PRINT RESS$(I);:LOCATE 14,I+1:PRINT I;:LOCATE 20:PRINT COMMENTLOG$(I)
850 NEXT
860 LOCATE 0,22:PRINT "Your Enter Login":LET TC=1
870 *TIMEBK WHILE TC<2 :TIMED$=TIME$
880 IF NOT TIMED$=TIME$ THEN TC=TC+1
890 WEND:LOCATE 0,22:PRINT SPACE$(79)
900 *TIMESKIP
910 *SHOWDISPLAY
920 IF TURNPOINT=0 THEN TURNPOINT=1
930 FOR I=1 TO 20:LOCATE 0,I+1:PRINT VUID$(I+SHOWCOUNT):LOCATE 7,I+1:PRINT RESS$(I+SHOWCOUNT);:LOCATE 14,I+1:PRINT I+SHOWCOUNT;:LOCATE 20:PRINT COMMENTLOG$(I+SHOWCOUNT)
940 NEXT
950 IF TURNPOINT=1 THEN ELSE IF TURNPOINT=2 THEN ELSE *RESSLOOP
960 *RESSLOOP
970 LOCATE 0,0:PRINT "Write Your Comment :":LOCATE 0,1:INPUT "",COMM$
980 IF COMM$="" THEN *RESSLOOP
990 LOCATE 0,0:PRINT SPACE$(79):LOCATE 0,1:PRINT SPACE$(79)
1000 LOCATE 0,0:PRINT "Response Thread ID /Pass is My Thread :":LOCATE 0,1:INPUT "",RESST$
1010 LOCATE 0,0:PRINT SPACE$(79):LOCATE 0,1:PRINT SPACE$(79)
1020 LOCATE 0,0:PRINT "Log Out User 0:No/1:Yes :":LOCATE 0,1:INPUT "",LOGOUTIS$
1030 LOCATE 0,0:PRINT SPACE$(79):LOCATE 0,1:PRINT SPACE$(79)
1040 IF COMM$="" OR LEN(COMM$)>=59 THEN *RESSLOOP
1050 COMMENTLOG$(COUNT)=COMM$:RESS$(COUNT)=RESST$
1060 IF RESST$="" THEN RESST$=UID$
1070 IF RESS$(COUNT)="" THEN RESS$(COUNT)=UID$
1080 IF LOGOUTIS$="" THEN ELSE IF LOGOUTIS$="1" THEN TURNPOINT=2:GOTO *LOGOUT
1090 FOR CHECK=1 TO 999:IF RESST$=RESS$(CHECK) THEN CHECKED=CHECK:CHECK=999
1100 NEXT CHECK:IF NOT RESST$=RESS$(CHECKED) THEN *RESSLOOP
1110 VUID$(COUNT)=UID$:COMMENTLOG$(COUNT)=COMM$:RESS$(COUNT)=RESST$
1120 IF PAGECOUNT=0 THEN PAGECOUNT=1
1130 IF COUNT>20*PAGECOUNT THEN PAGECOUNT=PAGECOUNT+1:SHOWCOUNT=(PAGECOUNT*20)-20:CLS
1140 COUNT=COUNT+1:GOTO *SHOWDISPLAY
1150 *STANDBY
1160 IF ADPS$="" THEN ADPS$="7750-2310-9690-1255"
1170 OPEN "TMLOG" AS 1:LFLAG=EOF(1):CLOSE 1:IF LFLAG=0 THEN *SYSTEMUP
1180 OPEN "TMLOG" FOR INPUT AS #1:FOR I=1 TO 999:INPUT #1,COMMENTLOG$(I),CHECKLIST(I),RESS$(I):NEXT:CLOSE #1
1190 OPEN "TMDATA" FOR INPUT AS #1:FOR I=1 TO 9999:INPUT #1,VUID$(I),UPASS$(I):NEXT:CLOSE #1
1200 OPEN "TMSEC" FOR INPUT AS #1:INPUT #1,ADPS$,UID$,IPASS$,RESST$,SHOWCOUNT,PAGECOUNT:CLOSE #1
1210 IF ADPS$="" THEN ADPS$="7750-2310-9690-1255"
1220 GOTO *SYSTEMUP
1230 *LOGOUT
1240 COUNT=COUNT+1
1250 IF TURNPOINT=0 THEN *SYSTEMUP
1260 IF ADPS$="" THEN ADPS$="7750-2310-9690-1255"
1270 OPEN "TMLOG" AS 2:LFLAG=EOF(2):CLOSE 2
1280 OPEN "TMLOG" FOR OUTPUT AS #2:FOR I=1 TO 999:WRITE #2,COMMENTLOG$(I),CHECKLIST$(I),RESS$(I):NEXT:CLOSE #2
1290 OPEN "TMDATA" FOR OUTPUT AS #2:FOR I=1 TO 9999:WRITE #2,VUID$(I),UPASS$(I):NEXT:CLOSE #2
1300 OPEN "TMSEC" FOR OUTPUT AS #2:WRITE #2,ADPS$,UID$,IPASS$,RESST$,SHOWCOUNT,PAGECOUNT:CLOSE #2
1310 IF TURNPOINT=2 THEN *STANDBY ELSE END
1320 *CERTIFIAD
1330 LOCATE 0,22:INPUT "Menu 1.RestoreData 2.DocumentCopy 3.ReTurn :",AD01$:CLS
1340 IF AD01$="1" THEN *SHOWDISPLAY ELSE IF AD01$="2" THEN *DOCUMENTCOPY ELSE *SYSTEMUP
1350 *DOCUMENTCOPY LOCATE 0,22:INPUT "Type Txt Import Okay ?:",ASKIT1$:CLS
1360 LOCATE 0,22:INPUT "Change FileName / Pass is Accept :",ASKIT2$:CLS
1370 IF ASKIT2$="" THEN *OPERATOR ELSE *NEWFILENAMEADD1
1380 *OPERATOR
1390 OPEN "TMLOG.txt" AS 2:ENDOFFILES=EOF(2):CLOSE 2
1400 OPEN "TMLOG.txt" FOR OUTPUT AS #2:FOR I=1 TO 999:WRITE #2,COMMENTLOG$(I),CHECKLIST$(I),RESS$(I):NEXT:CLOSE #2
1410 OPEN "TMDATA.txt" FOR OUTPUT AS #2:FOR I=1 TO 9999:WRITE #2,VUID$(I),UPASS$(I):NEXT:CLOSE #2
1420 OPEN "TMSEC.txt" FOR OUTPUT AS #2:WRITE #2,ADPS$,UID$,IPASS$,RESST$,SHOWCOUNT,PAGECOUNT:CLOSE #2
1430 GOTO *SYSTEMUP
1440 *NEWFILENAMEADD1
1450 CFN$=ASKIT2$+"LOG.txt"
1460 OPEN CFN$ AS 2:ENDOFFILES=EOF(2):CLOSE 2
1470 OPEN CFN$ FOR OUTPUT AS #2:FOR I=1 TO 999:WRITE #2,COMMENTLOG$(I),CHECKLIST$(I),RESS$(I):NEXT:CLOSE #2
1480 CFN$=ASKIT2$+"DATA.txt"
1490 OPEN CFN$ FOR OUTPUT AS #2:FOR I=1 TO 9999:WRITE #2,VUID$(I),UPASS$(I):NEXT:CLOSE #2
1500 CFN$=ASKIT2$+"SEC.txt"
1510 OPEN CFN$ FOR OUTPUT AS #2:WRITE #2,ADPS$,UID$,IPASS$,RESST$,SHOWCOUNT,PAGECOUNT:CLOSE #2
1520 GOTO *SYSTEMUP

ロケーション関数をグラフィック座標で、カラムとラインの位置を、調整します。それによって、変数に文字幅が格納され、仮想関数を実現します。おもに、罫線の作成に使われる仮想関数です。その後の物も、時刻から自働でパスワードを振り分けたり、シンクロ座標から、空白のパスワードのIDを詰めて、ログインした回数で自働名簿を行います。また、番号を指定して該当順のメッセージレスポンスに対して、パスワードの入力と、記事の削除の機能の付加や、同じパスワードにログインする機能、ログイン時に、2秒経過すると、エントリー出来るように改良したりしました。主にこのソフトは、基本的なシーケンシャルを備えている他、メッセージログを溜めることと出力することが出来ます。主に食指を、サービス機関に設置されたコンピュータ上で、98Basicで動作します。空港等に配置することにより、インターネット感覚でオフラインコミュニケーションを実現します。

This is Using Virtual Function " LOC1 " And "LOC2 " is Automation Adjustment Coordination at Column And Line Inputing.Line-Out with on Drawing Virtual Function of Location Program,Next ITEM is Time-Pass-Word-Remind with No Synchronize List,This List is Delete Spacing Login Information,Slead Number Appointment Pass-Word Check It,Inquiry Same Pass-Word Gatein Delete Execution.This Program is Entery Same Time Wait 2 Second Times,Type Log is Entry Start.This Interface CSV Data Base is Standard 98 Basic Activity,Target User Service Area Examin Air Port and Install With 98Basic,This Program is Feeling of Internet Communication Compleate Offline BBS.


***********************
dwage

100 REM --------------------
110 REM CopyRight Programing by.Dai Fukuoka 2017-10-11
120 REM RemainAndWage / PlatForm Service of Dennougumi
130 REM --------------------
140 CONSOLE 0,2,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,7,2:CLS 3
150 IF POINT(639,479)=POINT(639,399) THEN SHOWVIEW=1 ELSE SHOWVIEW=-1
160 DIM CSV(9999,13):DIM MASK(9999,13):DIM CSV$(9999,13):DIM FLAG(9999)
170 DIM METHODHORIZONTAL(80):DIM METHODVERTICAL(25):DIM FLAG$(9999)
180 DIM DEEPHORIZONTAL(80):DIM DEEPVERTICAL(25)
190 DIM CHANGESORT(9999,13):DIM CHANGESORT$(9999,13)
200 DIM MAPINGNOW(640,480):LET EXPONENT=0:LET I=0:LET T=0:LET X=0:LET Y=0
210 DIM JOBNUM(9999):DIM JOB$(999,370):DIM WAGE(999,370):DIM PAY(999,370)
220 DIM NAMENUM$(9999):DIM TIMEWAGE(999,370):DIM REMAIN(999,370)
230 DIM RESON$(999,370):DIM REPORT$(999,370):DIM RESULTLEVEL$(999,370)
240 DIM TOTALREMAIN(999,370):DIM TOTALWAGE(999,370):DIM TOTALDAY(999,370)
250 DIM DATEYY$(999,370):DIM YYCOUNT(999):DIM STARTYY(999)
260 DIM PROFILE$(999,10):DIM ISTATUS(999,10):DIM COMMENT$(999,10)
270 GOTO *STARTUP
280 *START
290 IF OPERATOR=1 THEN *EMPLOYED
300 *AVOID IF OPERATOR=1 THEN PRINT "面接の受付は複数同時に受付できません。最終のものから優先して受付を致します。"
310 PRINT "現在の電算機の時刻は次です。";DATE$;" ";TIME$
320 INPUT "被雇用者氏名番号を指定してください:",JOBNUM:IF NOT NAMENUM$(JOBNUM)="" THEN GETON=1
330 IF GETON=1 THEN GETON=0:GOTO *STARTSEC
340 *TOPICS GETNUM=0:FOR I=1 TO 999:IF NAMENUM$(I)=NAMENUM$(JOBNUM) AND NOT NAMENUM$(JOBNUM)="" THEN GETNUM=I:I=999
350 NEXT:IF NAMENUM$(JOBNUM)="" THEN INPUT "登録されていない従業情報です。(0:終了,1:登録):",SIGNINLOG
360 IF SIGNINLOG=1 THEN *ACCEPTINQUIRY ELSE *START
370 *STARTSEC
380 PRINT "使用者の雇用している氏名は";NAMENUM$(JOBNUM);"です。"
390 STARTYY=1
400 IF NOT DATEYY$(JOBNUM,TARM)=DATE$ THEN LET YY=VAL(LEFT$(DATE$,2))
410 IF VAL(LEFT$(DATE$,2))<STARTYY(JOBNUM) THEN YYCOUNT(JOBNUM)=VAL(LEFT$(DATE$,2))+STARTYY(JOBNUM)-100:PRINT "100年の繰越があります。",A
420 TOTALWAGE(JOBNUM,1)=361:TARM=YYCOUNT(JOBMUM)
430 IF DATEYY$(JOBNUM,TARM)="" THEN DATEYY$(JOBNUM,TARM)=DATE$:PRINT "雇用開始年度は";DATEYY$(JOBNUM,TARM);"です。":STARTYY=VAL(LEFT$(DATE$,2))
440 INPUT "選択してください 0:出勤,1:早退,2:退勤,3:残業,4:休日出勤,5:有給休暇:",EVENTCONTROL
450 IF EVENTCONTROL=0 THEN *WORKSTART ELSE IF EVENTCONTROL=1 THEN *ESCAPEIS ELSE IF EVENTCONTROL=2 THEN *RETURNHOME
460 IF EVENTCONTROL=3 THEN *REMAIN ELSE IF EVENTCONTROL=4 THEN *VACATIONWORK ELSE IF EVENTCONTROL=5 THEN *PAYVACATION
470 END
480 *REMAIN
490 PRINT "残業の目安は、2週間土日休みで、週5日間、2週で、5日間時間外労働を2時間こなせます。残業理由には、人間関係や、職場の都合に左右されることがあります。"
500 PRINT "通常就業時間は、8時間のものと、6時間のものが通常です。"
510 INPUT "残業時間を入力してください。(0:1時間,1:2時間,2:3時間,3:4時間以上,4:協定外労働):",REMAINDUTY
520 IF NOT DATEYY$(JOBNUM,TARM)=DATE$ THEN TOTALREMAIN(JOBNUM,1)=0:TOTALWAGE(JOBNUM,1)=0:TOTALDAY(JOBNUM,1)=0:DATEYY$=DATE$
530 IF TOTALWAGE(JOBNUM,1)>360 THEN PRINT "被雇用者は、今年分雇用協定の残業時間が超えていて、やむ得ない場合を除き、残業できません。残業には理由状を添えてください。";TOTALWAGE(JOBNUM,1);"時間残業しました。"
540 IF TOTALWAGE(JOBNUM,1)>360 THEN INPUT "残業理由(半角255文字以内)",RESON$:IF LEN(RESON$)<255 THEN ELSE *REMAIN
550 COMMENT$(JOBNUM,1)=PLAN$:COMMENT$(JOBNUM,2)=ENDCOMM$:COMMENT$(JOBNUM,3)=RESON$
560 ISTATUS(JOBNUM,4)=SLEEP:ISTATUS(JOBNUM,5)=SICK
570 ISTATUS(JOBNUM,1)=LEVEL:ISTATUS(JOBNUM,2)=TROUBLE:ISTATUS(JOBNUM,3)=HEALTH
580 *LISTEN
590 INPUT "作業達成度を評価してください(0:未達成,1:滞る,2:普通,3:ある程度,4:良い):",LEVEL
600 INPUT "人間関係の評価をしてください(0:苛められた,1:叱られた,2:何もなかった,3:褒められた,4:完璧にこなした):",TROUBLE
610 INPUT "終業の反省文を半角255文字以内で入力してください:",ENDCOMM$
620 INPUT "健康状態の評価(0:とても優れない,1:悪い,2:普通,3:やや元気,4:良い):",HEALTH
630 INPUT "睡眠の質(0:かったるい,1:眠い,2:作業に差し支え無い,3:労働可,4:優れる):",SLEEP
640 INPUT "傷病について(0:出勤した,1:薬などを忘れた,2:特に傷病なし,3:介護した,4:治った):",SICK
650 ISTATUS(JOBNUM,1)=LEVEL:ISTATUS(JOBNUM,2)=TROUBLE:ISTATUS(JOBNUM,3)=HEALTH
660 ISTATUS(JOBNUM,4)=SLEEP:ISTATUS(JOBNUM,5)=SICK
670 COMMENT$(JOBNUM,1)=PLAN$:COMMENT$(JOBNUM,2)=ENDCOMM$:COMMENT$(JOBNUM,3)=RESON$
680 GOTO *LOOPOUT
690 *DUTY
700 INPUT "本日の業務目標を半角255文字以内で入力してください",PLAN$
710 INPUT "健康状態の評価(0:とても優れない,1:悪い,2:普通,3:やや元気,4:良い):",HEALTH
720 INPUT "睡眠の質(0:かったるい,1:眠い,2:作業に差し支え無い,3:労働可,4:優れる):",SLEEP
730 INPUT "傷病について(0:出勤した,1:薬などを忘れた,2:特に傷病なし,3:介護した,4:治った):",SICK
740 COMMENT$(GETNUM,1)=PLAN$:COMMENT$(GETNUM,2)=ENDCOMM$:COMMENT$(GETNUM,3)=RESON$
750 ISTATUS(GETNUM,1)=LEVEL:ISTATUS(GETNUM,2)=TROUBLE:ISTATUS(GETNUM,3)=HEALTH
760 ISTATUS(GETNUM,4)=SLEEP:ISTATUS(GETNUM,5)=SICK
770 GOTO *LOOPOUT
780 *ESCAPEIS
790 GOTO *LISTEN:END
800 *WORKSTART
810 GOTO *DUTY
820 *PAYVACATION
830 END
840 *RETURNHOME
850 GOTO *LISTEN:END
860 *VACATIONWORK
870 GOTO *DUTY
880 *ENDJOB
890 CLS 3:END
900 *LOOPOUT
910 IF EVENTCONTROL=0 THEN LOGIN=1:LOGOUT=0:STARTTIME$=TIME$:STARTTIME=VAL(LEFT$(TIME$,2)):INPUT "受付しました。どうぞ気をつけて勤務してください",A:GOTO *WROTE
920 IF EVENTCONTROL=1 OR EVENTCONTROL=2 OR EVENTCONTROL=3 THEN LOGIN=0:LOGOUT=1:ENDTIME$=TIME$:ENDTIME=VAL(LEFT$(TIME$,2)):DUTYTIME=ENDTIME-STARTTIME:PRINT "本日の就業時間は";DUTYTIME;"です。"
930 IF EVENTCONTROL=3 AND DUTYTIME>8 AND NOT STARTTIME=0 THEN PRINT "勤務時間外労働と確認しました。異なる場合は、時間を整してください。":PRINT "超過時間は";DUTYTIME-8;"です。"OK
940 GOTO *WROTE
950 *WROTE
960 OFN$="TagWage.txt":OPEN OFN$ AS 1
970 IF EOF(1)=0 THEN ENDOFFILE=-1
980 CLOSE 1
990 OPEN OFN$ FOR OUTPUT AS #1
1000 FOR I=1 TO 999
1010 WRITE #1,NAMENUM$(I),PROFILE$(I,1),PROFILE$(I,2),PROFILE$(I,3),PROFILE$(I,4),PROFILE$(I,5),PROFILE$(I,6),PROFILE$(I,7)
1020 WRITE #1,ISTATUS(I,1),ISTATUS(I,2),ISTATUS(I,3),ISTATUS(I,4),ISTATUS(I,5)
1030 WRITE #1,COMMENT$(I,1),COMMENT$(I,2),COMMENT$(I,3)
1040 NEXT
1050 CLOSE #1
1060 OPEN LEFT$(DATE$,2)+MID$(DATE$,4,2)+RIGHT$(DATE$,2)+".txt" FOR OUTPUT AS #1
1070 FOR I=1 TO 999
1080 WRITE #1,NAMENUM$(I),PROFILE$(I,1),PROFILE$(I,2),PROFILE$(I,3),PROFILE$(I,4),PROFILE$(I,5),PROFILE$(I,6),PROFILE$(I,7)
1090 WRITE #1,ISTATUS(I,1),ISTATUS(I,2),ISTATUS(I,3),ISTATUS(I,4),ISTATUS(I,5)
1100 WRITE #1,COMMENT$(I,1),COMMENT$(I,2),COMMENT$(I,3)
1110 NEXT
1120 CLOSE #1
1130 GOTO *START
1140 *SIGNUP
1150 *ACCEPTINQUIRY
1160 OPERATOR=1:PRINT "面接希望の申請を受け付けました。履歴を入力してください。"
1170 INPUT "名前:",NAMES$:INPUT "住所:",ADDRESS$:INPUT "電話番号:",TEL$
1180 INPUT "最終学歴(通信制を除く):",SCHOOL$:INPUT "卒業年度:",GURADUATION$
1190 INPUT "関係資格:",LISENCES$:INPUT "希望職位:",HOPE$:INQUIRYDATE$=DATE$
1200 NAMENUM$(JOBNUM)=NAMES$:PROFILE$(JOBNUM,1)=ADDRESS$:PROFILE$(JOBNUM,2)=TEL$:PROFILE$(JOBNUM,3)=SCHOOL$
1210 PROFILE$(JOBNUM,4)=GURADUATION$:PROFILE$(JOBNUM,5)=LISENCE$:PROFILE$(JOBNUM,6)=HOPE$:PROFILE$(JOBNUM,7)=INQUIRYDATE$
1220 OFN$="TagWage.txt"
1230 *WROTEINQUIRY
1240 *IDINPUT
1250 PRINT NAMES$;ADDRESS$;TEL$;SCHOOL$;GURADUATION$;LISENCES$;HOPE$;INQUIRYDATE$
1260 IF EMPLOYID=0 THEN *LOOKAT ELSE *START
1270 *LOOKAT
1280 FOR I=1 TO 999:IF NOT NAMES$=NAMENUM$(I) THEN PRINT "同じ名前があります。":GOTO *START
1290 NEXT
1300 NAMENUM$(GETNUM)=NAMES$:GOTO *START
1310 *EMPLOYED
1320 INPUT "0:人事以外,1:人事責任者:",REPLYEMPLOY
1330 IF REPLYEMPLOY=0 THEN *AVOID
1340 IF REPLYEMPLOY=1 THEN INPUT "オペレーターナンバー:",OPNUM$
1350 IF OPNUM$="1-1-1-1" THEN ELSE *EMP
1360 PRINT "面接申請の受付がありました。係員が確認します。"
1370 FOR I=2 TO 1000:IF NAMENUM$(I)="" THEN GETNUM=I-1:I=1000
1380 NEXT
1390 PRINT "申請日付は";INQUIRYDATE$;"です。確認するには、パスワードを入力してください。登録番号は、";GETNUM;"です。氏名は";NAMES$;"です。"
1400 *EMP
1410 INPUT "アイデンティティと、パスワードを付与を許可しますか?(0:許可,1:却下):",EMPLOYID
1420 IF EMPLOYID=1 THEN *START
1430 IF EMPLOYID=0 THEN OPERATOR=0:NAMENUM$(GETNUM)=NAMES$:GOTO *LOOKAT
1440 *ENTERGROUP
1450 GOTO *START
1460 *STARTUP
1470 OPEN "TagWage.txt" FOR INPUT AS #2
1480 FOR I=1 TO 999
1490 INPUT #2,NAMENUM$(I),PROFILE$(I,1),PROFILE$(I,2),PROFILE$(I,3),PROFILE$(I,4),PROFILE$(I,5),PROFILE$(I,6),PROFILE$(I,7)
1500 INPUT #2,ISTATUS(I,1),ISTATUS(I,2),ISTATUS(I,3),ISTATUS(I,4),ISTATUS(I,5)
1510 INPUT #2,COMMENT$(I,1),COMMENT$(I,2),COMMENT$(I,3)
1520 NEXT
1530 CLOSE #2
1540 GOTO *START





少し長めのソースのコードのソフトです。ホストコンピュータに、全社員が一斉に、雇用状況を一つのコンピュータにアクセスし、就業状態のデーターベースを一括してまとめます。98ベーシックが一つしか必要ないなど利点があり、NEC PC−9801でも互換しますが、一台の状況があれば、不特定多数が、データーベースに集約され、機能をするほか、結果をCSV形式で出力します。CSVをメモ帳(NotePad)でアクセスすることで参照します。雇用状況が全員のものが、一台でトラブル状況、作業効率、作業態度などを自主報告させ、また、新規の人は、オペレーターが入会を許可すれば、入れます。登録に登記すると、他の人と同じように、ストレス、人間関係、目標達成感など雇用を基本的に鑑定します。これを自主報告に基づくもので、何かがあれば即座に報告されることが出来ます。本プログラムは、比較的リスクの少ないプログラムですが、ソースコードが少し長いです。




********************
Annuity Addition

100 REM --------------------
110 REM CopyRight Programing by.Dai Fukuoka 2017-12-16
120 REM Annuity Addition/ PlatForm Service of Dennougumi
130 REM --------------------
140 CONSOLE 0,2,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,7,2:CLS 3
150 IF POINT(639,479)=POINT(639,399) THEN SHOWVIEW=1 ELSE SHOWVIEW=-1
160 DIM ADDMOUNTH(9999):DIM TOTALYEAR(9999):DIM SEASON(9999)
170 DIM RESULT(9999):DIM TOTAL(9999,10):DIM METHOD(9999):DIM NAMES$(999)
180 DIM COMMANDS$(9999):DIM RABEL$(9999):DIM PHONE$(999):DIM ADDRESS$(999)
190 *START
200 LOCATE 0,0:PRINT "一年変わらない自分の物の年金を名義積み立てにて、長期積み立てプランを簡単に合計金額を簡易審査します。方法は、四半期料、月額料、年間料の3種類が有ります。"
210 LOCATE 0,3:PRINT "Year Addition Cost Mine Annuity on My Name and Method Type is Year Add or Season Add or Mounth Add Choice Annuity Planing with Add Total Costing,This is No Change Deposit Total Annuity Sefety Financial.""
220 LOCATE 0,7:PRINT "使用者は、各情報を必要とし、試算を出すのに、情報を入力しなければなりません。試算を出すのに、個人情報は必要有りません。まず、決済の方法が、税控除額で年金が積み立てられていること、本試算は、何年になっても積み立てている金額が変わらないこと、また、何年後に積み立て結果がわかること。最初の金額と、加算金額と、決済期間と、最終確定金額です。"
230 LOCATE 0,13:PRINT "User Must Need Infomation,Sample Method Out Put Be Typing Infomation,After Method is Need less Private Infometion.About is Deposit Type is Subtract Tax with Payed Annuity This Planning,This is Year on Future at Deposit Same Cost Total No Change it,UnderStand After Year by Medtod Result Deposit Annuity,Start Cost For Plan,Addition Cost For Plan,Tarms on Year is End Trams Year Result Total Cost Planed."
240 LOCATE 0,19:INPUT "次項/Next Pages.",A$:CLS
250 *PLANIN CLS
280 LOCATE 0,0:PRINT "開始金額を入力してください1=1円"
290 LOCATE 0,2:INPUT "Start Total Need Infomation with Must Type It,Count 1 is 1 Japan Yen Rating Method(0-10000000)Japan Yen :",PLAN1
300 LOCATE 0,5:PRINT "一回の貯蓄金額の入力です:"
310 LOCATE 0,7:INPUT "This Financial Plan is User Must Reply Once Payed Deposit Cost (1-1000000) Japan Yen :",PLAN2:IF PLAN2=0 THEN *PLANIN
320 LOCATE 0,9:PRINT "決済頻度を入力します。(1)一年、(2)4四半期、(3)毎月"
330 LOCATE 0,11:INPUT "This Planing Term 3 Type Paying Case Can Select 3 Type Deposit Mode (1)Years on/(2)Season on/(3)Mounthly on (1-3) : ",PLAN3:IF PLAN3<1 OR PLAN3>3 THEN *PLANIN
340 LOCATE 0,14:PRINT "何年の合計を求めるか、また、年毎の収支報告を結果を表示します。"
350 LOCATE 0,16:INPUT "Requesting Annuity Deposit on Total Cost with This Method is Must User Terms on Year Financial Plan.This Quest is Total Cost on Year and Behind Terms at Result Accounting Annuity. Years on (1-99) :",PLAN4
360 IF PLAN4<1 OR PLAN4>99 THEN *PLANIN
370 CLS
380 COUNT=0:RESULTIT=PLAN1:FOR I=1 TO PLAN4
390 IF PLAN3=1 THEN RESULTIT=RESULTIT+PLAN2 ELSE IF PLAN3=2 THEN RESULTIT=RESULTIT+(PLAN2*4) ELSE IF PLAN3=3 THEN RESULTIT=RESULTIT+(PLAN2*12)
400 IF COUNT>19 THEN INPUT "Next.",A$:CLS:COUNT=1
410 LOCATE 0,COUNT:PRINT "Years on ";I;" Deposit Result on Annuity";RESULTIT
420 COUNT=COUNT+1:NEXT:INPUT "next.",A$:IF PLAN3=1 THEN PRINT"End.":END
421 CLS:IF PLAN3=2 THEN *TWO ELSE IF PLAN3=3 THEN *THREE
422 *TWO
430 RESULT2=PLAN1:COUNT=0:FOR T=1 TO PLAN4:FOR I=1 TO 4:RESULT2=RESULT2+PLAN2
440 LOCATE 0,COUNT+I-1:PRINT "Years on";T;"Season";I;"Result is:";RESULT2
445 NEXT
450 COUNT=COUNT+4:IF COUNT>20 THEN COUNT=0:INPUT "Next.",A$:CLS
460 NEXT:PRINT"Equivalent Result";RESULT2:PRINT"End.":END
470 *THREE
480 RESULT3=PLAN1:COUNT=0:FOR T=1 TO PLAN4:FOR I=1 TO 12:RESULT3=RESULT3+PLAN2
490 PRINT "Years on";T;"Mounth";I;"Result is:";RESULT3
500 NEXT
510 INPUT "Next.",A$
520 NEXT:PRINT"Equivalent Result";RESULT3:PRINT"End.":END

此のプログラムは、INPUTと、PRINT機能を使った簡単な積算プログラムです。一月、一季節、一年を定額で年金の貯金を数え、それをPLAN関数を変数から構成してつくり、結果を、RESULTIT(その結果)に対して一回ずつ加算していきます。数式は、380行目から始まっており、PLAN1変数をロードすると、PLAN3を1で選択した場合に、RESULTIT==RESULTIT+PLAN2と言うメソッドの関数を実行します。次に、PLAN3に2が変数に代入された場合、RESULTIT関数は、RESULTIT==RESULTIT+(PLAN2変数4倍)を積算関数RESULTITに加算します。また、変数PLAN3に3が代入された場合は、RESULTIT関数に、RESULTIT==RESULTIT+(PLAN2変数12倍)を積算します。COUNT関係関数は、”0”から始まり、19行に関係が達したとき、INPUT入力待ちをし、”NEXT.”を表示します。まず年度別の合計から表示し、またその次に、四半期料と、月額料を表示するシステムになっています。アウトプットは、”Years on”+Iカウンタ+”Deposit Result On Annuity”+RESULTIT積算関数となります。年度別が表示されると、2と3をPLAN3変数にインプットしたものは、更に詳細を表示します。PLAN3が1の場合は、この時点で、”END.”を表示して終了します。RESULT2にPLAN1をロードし、FORステートメントにて、PLAN4変数が終わるまで繰り返します。また、その区切りを、FORステートメントでI変数を、4回実行して、Tが一上がります。表示は、”Years on”+T+”Season”+I+”Result is”+Result2と成ります。NEXTステートメントで、I変数を区切り、次にCOUNTを4加算します。関係関数COUNTは、20を超える場合にCOUNT==0となります。入力待ちINPUTの”Next.”が表示され、エンターを押すと、画面を消去し、T変数のNEXTを閉じます。ENDが宣言され、行番号をブレークします。結果をRESULT2関数をアウトプットのPRINTにて”Equivalent Result”+RESULT2関数とします。*THREEラベルからは同様のことを、RESULT3関数にPLAN1に変数をロードし、FORステートメントで、Tが1から始まり、PLAN4変数に代入された数まで繰り返します。FORステートメントI変数は、1から12ヶ月回数加算を繰り返します。RESULT3積算関数は、PLAN2を一回のFORステートメントにつき、RESULT3の結果に対して、PLAN2と同じ数を加算を繰り返します。FORステートメントI変数が、アウトプットPRINT ”Years on”+T+”Mounth”+I+”Result is”+RESULT3の結果を表示し、NEXTでFORのIを閉じられ、インプットの”Next.”のエンターの後、FORステートメントのT変数が次のNEXTで閉じられます。結果をアウトプット関数PRINTにて、”Equivalent Result”+Result3(の結果)を表示し、”End.”の表示の上、END関数でブレークアウトします。



********************
StockMarketLister Summer Version

100 REM ---------------------
110 REM StockMarketLister Program by Dai Fukuoka 2016.08.09
120 REM (C)電脳組
130 REM ---------------------
140 CONSOLE 0,25,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,0,1:CLS 3
150 DIM CSV$(11,10000):DIM CSV(11,10000):DIM CELL$(11,10000):DIM CELL(11,10000)
160 DIM STAFFNUM(9999):DIM STAFFNUM$(9999):DIM STAFFEXPONENT(9999):DIM STAFFBRUNCH(9999):DIM STAFFLIST(9999):DIM PLAN(9999):DIM PLAN$(9999):DIM SURPLUS(9999)
170 DIM CHEIF(99):DIM LISTED(99):DIM CHECKED(9999):DIM CHECKER(9999)
180 DIM BRUNCH(9999):DIM DATES$(9999):DIM TIMES$(9999):DIM EXPONENT(9999)
190 DIM MONEY$(9999):DIM INCOME(9999):DIM CSV2$(11,9999):DIM CSV2(11,9999)
200 DIM COMPANYNAME$(9999):DIM QUEST$(9999):DIM VERYFIY(11,9999):DIM VERIFIY$(11,9999):DIM TOTALED(9999)
210 *START
220 PRINT "investment type of select count of (1) Standard ,count of (2) Capital ,count of (3) Groupment Commitioner"
230 PRINT "投資形式を選択してください(1)基本投資型(2)資本主義型(3)理事体型 :";:INPUT "",INVEST:IF INVEST=0 THEN INVEST=1
240 IF INVEST=1 THEN CSV$(1,1)="Standard" ELSE IF INVEST=2 THEN CSV$(1,1)="Chapital" ELSE IF INVEST=3 THEN CSV$="Commitioner"
250 PRINT "Type Name at StoreName or CompanyName "
260 PRINT "会社の本店名屋号並びに社名を入力してください :";:INPUT "",COMPANYNAME$(1):IF COMPANYNAME$(1)="" THEN CSV$(2,1)="NoTitle" ELSE CSV$(2,1)=COMPANYNAME$:FOR Y=2 TO 48:COMPANYNAME$(Y)=COMPANYNAME$(1):NEXT
270 PRINT "Branch Industrial or Commerce Type of Count"
280 PRINT "支店の数を入力してください :";:INPUT "",BRUNCHCOUNT:IF BRUNCHCOUNT=0 THEN BRUNCHCOUNT=1:CSV$(3,1)=STR$(BRUNCHCOUNT) ELSE CSV$(3,1)=STR$(BRUNCHCOUNT)
290 PRINT "Country Name or Locate Type of Name"
300 PRINT "国籍並びに所在地を入力してください";:INPUT "",LOCATION$:IF LOCATION$="" THEN CSV$(4,1)="NoPlace" ELSE CSV$(4,1)=LOCATION$
310 PRINT "Type Name Leader Director President or Group President "
320 PRINT "代表取締役社長氏名、並びに、グループ会頭氏名を入力してください :";:INPUT "",LEADERNAME$:IF LEADERNAME$="" THEN CSV$(5,1)="NoName" ELSE CSV$(5,1)=LEADERNAME$
330 PRINT "Brunch Trade at the Root Number President or [(1)BrunchClub(2)Judiciary(3)Registor]
340 PRINT "支店の枝の数を入力してください(1-3) :";:INPUT "",BRUNCHROOT:IF BRUNCHROOT=0 THEN CSV$(6,1)=STR$(1)+"BrunchNumber" ELSE CSV$(6,1)=STR$(BRUNCHROOT)+"Brunch Number"
350 PRINT "EXPONENT Than Standard Money Type of (1)Europa(2)Japan(3)USA"
360 PRINT "指数に対する通貨を入力してください(1)Euro(2)Yen(3)UsaDoll :";:INPUT "",MONEYMODE
370 IF MONEYMODE=1 THEN RATE=180 ELSE IF MONEYMODE=2 THEN RATE=1 ELSE IF MONEYMODE=3 THEN RATE=133
380 IF RATE=0 THEN RATE=180
390 CSV$(7,1)=STR$(INT(DIVITION/RATE+.1#/1000000))
400 PRINT "Gruop of Central Group Name Type for Name"
410 PRINT "資本となる中心組織体の組織名を入力してください :";:INPUT "",LEADERCOMPANY$:IF LEADERCOMPANY$="" THEN CSV$(8,1)="NoLeader" ELSE CSV$(8,1)=LEADERCOMPANY$
420 PRINT "Central Gruop Invest and Surplus Pool up Addit FineExchange"
430 PRINT "中心組織の投資運用剰余金を指数で割って入力してください :";:INPUT "",DIVITION:IF DIVITION=0 THEN DIVITION=1
440 CSV$(9,1)=STR$(INT(DIVITION/1000000)):TOTAL=DIVITION/RATE+.1#*1000000
450 PRINT DATE$+"-"+TIME$;"Get Sinece 4colmnYear yyyy/mm/dd - Time hh/mm/ss"
460 PRINT DATE$+"-"+TIME$;"今日の日付と、株の申告予定日 年は4桁、他は2桁";:INPUT "",SINCE$
470 IF SINCE$="" OR SINCE$="-" OR SINCE$=" " THEN SINCE$=DATE$+"-"+TIME$
480 CSV$(10,1)=SINCE$
490 PRINT "Appointment Accept file Name"
500 PRINT "プロファイルのファイル名を指定してください :";:INPUT "",OTN$
510 IF OTN$="" THEN OTN$="Defualt"
520 OPEN OTN$ AS 1:FLAG=EOF(1):CLOSE 1
530 IF FLAG=-1 THEN ELSE *SKIPTO
540 OPEN OTN$ FOR OUTPUT AS #1
550 WRITE #1,CSV$(1,1),CSV$(2,1),CSV$(3,1),CSV$(4,1),CSV$(5,1),CSV$(6,1),CSV$(7,1),CSV$(8,1),CSV$(9,1),CSV$(10,1),OTN$
560 CLOSE #1
570 *SKIPTO GOTO *INVEST
580 GOTO *START
590 *INVEST
600 IF CSV$(7,1)=" 7518" THEN MONEYS$="UsaDoll":RATE=133
610 IF CSV$(7,1)=" 5555" THEN MONEYS$="Euro":RATE=180
620 IF CSV$(7,1)=" 1000000" THEN MONEYS$="YEN":RATE=1
630 EXPONENT=INT(VAL(CSV$(9,1))/RATE+.1#*1000000)
640 INCOME=INT(EXPONENT/100000*3+.1#)
650 PRINT "EXPONENT of";EXPONENT;" Income of";INCOME;MONEYS$
660 PRINT "Set Limid of Count up Mounth :";
670 INPUT "",BETWEEN:IF BETWEEN=0 THEN *INVEST
680 FOR H=1 TO BETWEEN:FINEMONEY=INT(FINEMONEY/RATE+INCOME+.1#):NEXT H
690 PRINT "TOTAL :";FINEMONEY;MONEYS$;" of";BETWEEN;"Mounth";
700 PRINT "Edit Stock Market Number";:INPUT "",SMN
710 PRINT "Edit Brunch Number :";:INPUT "",ROOTNUM
720 PRINT "Edit Execution Post(0:Y/1:N):";:INPUT "",EXE
730 IF EXE=1 THEN *INVEST
740 *RETYPE1
750 PRINT "Template Set of (1)Staff Only (2)List And Staff (3)Tob And Staff (4)List And Tob And Staff :";:INPUT "",TYPE1
760 PRINT "EXPONENT Rank Set of (1)Chif President Class (2) Limited Company Class (3) Gavament President Class :";:INPUT "",TYPE2
770 PRINT "Trade Mark Regist on Date and Rank of (1)SpecialLisence (2)CopyRight (3)Visual :";:INPUT "",TYPE3
780 PRINT "EXPONENT Addit Manager 0-10000 :";:INPUT "",TYPE4
790 IF TYPE1=0 OR TYPE2=0 OR TYPE3=0 THEN *RETYPE1
800 YEAR=INT(BETWEEN/12)
810 YEAROFF=VAL(MID$(DATE$,1,2))
820 IF YEAROFF-YEAR<0 THEN YC=100-YEAROOF-YEAR ELSE YC=YEAROFF-YEAR
830 MOUNTHOFF=VAL(MID$(DATE$,4,2)):IF MOUNTHOFF-BETWEEN>0 THEN MC=MOUNTHOFF-BETWEEN ELSE IF MOUNTHOFF-BETWEEN<0 THEN MC=MOUNTHOFF-BETWEEN+(YEAR*12)
840 PRINT "Time of ";DATE$;TIME$;"- START MOUNTH";MC;" START YEAR";YC
850 REM IF ROOTNO=0 THEN *LEADERONCE
860 REM IF ROOTNO=1 THEN *PRESIDENTENTRY
870 REM IF ROOTNO=2 THEN *CHAIRMANSHIP
880 REM IF ROOTNO=3 THEN *RegistanceGroup
890 *SETTYPE
900 AAA=10000000/RATE:BBB=20000000/RATE:CCC=30000000/RATE:DDD=27500000/RATE
910 REM IF ROOTNO=3 THEN *REGIST
920 EEE=22500000*8/RATE:FFF=25000000/RATE:GGG=7500000/RATE:HHH=5000000/RATE
930 III=2350000/RATE:JJJ=3500000/RATE:KKK=2500000/RATE:LLL=1000000/RATE
940 PLAN(1)=AAA:PLAN(2)=BBB:PLAN(3)=CCC:PLAN(4)=CCC:PLAN(5)=CCC:PLAN(6)=DDD
950 PLAN(7)=CCC:PLAN(8)=FFF:PLAN(9)=III:PLAN(10)=AAA:PLAN(11)=GGG
960 PLAN(12)=HHH:PLAN(13)=JJJ:PLAN(14)=BBB:PLAN(15)=AAA*8:PLAN(16)=EEE*8
970 PLAN(17)=AAA:PLAN(18)=BBB:PLAN(19)=CCC:PLAN(20)=BBB:PLAN(21)=AAA
980 PLAN(22)=KKK*8:PLAN(23)=LLL*5:PLAN(24)=LLL*5:PLAN(25)=JJJ*5:PLAN(26)=AAA*5
990 PLAN(27)=LLL*8:PLAN(28)=JJJ*8:PLAN(29)=AAA*8
1000 U=COUNTER*50:FOR W=1+U TO 50+U:CHECKED(W)=0:CHECKER(W)=1:NEXT W
1010 FOR R=1+U TO 22+U:PLAN(R)=PLAN(R-U):NEXT
1020 FOR R=23+U TO 29+U:PLAN(R)=PLAN(R-U):NEXT
1030 FOR R=30+U TO 36+U:PLAN(R)=PLAN(R-7-U):NEXT
1040 FOR R=37+U TO 43+U:PLAN(R)=PLAN(R-14-U):NEXT
1050 FOR R=44+U TO 50+U:PLAN(R)=PLAN(R-21-U):NEXT
1060 EXPONENT(U)=PLAN(U)/1000000:INCOME=DIVITION*1000000/RATE/10*3:MONEY=MONEYMODE
1070 STAFFNUM$(1+U)="Leader Director President":STAFFNUM$(2+U)="Leader Chairman"
1080 STAFFNUM$(3+U)="Director President":STAFFNUM$(4+U)="Submit Leader"
1090 STAFFNUM$(5+U)="Cheif(Engineer or Financial) Breau":STAFFNUM$(6+U)="Cheif Offen Offer"
1100 STAFFNUM$(7+U)="Director President":STAFFNUM$(8+U)="Brunch Club"
1110 STAFFNUM$(9+U)="DeskChairman":STAFFNUM$(10+U)="President"
1120 STAFFNUM$(11+U)="Execute or Sineor Director":STAFFNUM$(12+U)="Club"
1130 STAFFNUM$(13+U)="Department":STAFFNUM$(14+U)="Judicialy President"
1140 STAFFNUM$(15+U)="Region Exception Assembly Office":STAFFNUM$(16+U)="Staff 8 Justice Brunch Chage"
1150 STAFFNUM$(17+U)="Justice Director":STAFFNUM$(18+U)="Chairman"
1160 STAFFNUM$(19+U)="Resistance Group President":STAFFNUM$(20+U)="Protestant DeskChairman"
1170 STAFFNUM$(21+U)="Protestant President":STAFFNUM$(22+U)="Staff 8 Staff Charge"
1180 FOR T=1 TO 22:STAFFNUM$(T+U+50)=STAFFNUM$(T):STAFFNUM(T+U+50)=STAFFNUM(T):NEXT T
1190 FOR T=23+U TO 50+U STEP 7
1200 STAFFNUM$(T)="Staff 5 Tob Cheif":STAFFNUM$(T+1)="Staff 5 Tob Gavament President":STAFFNUM$(T+2)="Staff 5 Tob Limited Company President"
1210 STAFFNUM$(T+3)="Staff 5 Tob Cheif President":STAFFNUM$(T+4)="Staff 8 Listed Gavament President":STAFFNUM$(T+5)="Staff 8 Listed Limited Company President"
1220 STAFFNUM$(T+6)="Staff 8 Listed Cheif President"
1230 STAFFNUM(T)=T:STAFFNUM(T+1)=T+1:STAFFNUM(T+2)=T+3
1240 STAFFNUM(T+3)=T+3:STAFFNUM(T+4)=T+4:STAFFNUM(T+5)=T+5
1250 STAFFNUM(T+6)=T+6
1260 NEXT
1270 NE$="(1-8)0:ALL/9:Nothing":QE$="(0:Yes/1:No):":NF$="(1-5)0:ALL/9:Nothing:"
1280 FOR W=1 TO 50:QUEST$(W)=QE$:NEXT
1290 QUEST$(15+U)=NE$:QUEST$(16+U)=NE$:QUEST$(22+U)=NE$
1300 FOR W=23+U TO 50+U STEP 7:
1310 QUEST$(W)=NF$:QUEST$(W+1)=NF$:QUEST$(W+2)=NF$:QUEST$(W+3)=NF$
1320 QUEST$(W+4)=NE$:QUEST$(W+5)=NE$:QUEST$(W+6)=NE$
1330 NEXT W
1340 IF NFLAG=1 THEN START=6 ELSE START=1
1350 IF STARTED=1 THEN START=7 ELSE START=1
1360 IF BRUNCHROOT=1 THEN LOOPNUM=14 ELSE IF BRUNCHROOT=2 THEN LOOPNUM=19 ELSE IF BRUNCHROOT=3 THEN LOOPNUM=22 ELSE LOOPNUM=22
1370 FOR T=23+U TO 50+U STEP 7:STAFFNUM$(T)=STAFFNUM$(23):STAFFNUM(T)=STAFFNUM(23):PLAN(T)=PLAN(23)
1380 STAFFNUM$(T+1)=STAFFNUM$(24):STAFFNUM(T+1)=STAFFNUM(24):PLAN(T+1)=PLAN(24)
1390 STAFFNUM$(T+2)=STAFFNUM$(25):STAFFNUM(T+2)=STAFFNUM(25):PLAN(T+2)=PLAN(25)
1400 STAFFNUM$(T+3)=STAFFNUM$(26):STAFFNUM(T+3)=STAFFNUM(26):PLAN(T+3)=PLAN(26)
1410 STAFFNUM$(T+4)=STAFFNUM$(27):STAFFNUM(T+4)=STAFFNUM(27):PLAN(T+4)=PLAN(27)
1420 STAFFNUM$(T+5)=STAFFNUM$(28):STAFFNUM(T+5)=STAFFNUM(28):PLAN(T+5)=PLAN(28)
1430 STAFFNUM$(T+6)=STAFFNUM$(29):STAFFNUM(T+6)=STAFFNUM(29):PLAN(T+6)=PLAN(29)
1440 NEXT
1450 IF START=0 THEN START=1
1460 *RESTORELOOP I=START:LOOPNUM=COUNTER*50+50:WHILE I=<LOOPNUM
1470 IF I=23 AND BRUNCH=3 THEN START=7:BRUNCH=1:GOTO *LOOPEND
1480 LAP=VAL(CSV$(3,1)):IF LAP*50<U THEN *INVESTPROCESS ELSE
1490 P=P+1:PRINT P;:IF I=0 THEN I=1 ELSE IF I=23 THEN I=7
1500 IF I>22 THEN I=7
1510 IF I=1 THEN PRINT "--Brunch 00 Root Stock Number--";:BRUNCH=0:INPUT "",PASS:DATES$(I+U)=DATE$:TIMES$(I+U)=TIME$:BRUNCH(I+U)=BRUNCH
1520 IF I=7 THEN PRINT "--Brunch 01 Root Stock Number--";:BRUNCH=1:INPUT "",PASS:DATES$(I+U)=DATE$:TIMES$(I+U)=TIME$:BRUNCH(I+U)=BRUNCH
1530 IF I=14 THEN PRINT "--Brunch 02 Root Stock Number--";:BRUNCH=2:INPUT "",PASS:DATES$(I+U)=DATE$:TIMES$(I+U)=TIME$:BRUNCH(I+U)=BRUNCH
1540 IF I=19 THEN PRINT "--Brunch 03 Root Stock Number--";:BRUNCH=3:INPUT "",PASS:DATES$(I+U)=DATE$:TIMES$(I+U)=TIME$:BRUNCH(I+U)=BRUNCH
1550 BRUNCH(I)=BRUNCH
1560 IF CHECKED(I+U)=1 AND CHECKER(I+U)=0 THEN PRINT "Staff Sold"
1570 IF CHECKED(I+U)>0 THEN GOTO *SKIPTO2
1580 IF STARTED=1 AND BRUNCH=0 THEN START=7:BRUNCH=1:GOTO *SKIPTO2
1590 PRINT STAFFNUM$(I);QUEST$(I);:INPUT "",CHECKER(I+U):IF CHECKER(I+U)=0 THEN CHECKED(I+U)=1
1600 IF CHECKED(I+U)>0 THEN DATES$(I+U)=DATE$:TIMES$(I+U)=TIME$:BRUNCH(I+U)=BRUNCH:EXPONENT(I+U)=INT(PLAN(P)/1000000+.1#*RATE):COMPANYNAME$(1+U)=COMPANYNAME$(I+U)
1610 IF CHECKER(I)>0 AND CHECKER(I)<9 THEN CHECKED(I)=CHECKER(I)
1620 IF CSV2$(1,I+U)="" THEN CSV2$(1,I+U)=DATES$(I+U):CSV2$(2,I+U)=TIMES$(I+U):CSV2(4,I+U)=STAFFNUM(I+U):CSV2$(5,I+U)=COMPANYNAME$(I+U):CSV2(6,I+U)=BRUNCH(I+U):CSV2(8,I+U)=PLAN(I):CSV2(9,I+U)=PLAN(I)/1000000:CSV2(10,I+U)=DIVITION*100000/10*3
1630 *SKIPTO2
1640 IF I=6 OR I=13 OR I=18 OR I=22 THEN IF BRUNCH<4 THEN GOTO *TOB00 ELSE *SKIPI
1650 *LOOPEND
1660 *SKIPI I=I+1:WEND:U=CPUNTER*50:START=7:I=7:IF I=22 AND BRUNCH=3 THEN GOTO *INVESTPROCESS
1670 IF UFLAG=-1 THEN
1680 REM IF STAFFNUM(W)=1 AND FINEMONEY*RATE>PLAN(W) THEN ELSE TOC=FINEMONEY-(PLAN(I)*RATE):FLAG=I
1690 IF LOOPS=1 THEN GOTO *SERIALIZATION
1700 *TOB00 M=N:IF TYPE1=3 OR TYPE1=4 THEN UCOUNT=UCONT+1 ELSE *LIST00
1710 IF LFLAG=1 THEN *SKIPTOB
1720 IF M=0 THEN N=23:M=N
1730 IF STARTED=1 THEN N=43:NCOUNT=50
1740 IF BRUNCH=0 THEN N=23:BRUNCH(N+U)=BRUNCH:DATES$(N+U)=DATE$:TIMES$(N+U)=TIME$:NCOUNT=27:COMPANYNAME$(N+U)=COMPANYNAME$(1)
1750 IF BRUNCH=1 THEN N=30:BRUNCH(N+U)=BRUNCH:DATES$(N+U)=DATE$:TIMES$(N+U)=TIME$:NCOUNT=34:COMPANYNAME$(N+U)=COMPANYNAME$(1)
1760 IF BRUNCH=2 THEN N=37:BRUNCH(N+U)=BRUNCH:DATES$(N+U)=DATE$:TIMES$(N+U)=TIME$:NCOUNT=41:COMPANYNAME$(N+U)=COMPANYNAME$(1)
1770 IF BRUNCH=3 THEN N=44:BRUNCH(N+U)=BRUNCH:DATES$(N+U)=DATE$:TIMES$(N+U)=TIME$:NCOUNT=48:COMPANYNAME$(N+U)=COMPANYNAME$(1)
1780 LET U=COUNTER*50:LAP=VAL(CSV$(3,1)):PRINT M,U
1790 LET M=N:SS$="Staff Sold":IF CHECKED(M+U)=1 THEN PRINT SS$ ELSE PRINT STAFFNUM$(M);QUEST$(M);:INPUT "",CHEIF(1)
1800 IF CHEIF(1)=0 THEN STAFFNUM$(M+U)=STAFFNUM$(23):STAFFNUM(M+U)=STAFFNUM(23):DATES$(M+U)=DATE$:TIMES$(M+U)=TIME$:BRUNCH(M+U)=BRUNCH:EXPONENT(M+U)=PLAN(23)*RATE+.1#/1000000:CHECKED(M+U)=1:CSV2$(5,M+U)=COMPANYNAME$(1)
1810 LET M=N+1:IF CHECKED(M+U)=1 THEN PRINT SS$ ELSE PRINT STAFFNUM$(M);QUEST$(M);:INPUT "",CHEIF(2)
1820 IF CHEIF(2)=0 THEN STAFFNUM$(M+U)=STAFFNUM$(24):STAFFNUM(M+U)=STAFFNUM(24):DATES$(M+U)=DATE$:TIMES$(M+U)=TIME$:BRUNCH(N+U)=BRUNCH:EXPONENT(M+U)=PLAN(24)*RATE+.1#/1000000:CHECKED(M+U)=1:CSV2$(5,M+U)=COMPANYNAME$(1)
1830 LET M=N+2:IF CHECKED(M+U)=1 THEN PRINT SS$ ELSE PRINT STAFFNUM$(M);QUEST$(M);:INPUT "",CHEIF(3)
1840 IF CHEIF(3)=0 THEN STAFFNUM$(M+U)=STAFFNUM$(25):STAFFNUM(M+U)=STAFFNUM(25):DATES$(N+U)=DATE$:TIMES$(M+U)=TIME$:BRUNCH(N+U)=BRUNCH:EXPONENT(M+U)=PLAN(25)*RATE+.1#/1000000:CHECKED(M+U)=1+.1#/1000000:CHECKED(M+U)=1:CSV2$(2,W+U)=COMPANYNAME$(1)
1850 LET M=N+3:IF CHECKED(M+U)=1 THEN PRINT SS$ ELSE PRINT STAFFNUM$(M);QUEST$(M);:INPUT "",CHEIF(3)
1860 IF CHEIF(4)=0 THEN STAFFNUM$(M+U)=STAFFNUM$(26):STAFFNUM(M+U)=STAFFNUM(26):DATES$(M+U)=DATE$:TIMES$(M+U)=TIME$:BRUNCH(N+U)=BRUNCH:EXPONENT(M+U)=PLAN(26)*RATE+.1#/1000000:CHECKED(M+U)=1+.1#/1000000:CHECKED(M+U)=1:CSV2$(5,M+U)=COMPANYNAME$(1)
1870 M=N
1880 FOR W=1+U TO 50+U:CSV2$(1,W)=DATES$(W):CSV2$(2,W)=TIMES$(W):NEXT
1890 FOR W=1+U TO 50+U:CSV2$(3,W)=STAFFNUM$(W):CSV2(4,W)=STAFFNUM(W):NEXT
1900 FOR W=1+U TO 50+U:CSV2(6,W)=BRUNCH(W):CSV2(8,W)=INCOME(W):NEXT
1910 FOR W=1+U TO 50+U:CSV2(9,W)=EXPONENT(W):CSV2(10,W)=DIVITION*1000000:NEXT
1920 *LIST00 UCOUNT=0:IF TYPE1=2 OR TYPE1=4 THEN UCOUNT=UCONT+1 ELSE *SKIPTOB
1930 IF LFLAG=1 THEN *SKIPTOB
1940 IF BRUNCH=0 THEN N=27:BRUNCH(N+U)=BRUNCH:DATES$(N+U)=DATE$:TIMES$(N+U)=TIME$:NCOUNT=28:COMPANYNAME$(N+U)=COMPANYNAME$(1):EXPONENT(N+U)=PLAN(N)/1000000*RATELIST -1800
1950 IF BRUNCH=1 THEN N=34:BRUNCH(N+U)=BRUNCH:DATES$(N+U)=DATE$:TIMES$(N+U)=TIME$:NCOUNT=35:COMPANYNAME$(N+U)=COMPANYNAME$(1):EXPONENT(N+U) = PLAN(N)/1000000*RATE
1960 IF BRUNCH=2 THEN N=41:BRUNCH(N+U)=BRUNCH:DATES$(N+U)=DATE$:TIMES$(N+U)=TIME$:NCOUNT=42:COMPANYNAME$(N+U)=COMPANYNAME$(1):EXPONENT(N+U) = PLAN(N)/1000000*RATE
1970 IF BRUNCH=3 THEN N=48:LFLAG=0:BRUNCH(N+U)=BRUNCH:DATES$(N+U)=DATE$:TIMES$(N+U)=TIME$:NCOUNT=49:COMPANYNAME$(N+U)=COMPANYNAME$( 1):EXPONENT(N+U)=PLAN(N)/1000000*RATE
1980 SS$="Staff Sold":LET U=COUNTER*50:LAP=VAL(CSV$(3,1))
1990 LET M=N :IF CHECKED(M+U)=1 THEN PRINT SS$ ELSE PRINT STAFFNUM$(M);QUEST$(M);:INPUT "",LISTED(1)
2000 LET M=N+1:IF CHECKED(M+U)=1 THEN PRINT SS$ ELSE PRINT STAFFNUM$(M);QUEST$(M);:INPUT "",LISTED(2)
2010 LET M=N+2:IF CHECKED(M+U)=1 THEN PRINT SS$ ELSE PRINT STAFFNUM$(M);QUEST$(M);:INPUT "",LISTED(3)
2020 M=N:IF LISTED(1)=0 THEN STAFFNUM$(M+U)=STAFFNUM$(27):STAFFNUM(M+U)=STAFFNUM(27):CHECKED(M+U)=1:INCOME(M+U)=PLAN(27)/10*3:EXPONENT(M+U)=PLAN(27)/1000000:DATES$(M+U)=DATE$:TIMES$(M+U)=TIME$:CSV2$(5,M+U)=COMPANYNAME$(1)
2030 LET M=N+1:IF LISTED(2)=0 THEN STAFFNUM$(M+U)=STAFFNUM$(28):STAFFNUM(M+U)=STAFFNUM(28):CHECKED(M+U)=1:INCOME(M+U)=PLAN(28)/10*3:EXPONENT(M+U)=PLAN(28)/1000000:DATES$(M+U)=DATE$:TIMES$(M+U)=TIME$:CSV2$(5,M+U)=COMPANYNAME$(1)
2040 LET M=N+2:IF LISTED(3)=0 THEN STAFFNUM$(M+U)=STAFFNUM$(29):STAFFNUM(M+U)=STAFFNUM(29):CHECKED(M+U)=1:INCOME(M+U)=PLAN(29)/10*3:EXPONENT(M+U)=PLAN(29)/1000000:DATES$(M+U)=DATE$:TIMES$(M+U)=TIME$:CSV2$(5,M+U)=COMPANYNAME$(1)
2050 *SKIPTOB PRINT UCOUNT,NCOUNT,BRUNCH,I:IF BRUNCH=3 AND I=22 THEN *INVESTPROCESS
2060 IF I=22 AND BRUNCH=3 THEN BRUNCH=1:UFLAG=-1:GOTO *TOB00 ELSE
2070 GOTO *SKIPI
2080 *INVESTPROCESS
2090 LC=LC+1:PRINT "Industrial or StoreWork or Servant Brunch Name This it Tietle":PRINT "工業所並びに、小売業、公務の支部名を入力してください。";:INPUT "",COMPANY$(LC)
2100 IF OPENFILENAMES$="" THEN PRINT "Your Self Saving Open File Name";:INPUT "保存ファイル名を入力してください:",OPENFILENAMES$
2110 IF NEXTMARKET=0 THEN PRINT "2 Brunch Market Over Input Works No Tie Up (Y:0/N:1)":PRINT "2支店以上を入力するには、(0)はい(1)いいえ":INPUT "",NEXTMARKET
2120 IF NEXTMARKET=1 THEN NCOUNT=0:UCOUNT=0:N=0:START=7
2130 IF COMPANY$(LC)="" THEN CANPANY$(LC)="Standard Company":PFLAG=1
2140 IF PFLAG=1 THEN *P1
2150 OPEN OFN$ AS 2:IF EOF(1)=-1 THEN PFLAG=1:PLACE=1 ELSE IF EOF(1)=0 THEN PFLAG=1:PLACE=0
2160 CLOSE 2
2170 IF PLACE=1 THEN *P1
2180 *P1
2190 FOR I=1 TO 22
2200 IF TOTAL<0 THEN GOTO *S1
2210 *S1 NEXT
2220 S=22:FOR B=0 TO 3:S=S+1
2230 IF TOTAL<0 THEN B=3:I=29:GOTO *S2
2240 *S2 NEXT B
2250 FOR I=START TO 50:IF TOTAL>0 AND CHECKER(I)=0 THEN CHECKED(I)=1:NEXT
2260 *SERIALIZETION SERIAL=SERIAL+1:START=7:BRUNCH=1:I=7
2270 LC=0:IF VAL(CSV$(3,1))=>SERIAL THEN ELSE
2280 *STEPIN
2290 IF ICOUNT=0 THEN ICONUT=ICOUNT+1 ELSE IF ICOUNT=1 THEN ICOUNT=ICONUT+1
2300 *LS1
2310 E=E+1:IF STARTED=1 AND E>50 THEN GOTO *CL1
2320 GOTO *PRETOTAL
2330 *PRETOTAL
2340 U=COUNTER*50:IF U=0 THEN STARTER=1 ELSE STARTER=7
2350 FOR F=STARTER TO 50:
2360 IF CHECKED(F)=1 THEN TOTAL=TOTAL-PLAN(F+U)*2
2370 NEXT
2380 GOTO *TAKEOWNERCOST
2390 IF E=>50 THEN STARTED=1:START=7:L=L+50:E=6 ELSE GOTO *PRETOTAL
2400 GOTO *TAKEOWNERCOST
2410 *TAKEOWNERCOST
2420 IF TOTAL<0 THEN PRINT ABS(TOTAL);"Empty of account"
2430 IF TOTAL>0 THEN PRINT TOTAL;"have a remain account"
2440 TOTALED(COUNTER)=TOTAL
2450 *TURN
2460 LAP=VAL(CSV$(3,1)):IF LAP=>SERIAL THEN COUNTER=COUNTER+1:Y=7:START=7::BRUNCH=1:STARTED=1:NFLAG=1:U=COUNTER*50:GOTO *SETTYPE
2470 *JOINT
2480 IF VAL(CSV$(3,1))=<Z-1 THEN *OUTIN
2490 IF OPENFILENAMES$="" THEN OPENFILENAMES$="CSVDefualt"
2500 OPEN OPENFILENAMES$ FOR OUTPUT AS #2
2510 Y=0:P=0:J=0
2520 FOR W=1 TO 50 STEP 1:CSV2$(3,W)=STAFFNUM$(W):CSV2(4,W)=STAFFNUM(W):NEXT
2530 FOR W=51 TO 100 STEP 1:CSV2$(3,W)=STAFFNUM$(W-50):CSV(4,W)=STAFFNUM(W-50):NEXT
2540 *WORTE
2550 Y=Y+1:IF Y=50 THEN Y=7:J=J+1
2560 IF COUNTER<J THEN *OUTIN
2570 IF LAP*50<P THEN *OUTIN
2580 IF CSV2$(1,Y+P)="" OR CSV2$(2,Y+P)="" OR CSV2$(3,Y+P)="" THEN *WROTELOOP
2590 WRITE #2,CSV2$(1,P+Y),CSV2$(2,P+Y),CSV2$(3,P+Y),CSV2(4,P+Y),CSV2$(5,P+Y),CSV2(6,P+Y),CSV2(7,P+Y),CSV2(8,P+Y),CSV2(9,P+Y),CSV2(10,P+Y),MONEYS$
2600 *WROTELOOP
2610 P=J*50
2620 IF LAP<J THEN GOTO *OUTIN ELSE GOTO *WORTE
2630 *OUTIN
2640 CLOSE

inserted by FC2 system