🍩Ring 1.12:docs

- News
- Download
- Get Help
- Contribute
- Resources
- Team
- Website
- Index

### ナビゲーション

- 次へ »
- » 前へ |
- プログラミング言語 Ring 1.12 取扱説明書 »
- Stdlib 関数

# 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("b:\ring\applications\rnote\rnote.ring")

実行結果:

    b:\ring\applications\rnote\

## JustFileName() 関数

ファイルパスを除去したファイル名を返します。

文法:

    JustFileName(cFile) ---> 文字列はファイル名です。

用例:

    load "stdlib.ring"

    see justfileName("b:\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"," ,")

## NewList() 関数

二次元リストの作成

文法:

    NewList(nRows, nColumns) ---> 新しいリスト

用例:

    Load "stdlib.ring"

    Puts("Test Newlist()")
    a1 = 3
    a2 = 5
    chrArray = newlist(a1,a2)
    numArray = newlist(a1,a2)
    chrArray[1][1] = "Hello"
    numArray[1][1]  = 987.2
    See chrArray[1][1] + nl
    See numArray[1][1] + nl

## 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

## DirExists() 関数

ディレクトリが存在するかどうか確認します。

文法:

    DirExists(文字列) ---> True/False

用例:

    Load "stdlib.ring"

    see "Check dir : b:\ring "
    puts( DirExists("b:\ring") )
    see "Check dir : C:\ring "
    Puts( DirExists("C:\ring") )

## 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/ringlibs/weblib","") # 全てのファイル

## SystemSilent() 関数

SystemSilent() 関数は実行結果を表示せずにシステムコマンドを実行します。

文法:

    SystemSilent(cCommand)

## OSCreateOpenFolder() 関数

フォルダの作成後に、現在のフォルダを作成したフォルダへ変更します。

文法:

    OSCreateOpenFolder(cCommand)

## OSCopyFolder() 関数

現在のフォルダへフォルダをコピーします。

引数 : 親フォルダ (cParentFolder) のパス、およびコピー先のフォルダ名 (cFolderName)

文法:

    OSCopyFolder(cParentFolder,cFolderName)

用例:

現在のフォルダへ b:\ring\ringlibs\stdlib フォルダをコピーするには

    OSCopyFolder("b:\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() 関数

各項目が１バイト ASCII コードとなる文字列表現のバイト文字列を数値リストへ変換します。

文法:

    Str2ASCIIList(文字列) ---> 数値リスト

## ASCIIList2Str() 関数

各項目が１バイト 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 の値はこのようになります。

    :time
    :hour_24
    :hour_12
    :minutes
    :seconds
    :date
    :day_long
    :day_short
    :month
    :year

用例:

    load "stdlibcore.ring"
    ? timeInfo(:date)
    ? timeInfo(:time)
    ? timeInfo(:hour_12)