Stdlib 関数¶
stdlib.ring 関数の用法です。
この関数の使用前に stdlib.ring ライブラリを読み込みます。
load "stdlib.ring"
stdlibcore.ring (StdLib 関数) も使えます (クラスはありません)。
これはスタンドアローン型のコンソールアプリケーションを作成する場合に便利です。
stdlib.ring (関数とクラス) は RingLibCurl, RingOpenSSL などのライブラリを読み込みます。
Puts() 関数¶
値を表示後に改行 (nl) を表示します。
文法:
puts(式)
用例:
Load "stdlib.ring"
Puts("Hello, World!")
Print() 関数¶
文字列の表示 - \n, \t および \r に対応しています。
#{変数名} で変数の値を挿入します。
文法:
print(文字列) ---> 文字列
用例:
print("\nHello, World\n\nHow are you? \t\t I'm fine!\n")
x=10 y=20
print("\nx value = #{x} , y value = #{y} \n")
Print2Str() 関数¶
文法:
print2Str(文字列) ---> 文字列
用例:
world = "World!"
mystring = print2str("Hello, #{world} \nIn Year \n#{2000+17} \n")
see mystring + nl
実行結果:
Hello, World!
In Year
2017
GetString() 関数¶
キーボードからの標準入力を取得します。 - 返値は文字列です。
getstring() ---> 文字列
GetNumber() 関数¶
キーボードからの標準入力を取得します。 - 返値は数値です。
getnumber() ---> 数値
AppPath() 関数¶
アプリケーションフォルダのパスを取得します。
文法:
AppPath() ---> パスの文字列
用例:
Load "stdlib.ring"
# アプリケーションのパス
Puts("Test AppPath()")
See AppPath() + nl
JustFilePath() 関数¶
ファイル名を除去したファイルパスを返します。
文法:
JustFilePath(cFile) ---> 文字列はパスです。
用例:
load "stdlib.ring"
see justfilePath("c:\ring\applications\rnote\rnote.ring")
実行結果:
c:\ring\applications\rnote\
JustFileName() 関数¶
ファイルパスを除去したファイル名を返します。
文法:
JustFileName(cFile) ---> 文字列はファイル名です。
用例:
load "stdlib.ring"
see justfileName("c:\ring\applications\rnote\rnote.ring")
実行結果:
rnote.ring
Value() 関数¶
リストまたはオブジェクトからコピーを作成します。
文法:
value(リスト) ---> 新しいリスト
用例:
Load "stdlib.ring"
aList = 1:10
del(value(aList), 1) # 最初のリストを削除
see aList # 1 ~ 10 までの数値を表示します。
Times() 関数¶
関数を nCount 回実行します。
文法:
Times(nCount, 関数)
用例:
Load "stdlib.ring"
Puts("Test Times()")
Times ( 3 , func { see "Hello, World!" + nl } )
Map() 関数¶
リストの項目ごとに関数を実行します。
文法:
Map(alist,function) ---> リスト
用例:
Load "stdlib.ring"
Puts("Test Map()")
See Map( 1:10, func x { return x*x } )
Filter() 関数¶
項目を篩い分けるために各リストの項目へ関数を実行します。
文法:
Filter(alist,function) ---> リスト
用例:
Load "stdlib.ring"
Puts("Test Filter()")
See Filter( 1:10 , func x { if x <= 5 return true else return false ok } )
Split() 関数¶
文字列の語からリスト項目へ変換します。
文法:
Split(cstring, 区切り文字) ---> リスト
用例:
Load "stdlib.ring"
Puts("Test Split()")
See Split("one two three four five"," ")
SplitMany() 関数¶
文字列の語からリスト項目へ変換します。いろいろな区切り文字を使うことができます。
文法:
SplitMany(cstring, 文字列またはリスト形式による区切り文字) --> リスト
用例:
Load "stdlib.ring"
Puts("Test SplitMany()")
See SplitMany("one,two,three,four and five"," ,")
Capitalized() 関数¶
一文字目を大文字へ変換した文字列のコピーを返します。
文法:
Capitalized(文字列) ---> 文字列
用例:
Load "stdlib.ring"
Puts("Test Capitalized()")
See capitalized("welcome to the Ring Programming Language")
IsSpecial() 関数¶
文字が特殊文字か確認します。
文法:
IsSpecial(char) ---> True/False
用例:
Load "stdlib.ring"
Puts("Test Isspecial()")
See "Isspecial = " + isSpecial("%") + nl
IsVowel() 関数¶
文字が母音か確認します。
文法:
IsVowel(char) ---> True/False
用例:
Load "stdlib.ring"
Puts("Test Isvowel()")
See "Isvowel = " + isVowel("c") + nl
LineCount() 関数¶
テキストファイルの行数を返します。
文法:
LineCount(cFileName) ---> 行数
用例:
Load "stdlib.ring"
Puts("Test Linecount()")
See "the number of lines = " + lineCount("test.ring")
Factorial() 関数¶
累乗数を返します。
文法:
Factorial(number) ---> 数値
用例:
Load "stdlib.ring"
Puts("Test Factorial()")
see "6 factorial is : " + Factorial(6)
Fibonacci() 関数¶
フィボナッチ数を返します。
文法:
Fibonacci(number) ---> 数値
用例:
Load "stdlib.ring"
Puts("Test Fibonacci()")
see "6 Fibonacci is : " + Fibonacci(6)
IsPrime() 関数¶
数値が素数か返します。
文法:
isprime(number) ---> 数値
用例:
Load "stdlib.ring"
Puts("Test Isprime()")
if isPrime(16) see "16 is a prime number"
else see "16 is not a prime number" ok
Sign() 関数¶
数値の符号を示した整数の値を返します。
文法:
Sign(number) ---> 数値 ( -1 = 負数 , 0 , 1 (整数) )
用例:
Load "stdlib.ring"
Puts("Test Sign()")
see "sign of 12 is = " + sign(12) + nl
List2File() 関数¶
リスト項目をテキストファイルへ書き出します (項目ごとに改行されます)。
文法:
List2File(aList, cFileName)
用例:
Load "stdlib.ring"
# List2File のテスト
Puts("Test List2File()")
list2file(1:100,"myfile.txt")
File2List() 関数¶
テキストファイルを読み取って行をリスト項目へ変換します。
文法:
File2List(cFileName) ---> リスト
用例:
Load "stdlib.ring"
# File2List のテスト
Puts("Test File2List()")
see len(file2list("myfile.txt"))
StartsWith() 関数¶
指定された文字列が指定された部分文字列で始まるならば true を返します。
先頭の空白文字は無視されます。
文法:
StartsWith(string, substring) ---> True/False
用例:
Load "stdlib.ring"
Puts("Test Startswith()")
see Startswith("CalmoSoft", "Calmo") + nl
EndsWith() 関数¶
指定された文字列が指定された部分文字列で終わるならば true を返します。
末尾の空白文字は無視されます。
文法:
Endswith(string, substring) ---> True/False
用例:
Load "stdlib.ring"
Puts("Test Endswith()")
see endsWith("CalmoSoft", "Soft") + nl
GCD() 関数¶
二つの整数における最大公約数 (Greatest Common Divisor) を計算します。
文法:
Gcd(number,number) ---> 数値
用例:
Load "stdlib.ring"
Puts("Test Gcd()")
see gcd (24, 32) + nl
LCM() 関数¶
二つの整数における最小公約数 (Least Common Multiple) を計算します。
文法:
lcm(number,number) ---> 数値
用例:
Load "stdlib.ring"
Puts("Test Lcm()")
see Lcm(24,36) + nl
SumList() 関数¶
整数のリストにおける総和を計算します。
文法:
sumlist(リスト) ---> 数値
用例:
Load "stdlib.ring"
Puts("Test Sumlist()")
aList = [1,2,3,4,5]
see Sumlist(aList) + nl
ProdList() 関数¶
整数リストの積を計算します。
文法:
prodlist(リスト) ---> 数値
用例:
Load "stdlib.ring"
Puts("Test Prodlist()")
aList = [1,2,3,4,5]
see Prodlist(aList) + nl
EvenOrOdd() 関数¶
整数が奇数か偶数かテストします。
テストの結果は (1 = 奇数、2 = 偶数) です。
文法:
evenorodd(number) ---> 1 (奇数) または 2 (偶数)
用例:
Load "stdlib.ring"
Puts("Test Evenorodd()")
nr = 17
see Evenorodd(nr) + nl
Factors() 関数¶
整数の素因数分解を計算をします。
文法:
factors(number) ---> リスト
用例:
Load "stdlib.ring"
Puts("Test Factors()")
n = 45
aList = factors(n)
see "Factors of " + n + " = "
for i = 1 to len(aList)
see "" + aList[i] + " "
next
IsPalindrome() 関数¶
文字列が回文か確認します。
文法:
IsPalindrome(String) ---> True/False
用例:
Load "stdlib.ring"
Puts("Test IsPalindrome()")
cString = "radar"
see IsPalindrome(cString)
注釈
Ring 1.9 以前は Palindrome() 関数として使用可能でした。
IsLeapYear() 関数¶
指定された年がグレコリオ暦における閏年か確認します。
文法:
Isleapyear(number) ---> True/False
用例:
Load "stdlib.ring"
Puts("Test Isleapyear()")
year = 2016
if Isleapyear(year) see "" + year + " is a leap year."
else see "" + year + " is not a leap year." ok
BinaryDigits() 関数¶
非負整数値を指定することで二進数配列の計算をします。
文法:
binarydigits(number) ---> 文字列
用例:
Load "stdlib.ring"
Puts("Test Binarydigits()")
b = 35
see "Binary digits of " + b + " = " + Binarydigits(b)
MatrixMulti() 関数¶
行列同士を掛け合わせます。
文法:
Matrixmulti(List,List) ---> リスト
用例:
Load "stdlib.ring"
# 行列同士を掛け合わせます。
Puts("Test Matrixmulti()")
A = [[1,2,3], [4,5,6], [7,8,9]]
B = [[1,0,0], [0,1,0], [0,0,1]]
see Matrixmulti(A, B)
MatrixTrans() 関数¶
サイズ指定による矩形行列の変換を行います。
文法:
Matrixtrans(リスト) ---> リスト
用例:
Load "stdlib.ring"
# サイズ指定による矩形行列の変換を行います。
Puts("Test Matrixtrans()")
matrix = [[78,19,30,12,36], [49,10,65,42,50], [30,93,24,78,10], [39,68,27,64,29]]
see Matrixtrans(matrix)
DayOfWeek() 関数¶
指定された日付 (西暦四桁-月-日) における曜日を返します。
文法:
dayofweek(文字列) ---> 文字列
用例:
Load "stdlib.ring"
# 指定された日付における曜日を返します。
Puts("Test Dayofweek()")
date = "2016-04-24"
see "Data : " + date + " - Day : " + Dayofweek(date) + nl
Permutation() 関数¶
n 個の異なる数値における配列を全て生成します。
文法:
permutation(リスト)
用例:
Load "stdlib.ring"
# n 個の異なる数値における配列を全て生成します。
Puts("Test Permutation()")
list = [1, 2, 3, 4]
for perm = 1 to 24
for i = 1 to len(list)
see list[i] + " "
next
see nl
Permutation(list)
next
ReadLine() 関数¶
ファイルから一行読み取ります。
文法:
readline(fp) ---> 文字列
用例:
Load "stdlib.ring"
# ファイルから一行ずつ読み取ります。
Puts("Test Readline()")
fp = fopen("test.ring","r")
while not feof(fp)
See Readline(fp) end
fclose(fp)
SubString() 関数¶
文字列の指定位置を始点とした部分文字の位置を返します。
文法:
Substring(str,substr,npos) ---> 文字列
用例:
Load "stdlib.ring"
# 文字列の指定位置を始点とした部分文字の位置を返します。
Puts("Test Substring()")
a = "abcxyzqweabc"
b = "abc"
i = 4
see substring(a,b,i)
ChangeString() 関数¶
部分文字列を指定位置から別の部分文字の指定位置へ変更します。
文法:
Changestring(cString, nPos1, nPos2, cSubstr) ---> cString
用例:
Load "stdlib.ring"
# 部分文字列を指定位置から別の部分文字の指定位置へ変更します。
Puts("Test Changestring()")
see Changestring("Rmasdg",2,5,"in") # Ring
Sleep() 関数¶
指定された秒数まで休止します。
文法:
sleep(nSeconds)
用例:
Load "stdlib.ring"
Puts("Test Sleep()")
see "Wait 3 Seconds!"
Sleep(3)
see nl
IsMainSourceFile() 関数¶
現在のファイルがメインソースファイルか確認します。
文法:
IsMainSourceFile() ---> True/False
用例:
Load "stdlib.ring"
if ismainsourcefile()
# コード
ok
MakeDir() 関数¶
ディレクトリを作成します。
文法:
MakeDir(文字列)
用例:
Load "stdlib.ring"
# ディレクトリの作成
puts("create Directory : myfolder")
makedir("myfolder")
Fsize() 関数¶
ファイルサイズをバイト単位で返します。
文法:
FSize(ファイルのハンドル) ---> 数値 (バイト単位によるファイルサイズ)
TrimAll() 関数¶
文字列から空白とタブ文字を全て除去します。
文法:
TrimAll(cString) ---> cString # 空白とタブを除去します。
TrimLeft() 関数¶
文字列の左側にある空白とタブ文字を全て除去します。
文法:
TrimLeft(cString) ---> cString # 左側から空白とタブを除去します。
TrimRight() 関数¶
文字列の右側にある空白とタブ文字を全て除去します。
文法:
TrimRight(cString) ---> cString # 右側から空白とタブを除去します。
EpochTime() 関数¶
エポック時間を返します。
文法:
EpochTime(cDate,cTime) ---> エポック時間
用例:
see EpochTime( Date(), Time() )
SystemCmd() 関数¶
SystemCmd() 関数は変数を出力してシステムコマンドを実行します。
文法:
SystemCmd(cCommand)
用例:
cYou = SystemCmd("whoami") # 記録されたユーザ名は変数へ出力されます。
cThem = SystemCmd("dir c:\Users") # ディレクトリのリストは変数へ出力されます。
ListAllFiles() 関数¶
ListAllFiles() 関数でフォルダにあるファイルのグループ、およびそのサブフォルダを手軽に処理できます。
文法:
ListAllFiles(cFolder,cExtension) ---> ファイルのリスト
用例:
aList = ListAllFiles("c:/ring/ringlibs","ring") # *.ring のみ
aList = sort(aList)
see aList
用例:
see listallfiles("b:/ring/libraries/weblib","") # 全てのファイル
SystemSilent() 関数¶
SystemSilent() 関数は実行結果を表示せずにシステムコマンドを実行します。
文法:
SystemSilent(cCommand)
OSCreateOpenFolder() 関数¶
フォルダの作成後に、現在のフォルダを作成したフォルダへ変更します。
文法:
OSCreateOpenFolder(cCommand)
OSCopyFolder() 関数¶
現在のフォルダへフォルダをコピーします。
引数 : 親フォルダ (cParentFolder) のパス、およびコピー先のフォルダ名 (cFolderName)
文法:
OSCopyFolder(cParentFolder,cFolderName)
用例:
現在のフォルダへ c:\ring\ringlibs\stdlib フォルダをコピーするには
OSCopyFolder("c:\ring\ringlibs\","stdlib")
OSDeleteFolder() 関数¶
現在のディレクトリにあるフォルダを削除します。
文法:
OSDeleteFolder(cFolderName)
OSCopyFile() 関数¶
現在のディレクトリへファイルをコピーします。
文法:
OSCopyFile(cFileName)
OSDeleteFile() 関数¶
ファイルを削除します。
文法:
OSDeleteFile(cFileName)
OSRenameFile() 関数¶
ファイル名を変更します。
文法:
OSRenameFile(cOldFileName,cNewFileName)
List2Code() 関数¶
この関数は Ring リストを実行中に Ring ソースコードへ変換することでソースファイルを保存できるようにします。
リストは文字列、数値または部分リストから構成されます。
用例:
load "stdlibcore.ring"
aList = 1:10
? list2Code(aList)
実行結果:
[
1,2,3,4,5,6,7,8,9,10
]
Str2ASCIIList() 関数¶
各項目が 1 バイト ASCII コードとなる文字列表現のバイト文字列を数値リストへ変換します。
文法:
Str2ASCIIList(文字列) ---> 数値リスト
ASCIIList2Str() 関数¶
各項目が 1 バイト ASCII コード表現となる数値リストをバイト文字列へ変換します。
文法:
ASCIIList2Str(数値リスト) ---> 文字列
用例:
load "stdlibcore.ring"
cStr = "MmMm"
aList = Str2ASCIILIST(cStr)
? aList
cStr2 = ASCIIList2Str(aList)
? cStr2
? len(cStr2)
実行結果:
77
109
77
109
MmMm
4
IsListContainsItems() 関数¶
文法:
IsListContainsItems(aParent,aChild) ----> True/False
用例:
load "stdlibcore.ring"
aList1 = "a":"z"
aList2 = [:h,:l,:p,:u]
? IsListContainsItems(aList1,aList2)
IsBetween() 関数¶
文法:
IsBetween(nNumber,nMin,nMax) ----> True/False
用例:
load "stdlibcore.ring"
? isBetween(1,3,4)
? isBetween(1,-3,4)
? isBetween(4,1,6)
? isBetween(4,3,4)
TimeInfo() 関数¶
文法:
TimeInfo(cInformation) ----> 文字列
cInformation の値はこのようになります。
:hour_24
:hour_12
:minutes
:seconds
:time
:day_short
:day_long
:month_short
:month_long
:date_time
:day
:day_year
:month_year
:am_pm
:week_year
:day_week
:date
:year_century
:year
:time_zone
:percent_sign
用例:
load "stdlibcore.ring"
? timeInfo(:date)
? timeInfo(:time)
? timeInfo(:hour_12)