[ここをクリックすると内容が表示されます]
コード: 全て選択
Function StrForQWord$(qwd As QWord) As String
	Dim buffer[32] As Byte
	Dim i As Long
	Dim a As QWord
	Dim s=48 As Byte
	Dim buffer2[32] As Byte
	Dim I As Long
	Dim x As QWord
	Dim y As QWord
	i = 0
	x = 10
	y = 1
	debug
	Do
		a = qwd Mod x
		buffer = Waru_QWord(a,y) + s As Byte
		qwd = qwd - a
		x = x * 10
		y = y * 10
		i = i + 1
	Loop Until qwd = 0
	buffer2 = 0
	For I=1 To i
		buffer2(I-1)=buffer(i-I)
	Next I
	StrForQWord$ = MakeStr(buffer2)
End Function
Function Waru_QWord(A As QWord,B As QWord) As Byte
	Dim C As QWord
	Dim I As Byte
	Do
		C=A
		A=A-B
		If A>C then Exit Do
		I=I+1
	Loop
	Waru_QWord=I
End Function
Function ValForQWordString(A$ As String) As QWord
	ValForQWordString=ValForQWord(StrPtr(A$))
End Function
Function ValForQWord(pA As BytePtr) As QWord
	Dim I As Long
	Dim buffer(32) As Byte
	Dim A$ As String
	Dim x As QWord
	A$=MakeStr(pA)
	For I=0 To Len(A$)-1
		buffer(I)=A$(I)-48
	Next I
	x=1
	For I=Len(A$)-1 To 0 Step -1
		If buffer(I)>10 then Exit For
		ValForQWord = ValForQWord + Kakeru_QWord(buffer(I),x)
		x = x * 10
	Next I
End Function
Function Kakeru_QWord(A As Byte,B As QWord) As QWord
	Dim C As QWord
	Dim I As Long
	C = 0
	If A>1 then
		For I=1 To A
			C = C + B
		Next I
	Else
		C = B
	End If
	Kakeru_QWord = C
End Function
Sub InputForQWord(PrintString As String,fQuestion As Long,ByRef Inp As QWord)
	Dim A$ As String
	If fQuestion then
		Print PrintString+"?";
	Else
		Print PrintString;
	End If
	
	Input A$
	Inp=ValForQWordString(A$)
End Sub
Sub PrintForQWord(PrintQWord As QWord,fReturn As Long)
	Dim A$ As String
	A$=StrForQWord$(PrintQWord)
	If fReturn then
		Print A$
	Else
		Print A$;
	End If
End Sub
Function StrForInt64$(it64 As Int64) As String
	Dim buffer[32] As Byte
	Dim i As Long
	Dim a As QWord
	Dim s=48 As Byte
	Dim buffer2[32] As Byte
	Dim I As Long
	Dim x As QWord
	Dim y As QWord
	Dim flag=0 As Long
	If it64<0 then
		flag=1
		it64 = -1 * it64
	End If
	i = 0
	x = 10
	y = 1
	Do
		a = it64 Mod x
		buffer = Waru_Int64(a,y) + s
		it64 = it64 - a
		x = x * 10
		y = y * 10
		i = i + 1
	Loop Until it64 = 0
	buffer2 = 0
	For I=1 To i
		buffer2(I-1)=buffer(i-I)
	Next I
	StrForInt64$ = MakeStr(buffer2)
	If flag=1 then
		StrForInt64$="-"+StrForInt64$
	End If
End Function
Function Waru_Int64(A As Int64,B As Int64) As Byte
	Dim I As Byte
	Do
		A=A-B
		If 0>A then Exit Do
		I=I+1
	Loop
	Waru_Int64=I
End Function
Function ValForInt64String(A$ As String) As Int64
	ValForInt64String=ValForInt64(StrPtr(A$))
End Function
Function ValForInt64(pA As BytePtr) As Int64
	Dim I As Long
	Dim buffer(32) As Byte
	Dim A$ As String
	Dim x As Int64
	A$=MakeStr(pA)
	For I=0 To Len(A$)-1
		buffer(I)=A$(I)-48
	Next I
	x=1
	For I=Len(A$)-1 To 0 Step -1
		If buffer(I)>10 then Exit For
		ValForInt64 = ValForInt64 + Kakeru_Int64(buffer(I),x)
		x = x * 10
	Next I
End Function
Function Kakeru_Int64(A As Byte,B As Int64) As Int64
	Dim C As QWord
	Dim I As Long
	C = 0
	If A>1 then
		For I=1 To A
			C = C + B
		Next I
	Else
		C = B
	End If
	Kakeru_Int64 = C
End Function
Sub InputForInt64(PrintString As String,fQuestion As Long,ByRef Inp As Int64)
	Dim A$ As String
	If fQuestion then
		Print PrintString+"?";
	Else
		Print PrintString;
	End If
	
	Input A$
	Inp=ValForInt64String(A$)
End Sub
Sub PrintForInt64(PrintInt64 As Int64,fReturn As Long)
	Dim A$ As String
	A$=StrForInt64$(PrintInt64)
	If fReturn then
		Print A$
	Else
		Print A$;
	End If
End Sub各関数の説明
ここをクリックすると各関数の説明が表示されます。 [ここをクリックすると内容が表示されます]
StrForQWord$(qwd As QWord) As String
第一パラメータ:String型にするためのQWord型変数を入れてください。
概要:指定した数値を文字列に変換します。
ValForQWordString(A$ As String) As QWord
第一パラメータ:QWord型にするためのString型変数を入れてください。
概要:指定した文字列を数値に変換します。
ValForQWord(pA As BytePtr) As QWord
第一パラメータ:QWord型にするための文字列ポインタを入れてください。
概要:指定した文字列ポインタにある文字列を数値に変換します。
InputForQWord(PrintString As String,fQuestion As Long,ByRef Inp As QWord)
第一パラメータ:質問時に表示する文字列を入れてください。
第二パラメータ:疑問符をつける場合はTRUEを、つけない場合はFALSEを入れてください。
第三パラメータ:返り値を格納するためのQWord型変数を入れてください。
注意:Promptディレクティブが読み込まれている必要があります。
概要:ユーザーからのデータ入力(数値)を受け付けます。
PrintForQWord(PrintQWord As QWord,fReturn As Long)
第一パラメータ:表示するQWord型変数を入れてください。
第二パラメータ:リターンする場合はTRUEを、しない場合はFALSEを入れてください。
注意:Promptディレクティブが読み込まれている必要があります。
概要:QWord型変数を表示します。
StrForInt64$(it64 As Int64) As String
第一パラメータ:Int64型にするためのQWord型変数を入れてください。
概要:指定した数値を文字列に変換します。
ValForInt64String(A$ As String) As Int64
第一パラメータ:Int64型にするためのString型変数を入れてください。
概要:指定した文字列を数値に変換します。
ValForInt64(pA As BytePtr) As Int64
第一パラメータ:Int64型にするための文字列ポインタを入れてください。
概要:指定した文字列ポインタにある文字列を数値に変換します。
InputForInt64(PrintString As String,fQuestion As Long,ByRef Inp As Int64)
第一パラメータ:質問時に表示する文字列を入れてください。
第二パラメータ:疑問符をつける場合はTRUEを、つけない場合はFALSEを入れてください。
第三パラメータ:返り値を格納するためのInt64型変数を入れてください。
注意:Promptディレクティブが読み込まれている必要があります。
概要:ユーザーからのデータ入力(数値)を受け付けます。
PrintForInt64(PrintInt64 As Int64,fReturn As Long)
第一パラメータ:表示するInt64型変数を入れてください。
第二パラメータ:リターンする場合はTRUEを、しない場合はFALSEを入れてください。
注意:Promptディレクティブが読み込まれている必要があります。
概要:Int64型変数を表示します。
※ここに説明されていない関数は説明されている関数を支えるために設計されてある隠し関数です。よって直接使用する事を推奨しません。
第一パラメータ:String型にするためのQWord型変数を入れてください。
概要:指定した数値を文字列に変換します。
ValForQWordString(A$ As String) As QWord
第一パラメータ:QWord型にするためのString型変数を入れてください。
概要:指定した文字列を数値に変換します。
ValForQWord(pA As BytePtr) As QWord
第一パラメータ:QWord型にするための文字列ポインタを入れてください。
概要:指定した文字列ポインタにある文字列を数値に変換します。
InputForQWord(PrintString As String,fQuestion As Long,ByRef Inp As QWord)
第一パラメータ:質問時に表示する文字列を入れてください。
第二パラメータ:疑問符をつける場合はTRUEを、つけない場合はFALSEを入れてください。
第三パラメータ:返り値を格納するためのQWord型変数を入れてください。
注意:Promptディレクティブが読み込まれている必要があります。
概要:ユーザーからのデータ入力(数値)を受け付けます。
PrintForQWord(PrintQWord As QWord,fReturn As Long)
第一パラメータ:表示するQWord型変数を入れてください。
第二パラメータ:リターンする場合はTRUEを、しない場合はFALSEを入れてください。
注意:Promptディレクティブが読み込まれている必要があります。
概要:QWord型変数を表示します。
StrForInt64$(it64 As Int64) As String
第一パラメータ:Int64型にするためのQWord型変数を入れてください。
概要:指定した数値を文字列に変換します。
ValForInt64String(A$ As String) As Int64
第一パラメータ:Int64型にするためのString型変数を入れてください。
概要:指定した文字列を数値に変換します。
ValForInt64(pA As BytePtr) As Int64
第一パラメータ:Int64型にするための文字列ポインタを入れてください。
概要:指定した文字列ポインタにある文字列を数値に変換します。
InputForInt64(PrintString As String,fQuestion As Long,ByRef Inp As Int64)
第一パラメータ:質問時に表示する文字列を入れてください。
第二パラメータ:疑問符をつける場合はTRUEを、つけない場合はFALSEを入れてください。
第三パラメータ:返り値を格納するためのInt64型変数を入れてください。
注意:Promptディレクティブが読み込まれている必要があります。
概要:ユーザーからのデータ入力(数値)を受け付けます。
PrintForInt64(PrintInt64 As Int64,fReturn As Long)
第一パラメータ:表示するInt64型変数を入れてください。
第二パラメータ:リターンする場合はTRUEを、しない場合はFALSEを入れてください。
注意:Promptディレクティブが読み込まれている必要があります。
概要:Int64型変数を表示します。
※ここに説明されていない関数は説明されている関数を支えるために設計されてある隠し関数です。よって直接使用する事を推奨しません。
QWord型とInt64型用に、Print,Input,Str$,Valの4関数を作ってみました。
バグや明らかな書き間違い、質問や意見など何かあったらどうぞ。