福岡だいの動画と、同人誌の販売

同人誌 動画 プログラム 情報処理 アート グラフィックス 有償 2018年創業

システムアドミニストレーター12 初めてのC講座

2019-03-20 03:58:42 | 日記
********************

Cを翻訳するにあたって、注意点や、互換点をBasicに比較します。Basicは、CommonGateWayInterfaceほど難しいプログラミングですが、初心者向けに作られているべーシックは、頭文字の意味は、ビギナーのBであり、まず初めにプログラミングを教習するのに、学校などの支援もあり、捕捉されます。Cからは、本格的なアプリケーションプログラミングインターフェイスをもち、専門学校以上で教習できます。
Translate of C hit Tips with Point Decision After Compare Basic, Basic Difference of Common Gate Way Interface(CGI NetWork Programming) Equivalent Level It,Make on Biginner's Edition Basic is Prefix of B mean is by Easy with Biginner's,First Plan Learn Program Starter Support School Use Target It,C Bigin Expart have API with Professional School Over Learn C .

一方向の評価
C
if(D==0){D=1;}
Basic
IF D=0 Then D=1
表記の注意点は、Cは、等価評価することに、==と2文字使うほか、ステートメントにあたるifに条件枠を数括弧”()”つかい、中括弧”{}”の中には、条件が成立した場合、書かれたコードを実行します。ここでは、変数”D”が”0”と等価の場合、変数”D”に”1”を代入しています。最後の区切りは、Cは何時も”;”セミコロンを使い、セミコロンで区切ってあれば、2行を1行にセミコロン2つを1行で表記できます。
This wrote Statement Funcion Appointment is C is Equivalent by "==" Dublue Equal Symbol use else hit Statement "if" at Terms Trim Border of "()" use After Middle Class Border "{}" to Contein Complate Terms in Case,Wrote Program Code on Execute, This Section "D" Variable by Equivalent "0" in Case "D" Variable In put "1", Last Divition is C by SemiCoron "" Carrige and 1 Line Addition Program Code Can Wrote It .



二方向の評価
C
if(D==1){D=0;} else {D=1;}
Basic
IF D=1 Then D=0 ELSE D=1
これは、2巡すれば、変数”D”は、”0”になります。この構文は、変数”D”が”1”の時、変数”D”を”0”に初期化します。二方向評価するにあたり、このコードは、1以下1以上で変数”D”を”1”とします。構文をセミコロンで区切ります。
This is 2 come round by "D" Variable Equivalent Value is "0" Result, This Word is "D" Variable is Then "D" Variable Bigin Setting of "0", Hit 2 Way Decision less than with more than by "D" Variable "1" Value,This String word is Shut SemiCoron .

多方向の評価
C
if(D==0){D=1} else if(D==1){D=0;} else {D=1;}
Basic
IF D=0 Then D=1 Else IF D=1 THen D=0 Else D=1
3段階の評価は、値”0”と”1”だけです。値が”0”の時、変数”D”を”1”とし、”D”が”1”であれば”0”に反転します、もし、値”0”と”1”以外が代入に値したときは、”0”と”1”以外の場合、変数”D”を”1”に設定後、2巡から、2方向の評価となります。
3 Way Decision is Value "0" and Value "1" Only, Then Value by "0" to "D" Variable Reply "1" Vakye,Then Value by "1" to "0" Reversed,IF Case is Out Of Value with not "0" or "1" to "D" Variable Set Value "1" After Repeat Count 1 ForWard Run 2 Count After 2 Way Decision .


繰り返し
C
int D=9;while (D>=0){D--;}
Basic
LET D=9:WHILE(D>=0):D=D-1:WEND
関数のintとLETの違いに注目してください。Cは、プロトタイプ宣言を必要としており、明確なキャストで有っても、型変換はできません。よって、数字型のintに数字変数”D”に”9”から始まり、関数”while”と”WHILE”の大文字と小文字は区別されるケースセンシティブを採用しています。”while”関数により、”D”が”0”と等価かそれ以上の時繰り返し、ベーシックは、同じ様に見えても、違う点は、コロンとセミコロンの使い方に注意してください。ベーシックは、必ず、”WEND”で折り返し点を確認していますが、Cは、関数”WEND”がありませんが、”{}”によって中身を実行すると、Dをデクリメントするにあたり、ここもベーシックと表記の違いを注意してください。Cは、”D--”と、することで、べーシックの表記では、”D=D-1”としなければなりません。
This Compare Function "int" and "LET" Defficult Pointment Attention,C by Declaration Need It,Exactness have by Cast No Exchange,Therefore Number Value of "int" Bigin "D" Variable Start"9" Repeat "-1" Value Morethan Between Statement Function "while" by Capital Letter size Compare Reverse Capital Letter size Each Difference Adoption "CaseSencitive",Basic is Look at Something by Diffierence "coron" and "SemiCoron" Attention use It,Basic must Repeat End at Need Carrige "WEND" System Check Compare C Nothing "WEND" Function by Turn Point,Middle Quart "{}" in Execute After "D" Variable Value Hit Decrement,This Location by Attention Compare Basic and C Difference,C is "D--" Equivalent Basic must "D=D-1" .

繰り返し2
C
for(int D=9;D>=0;D--){TextOut(hdc,D*16,0,D,1);D--;}
Basic
FOR D=9 TO 0 Step -1:LOCATION 0,0:PRINT D:NEXT
今度は、少し高度なCの繰り返しに挑戦してみました。”int”を”for”の内部で宣言され、変数"D”が”0”以上の間、変数”D”は、一づつ数を減らし”0”の値の後止まります。”{}”の中のコードは、Cの”TextOut”は、ベーシックの”PRINT”に相当するものです、”TextOut”にて、Dの値をカウントダウンします。ベーシックで、デクリメントを行うにあたり、”STEP"パラメーターを”-1”は、1づつ設定しなければなりません。
This Round is Any High Repeat by C Challenged,Declaration Private Internal Satement Function from "for" in "int" Function Declaration "D" Variable,"D" Variable MoreThan "0" Between by CountDown Result is LessThan "O" Stop, Middle Quate "{}" InSide Programming Code is Development Language "C" by "TextOut" Function is Equivalent Basic Language "PRINT" Function Value, Basic Declement Execute "Step" Parameter "-1" is must Each Setting .

繰り返し3
C
int D;do{TextOut(hdc,D*16,0,D,sizeof(D));D++;}while(D<10);
Basic
LET D:WHILE(D<10):LOCATION 0,0:PRINT D:D=D+1:WEND

こんどは、Cによる”do”に開始し、テキストアウト関数にて、ハンドル”hdc”と、変数”D”のバイト数を”sizeof”関数でデータ容量を量り、文字数と同じ文字の長さを指定しています。ベーシックは、”LOCATION”関数で”PRINT”の位置が動きません。今度は、Cが”while”で閉じている事が、”WEND”との違いです、変数”D”のインクリメントは必ず必要です。加算しないと、”for”関数と違い、無限ループに陥ります。
This Stage is Development Language by C and Begin "do" Start ForWard "TextOut" Function by with "hdc" HANDLE and Variable "D" Value Count of Byte by "sizeof" System Call Code,String Text Length SomeOne,Basic is "LOCATION" Function Show "PRINT" Function No Move It,This Round C is Close of "while" Function,This Thing Compare "WEND" Difference, "D" Variable Need Inclinement, This "do" Difficlut "for" Statement Function and No Count Addition Value is Endless Loop .

配列と文字列
C
int IdNum[10] ; char Names[25] ; float Coordinate[100][11] ; char Comeon[30]="Yes Go" ;
Basic
DIM IDNUM(10):DIM NAMES$(25):DIM COORDINATE(100,11):DIM COMEON$(30):LET COMEON$(1)="Y":LET COMEON$(2)="e":LET COMEON$(3)="s":LET COMEON$(4)=" ":LET COMEON$(5)="G":LET COMEON$(6)="o"
Cとベーシックの違いは”char”が1字づつのカウントを”30”回数えるほか、合わせるためには、煩雑です。”COMEON$(1)=”Y” ”と出来るほか、ベーシックの配列変数は、文字数に制限がないので、”COMEON$(1)=”Yes Go””とすることもできます。”float”にて宣言されているのは、ベーシックの”DIM”関数に相当する、2次元配列です。これを”DIM”は、”(100,11)”とします。
C Development Language Difference Basic to "char" by 1 Count to "30" Hit Count Else Combain Thing are Bad, "COMEON$(1)="Y" " Can It, Else Basic is Arregement Variable is Word Count No Count,This Thing is Can Easy by "COMEON$(1)="Yes Go"" , Declaration "float" Function is Doublue Dimention Variable is Arregement, This is by "DIM" Equivalent "(100,11)" Decision .

クラスの定義
C Only
Class And_Day {Public: And_Day(int YY,int MM,int DD);void ShowDay;~And_Day;Private: int Year,Mounth,Day; }
”~”チルダにて、宣言後の自作関数を削除します。他のクラスに継承するためのパブリックが設けられています。パブリックは、引数を持つAnd_Day”クラスであり、YYとMMとDDで継承されます。”void”は実行型関数を意味し、”CONST”は、固定値で有る事を意味しています。一つ一つ宣言することもできますが、”int”型は、一つで一斉に定義できます。”int”型は、”Year,Mounth,Day”として宣言できますが、プライベートは、内部変数で使われるので、クラス内部で使われる値なので、他のクラスに干渉関係がありません。実行型の”void”と判定型の”BOOL”と、パラメーター型の”int”があります。主に引数を引かない”void”は、メンバ関数他を、メンバ変数と言います。”return”関数で戻り値を持ち実行後の結果を引数を返します。主に”void”は、戻り値の必要無いグラフィック制御等に使われています。
Destructer Type Tilder Declaration Behind Make My Function at Deleate,Other Class Inheritance by "Public:" Install,"Public:" is Pull Value of Parameter have Exist Class "And_Day", Variable "YY","MM","DD" in Inheritance to New Class,"void" is Execute Function Mean UnderStand,"const" is Fix Control Value Mean UnderStand,Many One Can Declartion Each Difference,"int" Type Fuction is Can All in One Definition,"int" Type Function is Can Variable "Year","Mounth","Day" Value by Declartion Execute And Too,"Private:" Was Inside Used Class Value, Other Class Relation No Bridge,Execute Type "void" Type and Reverse and Reverse "BOOL" Type Value and "int" Type Exsistance, No Return Value "void" is Member Function and Other Class Factor Return Value with Member Variable,"return" Function have Return Value and Result Execute Pull Value,Mainning "void" by No Return Control Graphics Userful .

列挙型
C
enum coloring {Red="Red",Yellow="Yellow",Green="Green",Blue="Blue",Violet="Violet"};void main(){coloring Favorite; Farvorite=Violet;}
Basic
DIM COLORING$(5):LET COLORING$(1)="Red":LET COLORING$(2)="Yellow":LET COLORING$(3)="Green":LET COLORING$(4)="Blue":LET COLORING$(5)="Violet":FAVORITE$=COLORING$(5)
Basic
DIM COLORING$(1,1,1,1,1):LET COLORING$(1,0,0,0,0)="Red":LET COLORING$(0,1,0,0,0)="Yellow":LET COLORING$(0,0,1,0,0)="Green":LET COLORING$(0,0,0,1,0)="Blue":LET COLORING$(0,0,0,0,1)="Violet":LET FAVORITE$="COLORING$(0,0,0,0,1)

一個づつの定数で、深い配列が可能です。”enum”は、ベーシックで、”DIM”関数で、DIM A$(1,1,1,1,1)とすることもでき、一定の互換性があります。多次元配列を1までの定数として、複数列挙が可能ですが、本コードは、BasicとCの解釈は変わりません。ベーシックでも列挙はできますが、前のベーシックの方がスマートです。
Many one Can Fix Value with High Arragement,"enum" is Equivalent Baisc "DIM","DIM" Function Can "DIM A$(1,1,1,1,1)" Compatible, This Function Can Many Dimention Arragement Made List of Variable Value,This Code Program is Basic and C Development Language is No Change UnderStand,Basic "DIM" Function Can Made List of
Value,BackWard Basic by Smart .

ポインタデストラクタ
C
numOne=new int[10];
if (numOne)
{
delete [] numOne;
}
C
GetPointer() *numOne;
numOne = new GetPointer(1,2,3);
int i;
i=numOne->GetPointer();
numOne.delete;
Basic
DIM NUMONE$(100):ERASE NUMONE$
最初のものは、動的に”int”型で10バイト確保し、”if”関数にて”numOne”が否定系でなければ、”delete”関数にて、取得バイト数にかかわらず、”numOne”を削除します。次のものは、ポインタを用いた例です、”numOne”のクラス”GetPointer”を呼び出し、”numOne”のポインタに置き換わります。また、動的に”numOne”に”GetPointer”が取得され、変数”i”を宣言し、”i”に、”numOne”は、”GetPointer”クラスにポインタします。最後に、デストラクタとして、”numOne”が削除されます。
Begin Thing Dynamic "int" Type Function by 10Byte Get It,"if" Statement Function by "numOne" No not at delete No Much Arragement Value,Next Thing is Use Pointer Exsample,"numOne" Call Class "GetPointer()" and Replacement "numOne",Declare Variable Value "i" withon Pointer "GetPointer()" Class "numOne" It,Lasted Destractor delete This "numOne" Pointer.


論理演算
C
if (!hwnd)
{
HWND hwnd;
}

Basic
IF NOT HWND=0 THEN HWND=1

C
BOOL Reversible;
if (Reversible==-1||Reversible==0)
{
delete Reversible;
}


Basic
IF REVERSIBLE=0 THEN REVERSIBLE=-1 ELSE REVERSIBLE=0
IF REVERSIBLE=-1 OR 0 THEN ERESE REVERSIBLE

C
int X,Y,Measure;
BOOL bFlag;
X++;
Y++;
Measure=(X*Y);

LabelBegin:

if (X && Y)
{
bFlag=TRUE;
}
Else
{
bFlag=FALSE;
}
if (hdc)
{
TextOut(hdc,0,0,bFlag,sizeof(bFlag));
}
else
{
HDC hdc;
Goto LabelBegin: ;
}

Basic
LET X=0:LET Y=0:LET MEASURE=0
X=X+:Y=Y+1
*LABELBEGIN
IF X=Y THEN BFLAG=0 ELSE BFLAG=-1
LOCATE 0,0:PRINT BFLAG
GOTO *LABELBEGIN

”NOT”(否定)は、”if”関数にて”hwnd”が空の時、”HWND”ハンドルを、”hwnd”にコピーコントラクスタします。”OR”は”||”で連結され、どちらか、一つ正の時、if Statement内を”中括弧{}”で囲まれたものを実行します。”BOOL”値は”0”と”-1”の何れかでTUREと、FALSEです。”BOOL”値がある場合”delete”関数で削除されます。”AND”は、”&&”を使って結ばれます。ifの結果がXとYが同じであれば、”bFLAG”にTRUE、それ以外であれば”bFlag”にFALSEを代入します。Basicでは、2変数間の”AND”の指定は必要ありません。”=”で連結します。デバイスコンテキストが存在する場合、座標0,0に、”bFLAG”を表示します。その時、”bFlag”の文字数をsizeof()にて計算します。デバイスコンテキストが無い場合は、HDCコンテキストハンドルをコピーしてラベル”LabelBegin”に移動します。

"Not" by Statement Function "if" to Empty "hwnd" then "HWND" Copy Constractor "hwnd" Loaded."Or" is Linking "||" Deference Only True to Execute Statement "if" and "{}" Between,BOOL is "0" or "-1" at "True" or "False",Exsist by BOOL is Erase Value of BOOL by "delete"."And" is Linking "&&" Used.Result Same "X","Y" Value to "bFlag" at "Ture" Else "False" by Other Value It.Exsit Window Handle Case is Coordinate 0,0 Value on Show Display "bFlag",Then Count Word "bFlag".Nathing DeviceContext Case is Copy DeviceContext "HDC" to "hdc" with Return Label "LabelBegin:" Jump It.Basic is "And" by Bridge "=" No Use "And"."And" Linking "=".


Num. by 000-0006

メッセージループの課題研究のサクセスファイル、MultiDocumentInterfaceで動作確認済み、ソフトは、Test3.exeをダウンロード
宣言の確認と、型変換の無許可の検定済ファイル。これは、メッセージループの完成品。リリースソフトで動作を確認できます。
デバッカとビルド済み合格プログラム VisualC++
ビルドインプロジェクトリリースバージョン1.0
ファイルはリリースソフトNumber.01(Test3.exe)


// MainFrm.cpp : CMainFrame クラスの実装
//

#include "stdafx.h"
#include "test5.h"

#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif





// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_CREATE()
ON_COMMAND(ID_FILE_CLOSE, OnFileClose)
END_MESSAGE_MAP()

static UINT indicators[] =
{
ID_SEPARATOR, // ステータス ライン インジケータ
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};


// CMainFrame コンストラクション/デストラクション

CMainFrame::CMainFrame()
{
// TODO: メンバ初期化コードをここに追加してください。
}

CMainFrame::~CMainFrame()
{
}


int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("ツール バーの作成に失敗しました。\n");
return -1; // 作成できませんでした。
}

if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("ステータス バーの作成に失敗しました。\n");
return -1; // 作成できませんでした。
}
// TODO: ツール バーをドッキング可能にしない場合は、これらの 3 行を削除してください。
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);

return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを
// 修正してください。

return TRUE;
}


// CMainFrame 診断

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}

#endif //_DEBUG


// CMainFrame メッセージ ハンドラ

BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParentWnd, CCreateContext* pContext)
{
// 基本クラスが実際の動作を行います。

if (!CFrameWnd::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd, pContext))
{
return FALSE;
}

CWinApp* pApp = AfxGetApp();
if (pApp->m_pMainWnd == NULL)
pApp->m_pMainWnd = this;

// 2 番目のウィンドウで、[ファイル] メニューの [終了] オプションを [閉じる] に置き換えます。
if (AfxGetApp()->m_pMainWnd != this)
{
CMenu *pMenu = GetMenu();
ASSERT(pMenu);
pMenu->ModifyMenu(ID_APP_EXIT, MF_BYCOMMAND | MF_STRING, ID_FILE_CLOSE, "閉じる(&C)");
}

return TRUE;
}
LRESULT CALLBACK MyProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
bool nCmdShow=0;


bool InitInstance(bool HINSTANCE,bool nCmdShow);
{
if(!hWnd){return false;}
ShowWindow(hWnd,nCmdShow);return true;
}
int wmEvent ; PAINTSTRUCT ps;HDC hdc;

switch(message)
{

case WM_PAINT:
//long left,top,right,bottom;


hdc=BeginPaint(hWnd,&ps);
MessageBox(hWnd,"HelloWorld","title",MB_OK);
SetBkMode(hdc,OPAQUE);
SetTextColor(hdc,RGB(255,128,128));
SetBkColor(hdc,RGB(0,0,0));

typedef struct lprc
{
long left,top,right,bottom;
}

DrawTextEx(hdc,"HelloWorld2",12,(lprc.left,lprc.top,lprc.right,lprc.bottom),DT_CENTER,true);
EndPaint(hWnd,&ps);return true;

case WM_CREATE:
DrawTextEx(hdc,"HelloWorld2",12, (lprc.left,lprc.top,lprc.right,lprc.bottom),DT_CENTER,true);

case WM_COMMAND:;wmEvent=(HIWORD(wParam));
SetTextColor(hdc,RGB(255,128,128));
DrawTextEx(hdc,"HelloWorld2",12,(lprc.left,lprc.top,lprc.right,lprc.bottom),DT_CENTER,true);


default: return DefWindowProc(hWnd,message,wParam,lParam);

return 0;}
LRESULT CALLBACK About(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
{switch(message)
{
case WM_INITDIALOG: return true;

}return false;}}



void CMainFrame::OnFileClose()
{
DestroyWindow();
}





********************







Num. by 000-0001
C(API Reference)Dai's C Laboratory Copy Right 2017.04-


WndProc->((HWND)hwnd,(UINT)message,(WPARAM)wParam,(LPARAM)lParam);
if (message.wParam)
{
wLength=(int)lstrlen(message.wParam)*8;
hLength=(int)lstrlen(message.wParam)*16;
countWord=(int)lstrlen(message.wParam);
SetRect(lprect,0,0,wLength,hLength);
DrawText(hdc,message.wParam,countWord,lprect,NULL);
}
else
{
massege &wParam;
if (!wParam)
{
WPARAM *wParam;
wParam=new Char[100];
}

}


Num. by 000-0001

今回は、WndProc(ウインドウプロシージャ)に対して、ポインタを指定します。”hwnd”ウインドウハンドルは、(HWND)キャストされています。メッセージは、キーボードストロークで整数値でキャストする2バイトの(UINT)キャストです。WPARAMとLPARAMパラメーターを引用します。UINTの条件が、”wParam”にオーバーライドされていない時、elseに、WPARAMのポインタ(*)に”wParam”を指定して、wParamにnew演算子にてキーボードストロークを100回分のキーボード入力をします。ifにて、”massage.wParam”にオーバーライドが、真で有れば文字の幅(8ピクセル)、文字の高さ(16ピクセル)、文字の数を、wLength,hLength,countWord各lstrenにて求めます。SetRectにて四角形の座標を入力して、レクトの形に合わせて、自動で文字幅を合わせられます。DrawText関数にて、事前に設定したパラメーターを入力します。
This Appointment is Pointer to WndProc withon Cast Settings,message is Get Key Borad Stroke Matrix 16Bit Cast of UINT,Call WPARAM and LPARAM,This Terms by No OverRide with Execute Then Though and else in WPARAM Pointer is (*) Marks with "wParam" on That by "new" Function and "Char" of KeyBorad Stroke Input Infometion Count to 100,User Reply Typing This Function ask it,if Statement by that "message.wParam" to OverRide is case in True as Word Width(x8),Word Height(x16),Word Count(Equivalent),But Variable(wLength and hLength and countWord) Execute in case by API (lstren) to Result Decision,Square of Rect In Put Coordinate Infomation,Automation Font Word Size at Fit Word,Behind Thing Settings Paramater InPut to DrawText(API).

C(API Reference)Dai's C Laboratory Copy Right 2017.04-

Num. by 000-0002

//PromptType Declaration

HANDLE* hFile;

HANDLE CreateFile
(
LPCTSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDistribution,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile
);

//Parameter Settings

LPCTSTR lpFileName="NewSequential_Read_Write";
DWORD dwDesiredAccess=(GENERIC_READ|GENERIC_WRITE);
DWORD dwShareMode=(FILE_SHARE_WRITE);
LPSECURITY lpSecurityAttributes=NULL;
DWORD dwCreationDistribution=(CREATE_ALWAYS);
DWORD dwFlagsAndAttributes=(FILE_FLAG_SEQUENTIAL_SCAN);
HANDLEA hTemplateFile=NULL;


//CreateFile Execute
hFile=CreateFile
(
lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,
dwCreationDistribution,dwFlagsAndAttributes,hTemplateFile
);

if(!ar)
{
CArchive * ar;
CArchive &ar;
}
lpBuffer<
nNumberOfBytesWrite=(DWORD) sizeof(lpBuffer)

BOOL WriteFile(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesWrite,
LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped);
if(!lpBuffer)
{
lpBuffer< }

lpNmuberOfByteRead=(LPCVOID)sizeof(lpBuffer);

BOOL ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfByteToRead,
LPDWORD lpNumberOfByteRead,LPOVERLAPPED lpOverlapped);

ar[].delete;
hFile[].delete

Num. by 000-0002

ファイルのオープンをする論文です。主にこのソースは、クリエイトファイルのプロトタイプ宣言を行っている他、全ての数値にパラメーターを代入しています。実行される直前に変数が空になりません。アーカイブを使ってストリーミングをしていない場合は、フレームワークからCArchiveにarにポインタし、これを、lpBufferにLPCVIOD形式で、CArchiveからストリーミングされます。arは参照されます。ストリーミング後のlpBufferにsizeofを指定して、ファイルサイズを計算しています。<<コマンドで配列を一斉に読み書きするため、配列子の[ ]は省略されません。最後にarとhFileにdeleteでデストラクタでポインタを最後に削除しておくようにします。

Decision Report of File Open,Main Source is PromtType Declare by Execute else All Value to In Put,No Empty Case Execute is Behind Now.No Use Streaming Case is by Pointer CArchive in Frame Work It.But lpBuffer is Type LPVOID Change Format,Reference Many Place ar,This Open File is sizeof Target lpBuffer in Total Size.Streaming Command is Execute << by at the same time,But Arregement "[ ] " is No Skip.Last is ar and hFile at Desstruct Release of Memory by delete and Mean.
C(API Reference)Dai's C Laboratory Copy Right 2017.04-

Num. by 000-0003

MSG*message;

[module(name=method1)];

struct method1
{
[switch_type(int), switch_is(message)] union members;
{
[case (256),int];
{
if(GetKeyState(17)<0)
{lstrcpy(ctrl,"ON");}
else{lstrcpy(ctrl,"OFF");}

if(GetKeyState(16)<0)
{lstrcpy(shift,"ON");}
else{lstrcpy(shift,"OFF");}


if(GetKeyState(20)<0)
{lstrcpy(caps,"ON");}
else{lstrcpy(caps,"OFF");}

wsprintf(scripts,"MessageCord= %0x , Ctrl = s% , Shift = s% , Caps= s%" , lpMsg , ctrl , shift , caps ) ;
InvalidateRect(hWnd,NULL,TRUE);
break;
}

[case (15),int];
{
hWnd=BeginPaint(hWnd,&ps);
lstrcat(scripts,lpMsg);
TextOut(hWnd,0,0,scripts,lstrlen(scripts));
EndPaint(hWnd,&ps);
break;
}
[case (2),int];
{
PostQuitMessage(0);
};
TranslateMessage(MSG message);
};};




文字コードとドグルの判定により、押下の判定と、文字コードをscriptsにwsprintfにて初期化文字列したものに加え、wParam.messageをMSGとコピーコントラクスタを置き、、*ポインタで、lpMsgを宣言します。ウインドウが描画されるとき、WM_PAINTが実行され、hWnd、ウインドウハンドルに、架空のペイントストラクトに参照して、連動して書き換えます。開始描画が宣言されたあと、scriptsと、lpMsgを追加合成し、実際に、文字コードが、入力した文字に変換されるように翻訳(Translate)を行います。TextOutにて、hWndハンドルに加え、座標を0,0に縦横をセットし、scriptsと、scripts文字数を記述し、TextOutで文字列が出力されます。開始したのは、終わりの宣言をもって、描画を終え、return 0 ; とします。この点でエラーは無いということです。主に此のプログラムは、GetKeyboardStateで入力されたのを、ドグルされていれば、0(Fault:偽)、-1(True:真)と成る、BOOL判定です。是を、GetKeyboardStateと比較することによって、押下されているか判定し、また、システムキー以外の文字位置の場合は、Aであれば文字コードは、其れの位置に相当するソフトキーボードの&H0041であり¥であれば&HFFE5と成ります。ソフトキーボードは、IMEパットで読み出せます。文字コードは、4桁の16進数ですから0からFまであります。また、Translate後の文字コードは、字に変換されるので、&H0041であれば、「A」と同じ文字に直されます。閉じるボタンを押したときは、PostQuitMessage(0);にて、終了処理を取ります。テキストアウトは、インバリデートレクトにて、hWndのハンドルで開始描画し、長方形の取得を、NULLは、領域全体に対して、次のTRUEは、画面を消去して、文字列を描画します。


User's Typing This Program of Terms Hit Out with Push Down,Word Cord Hit Down in Result,Foundation Text Format Insert Variable Value on Conteiner by wsprintf.Copy Construct Copy Template to MSG by wParam.message,Declaration *Pointer to lpMsg.This Program is in Drawing Then Execute WM_PAINT,Add hWnd,WindowHandle and Empty PaintStruct Reference Linking Wote,That Same Times is Begin Paint Drawing Text View of Show Display,scripts[80] Addition Translate Key Cord x0041 at "A".Text Drawing Coordinate Horizontal,Vertical is 0 and 0 Start Setting,with scripts,Addition Count Out Number,Begin and End Drawing is Result return 0;This is No Mistake Result 0.Mainning This Program is Type and Type by GetKeyboardState That Thing Typed Result Hit Down Switch On is Fault(0),True(-1) and Bool Hit Count,Type by Relation Switch up as Same Thing,Through No System key Hit Down,Passenger No System key is Character "A" is x0041(&H0041) Translate "A" Type Word Changes,Show Soft Key Board Reference IME - Pad by Information,\ is xFFE5 is 2Byte Character.Close Window and End Window by PostQuitMessage(0); with Destroy Window.InvalidateRect Coordinate Full Screen Clear with All Vector Drawing by NULL and TRUE with hWnd Handle.

Num. by 000-0004

ウインドウプロシージャ更新版、動作確認済み雛形
test5.exeダウンロード400KB以内のソースコード
こちらのものは、マイクロソフト”.NET”動作可能修正済コード。主に、メッセージループの間に、WCEXを定義しないことで動作可能とした。全てのコマンドは、スルーされるよって雛形のみの動作を確認している

test5.cpp
********************



WNDCLASSEX wcex;
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.style=CS_HREDRAW | CS_VERDRAW | CS_DBLCLKS;
wcex.lpfnWndProc=(WNDPROC)WndProc;
wcex.cbClsExtra=0;
wcex.WndExtra=0;
wcex.hInstance=hInstance;
wcex.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wcex.hCursor=LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackgrpund=(HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMNenuName=NULL;
wcex.lpszClassName="ModelAPP";
wcex.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
RegisterClassEx(&wcwex);

hWnd=CreateWindow(wcex.lpszClassName,WS_OVERLAPPEDWINDOW,CW_USERDEFAULT,CW_USERDEFAULT,CW_USERDEFAULT,CW_USERDEFAULT,NULL,NULL,hInstance,NULL);

LRESULT CALLBACK MyProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
bool nCmdShow=0;


bool InitInstance(bool HINSTANCE,bool nCmdShow);
{
if(!hWnd){return FALSE;}
ShowWindow(hWnd,nCmdShow);return TRUE;
}
int wmEvent ; PAINTSTRUCT ps;HDC hdc;

switch(message)
{

case WM_PAINT:


hdc=BeginPaint(hWnd,&ps);
MessageBox(hWnd,"HelloWorld","title",MB_OK);
SetBkMode(hdc,OPAQUE);
SetTextColor(hdc,RGB(255,128,128));
SetBkColor(hdc,RGB(0,0,0));
TextOut(hdc,0,0,"HelloWorld",lstrlen("HelloWorld"));

screct.left=0;
screct.top=0;
screct.right=640;
screct.bottom=480;

DrawTextEx(hdc,"指数は幾つですか",100,&screct,DT_CENTER,NULL);
EndPaint(hWnd,&ps);return 0;

case WM_CREATE:
hDC=GetDC(hwnd);
GetTextExtentPoint32(hdc,"HelloWorld",10,NULL);
ReleaseDC(hWnd,hdc);
return 0;


TextOut(hdc,0,0,"HelloWorld",10);

case WM_COMMAND:;wmEvent=(HIWORD(wParam));

default: return DefWindowProc(hWnd,message,wParam,lParam);

return 0;}
LRESULT CALLBACK About(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
{switch(message)
{
case WM_INITDIALOG: return TRUE;

}return FALSE;}}

ShowWindow(hWnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}




stdafx.cpp
********************

#include "stdafx.h"

LRESULT CALLBACK MyProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
bool nCmdShow=0;


bool InitInstance(bool HINSTANCE,bool nCmdShow);
{
if(!hWnd){return FALSE;}
ShowWindow(hWnd,nCmdShow);return TRUE;
}
int wmEvent ; PAINTSTRUCT ps;HDC hdc;

switch(message)
{

case WM_PAINT:


hdc=BeginPaint(hWnd,&ps);
MessageBox(hWnd,"HelloWorld","title",MB_OK);
SetBkMode(hdc,OPAQUE);
SetTextColor(hdc,RGB(255,128,128));
SetBkColor(hdc,RGB(0,0,0));
TextOut(hdc,0,0,"HelloWorld",lstrlen("HelloWorld"));
DrawTextEx(hdc,"指数は幾つですか",100,NULL,DT_CENTER,NULL);
EndPaint(hWnd,&ps);return 0;

case WM_CREATE:
SetTextColor(hdc,RGB(255,128,128));
TextOut(hdc,0,0,"HelloWorld",10);

case WM_COMMAND:;wmEvent=(HIWORD(wParam));

default: return DefWindowProc(hWnd,message,wParam,lParam);

return 0;}
LRESULT CALLBACK About(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
{switch(message)
{
case WM_INITDIALOG: return TRUE;

}return FALSE;}}

ストックマーケットマスターアーカイブ他解法 シスアド11

2019-03-20 03:55:09 | 日記
********************
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 STAFFEXPARENT(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 EXPARENT(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 "Exparent 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 EXPARENT=INT(VAL(CSV$(9,1))/RATE+.1#*1000000)
640 INCOME=INT(EXPARENT/100000*3+.1#)
650 PRINT "Exparent of";EXPARENT;" 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 "Exparent 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 "Exparent 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 EXPARENT(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:EXPARENT(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:EXPARENT(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:EXPARENT(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:EXPARENT(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:EXPARENT(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)=EXPARENT(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):EXPARENT(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):EXPARENT(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):EXPARENT(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):EXPARENT(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:EXPARENT(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:EXPARENT(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:EXPARENT(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))= 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 2570 IF LAP*50

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 2630 *OUTIN
2640 CLOSE


就業管理プログラム シスアド10 解法

2019-03-20 03:53:37 | 日記
***********************
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 EXPARENT=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)) 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)でアクセスすることで参照します。雇用状況が全員のものが、一台でトラブル状況、作業効率、作業態度などを自主報告させ、また、新規の人は、オペレーターが入会を許可すれば、入れます。登録に登記すると、他の人と同じように、ストレス、人間関係、目標達成感など雇用を基本的に鑑定します。これを自主報告に基づくもので、何かがあれば即座に報告されることが出来ます。本プログラムは、比較的リスクの少ないプログラムですが、ソースコードが少し長いです。

コミニュケーションプログラム シスアド9

2019-03-20 03:52:40 | 日記
*************
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 Useing Virtual Function " LOC1 " And "LOC2 " is Automation A Justment Coordination at Cloumn 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.


専売証券 不動産会社 シスアド8 解法

2019-03-20 03:51:23 | 日記
********************
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 Exparent Type (\6,000,000) or 50 Exparent 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 Exparent 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 Exparent 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 Exparent."
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 Exparent 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 MAXREGIONEXPARENT="(CSV(PAGE,4)*30):MAXCITYEXPARENT=(CSV(PAGE,5)*50)
820" ENTERPRISECOST="20000000:EXPARENTCOST=1D-006:REGIONEXPARENT=COSTREGION*EXPARENTCOST:HIGHCITYEXPARENT=COSTHIGHCITY*EXPARENTCOST
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 "Exparent";(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 Actural Cover Variable This Labeling to Basic Programing Compleate Exsitance,No Perfect Calss After This Character Base Interface Extanal Control No Acturalism.Class ExSample is Difference This Basic Standard Discuttion " Dai's C Laboratory ".This Original Make Function is Variable Base Method Value.This Image Directional by Basic Standard's,Differnce Sequence Archive Input Output to Visual C by Basic CSV Data Base Programing,This Make Function Variable Value is Standard JavaScript Function Like This Scripting,This Archive Basic is No Graohic Interface,No Open Actural with Virtual Function,Relational Make Function and Result to Operating Find and Control Input Output.This Agree First Year is Double Incomming 10/1 After Year by Pass Market Place Security Trading by Incomming 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 Demention 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,Desplay 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 Arragement Value CSV is Result Equivalent If Case Zero,Then Skip and Back Start,Re Try and No Mistake No Get Onece.
行番号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 Lisence Land Buyer,About Input Container Arragement 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 Progress1.
行番号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 Useing Technology Change Target,Private Actual Typing Objective Counter-Measurement by 98 Basic.Model Actual is Pure Class or Defintion Function No Same Virtual,Get Plan Technology is Approach Visual C to Purpose.This Case is Multiply or Divide or Addtion or Subtract Execute Method,Model Math X,Y Near Analyze.Side User is Accept Type Infomation on Hidden Private by User Can Oparation on Flat Seamles Selected Inputing.
行番号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千万のコストで、今現在、採算より得られた、枚数を表示します。