[ここをクリックすると内容が表示されます]
コード: 全て選択
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関数を作ってみました。
バグや明らかな書き間違い、質問や意見など何かあったらどうぞ。