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)