システム関数¶
システム関数の用法です。
System()
SysGet()
SysSet()
SysUnset()
IsMSDOS()
IsWindows()
IsWindows64()
IsUnix()
IsMacOSX()
IsLinux()
IsFreeBSD()
IsAndroid()
GetArch()
Windowsnl()
コマンドライン引数の取得
使用中のソースファイル名を取得
CurrentDir()
ExeFileName()
ChDir()
ExeFolder()
Version()
Shutdown()
System() 関数¶
System() 関数はシステムコマンドを実行します。
文法:
System(cCommand)
用例:
System("myapp.exe") # myapp.exe の実行
System("ls") # ファイルのリストを表示
SysGet() 関数¶
SysGet() 関数は環境変数を取得します。
文法:
SysGet(cVariable)
用例:
see sysget("path") # システムパスの情報を表示
SysSet() 関数¶
SysSet() 関数は指定された環境変数を定義します。
SysSet(cVariable, cValue) ---> 1 ならば成功であり 0 ならば失敗です。
SysUnset() 関数¶
SysUnset() 関数は指定された環境変数を削除します。
SysUnset(cVariable) ---> 1 ならば成功であり 0 ならば失敗です。
IsMSDOS() 関数¶
IsMSDOS() 関数はオペレーティングシステムが MS-DOS か確認します。
文法:
IsMSDOS()
→ オペレーティングシステムが MS-DOS ならば 1 を、そうでなければ 0 を返します。
IsWindows() 関数¶
IsWindows() 関数はオペレーティングシステムが Windows か確認します。
文法:
IsWindows()
→ オペレーティングシステムが Windows ならば 1 を、そうでなければ 0 を返します。
IsWindows64() 関数¶
IsWindows64() 関数はオペレーティングシステムが 64bit 版の Windows か確認します。
文法:
IsWindows64()
→ オペレーティングシステムが Windows64 ならば 1 を、そうでなければ 0 を返します。
IsUnix() 関数¶
IsUnix() 関数はオペレーティングシステムが UNIX か確認します。
文法:
IsUnix()
→ オペレーティングシステムが UNIX ならば 1 を、そうでなければ 0 を返します。
IsMacOSX() 関数¶
IsMacOSX() 関数はオペレーティングシステムが macOS か確認します。
文法:
IsMacOSX()
→ オペレーティングシステムが macOS ならば 1 を、そうでなければ 0 を返します。
IsLinux() 関数¶
IsLinux() 関数はオペレーティングシステムが Linux か確認します。
文法:
IsLinux()
→ オペレーティングシステムが Linux ならば 1 を、そうでなければ 0 を返します。
IsFreeBSD() 関数¶
IsFreeBSD() 関数はオペレーティングシステムが FreeBSD か確認します。
文法:
IsFreeBSD()
→ オペレーティングシステムが FreeBSD ならば 1 を、そうでなければ 0 を返します。
IsAndroid() 関数¶
IsAndroid() 関数はオペレーティングシステムが Android か確認します。
文法:
IsAndroid()
→ オペレーティングシステムが Android ならば 1 を、そうでなければ 0 を返します。
用例¶
see "IsMSDOS() --> " + ismsdos() + nl
see "IsWindows() --> " + iswindows() + nl
see "IsWindows64() --> " + iswindows64() + nl
see "IsUnix() --> " + isunix() + nl
see "IsMacOSX() --> " + ismacosx() + nl
see "IsLinux() --> " + islinux() + nl
see "IsFreeBSD() --> " + isfreebsd() + nl
see "IsAndroid() --> " + isandroid() + nl
実行結果:
IsMSDOS() --> 0
IsWindows() --> 1
IsWindows64() --> 0
IsUnix() --> 0
IsMacOSX() --> 0
IsLinux() --> 0
IsFreeBSD() --> 0
IsAndroid() --> 0
GetArch() 関数¶
GetArch() 関数は Ring 実行可能ファイルが動作しているアーキテクチャ名を検出します。
文法:
GetArch() ---> cString (Ring 実行可能ファイルが動作しているアーキテクチャ名)
利用できる値:
x86
x64
arm64
arm
unknown
用例:
switch getarch()
on "x86"
? "x86 32bit アーキテクチャ"
on "x64"
? "x64 64bit アーキテクチャ"
on "arm64"
? "ARM64 64bit アーキテクチャ"
on "arm"
? "ARM 32bit アーキテクチャ"
other
? "Unknown アーキテクチャ"
off
Windowsnl() 関数¶
Windowsnl() 関数は Windows の改行文字を取得します。
文法:
WindowsNL() → CR+LF = CHAR(13) + CHAR(10) から構成される文字列
用例:
cStr = read("input.txt")
if iswindows()
cStr = substr(cStr,windowsnl(),nl)
ok
aList = str2list(cStr)
# 課題 - リストの項目処理で "for in" を使用する
cStr = list2str(aList)
if iswindows()
cStr = substr(cStr,nl,windowsnl())
ok
write("ouput.txt",cStr)
コマンドライン引数の取得¶
Ring スクリプトへ渡されたコマンドライン引数を得るには、リスト形式の変数 sysargv を使用します。
用例:
see copy("=",30) + nl
see "Command Line Parameters" + nl
see "Size : " + len(sysargv) + nl
see sysargv
see copy("=",30) + nl
if len(sysargv) < 4 return ok
nStart = sysargv[3]
nEnd = sysargv[4]
for x = nStart to nEnd
see x + nl
next
実行結果:
c:\mahmoud\apps\ring>ring tests\syspara.ring 1 10
==============================
Command Line Parameters
Size : 4
ring
tests\syspara.ring
1
10
==============================
1
2
3
4
5
6
7
8
9
10
使用中のソースファイル名を取得¶
filename() 関数は現在使用中のソースファイル名 (*.ring) を取得します。
文法:
filename() → この文字列は現在使用中のソースファイル名です。
用例:
see "Active Source File Name : " + filename() + nl
実行結果:
Active Source File Name : tests\filename.ring
用例:
if sysargv[2] = filename()
see "I'm the main program file!" + nl
# ここでテスト実行ができます!
else
see "I'm a sub file in a program" + nl
ok
PrevFileName() 関数¶
PrevFileName() 関数は以前使用中のソースファイル名を取得します。
「以前使用中のファイル」とは、呼び出し元の関数が存在するファイル、または PrevFileName() を呼び出す前に呼び出された関数が存在するファイルです。
文法:
prevfilename() → この文字列は以前使用中のソースファイル名です。
用例:
この関数は stdlib.ring の PrevFileName() により 「呼び出し元にある関数が存在するファイル」が「プログラムのメインソース」であるか判定をします。
Func IsMainSourceFile
if PrevFileName() = sysargv[2]
return true
ok
return false
CurrentDir() 関数¶
現在のディレクトリをパスを返します。
文法:
CurrenDir() → この文字列は現在のディレクトリのパスです。
ExeFileName() 関数¶
Ring の実行可能ファイル名を返します。
文法:
exefilename() → この文字列は Ring の実行可能ファイル名です。
ChDir() 関数¶
現在のディレクトリを変更します。
文法:
ChDir(cNewPath)
ExeFolder() 関数¶
Ring の実行可能ファイルがあるパスを返します。
文法:
exefolder() → この文字列は Ring の実行可能ファイルがあるパスです。
Version() 関数¶
Ring のバージョン情報を返します。
文法:
version() → この文字列は Ring のバージョンです。
実行結果:
1.14
Shutdown() 関数¶
アプリケーションを閉じます。
文法:
shutdown(nStatus) → アプリケーションを閉じます。
NofProcessors() 関数¶
NofProcessors() 関数はシステムに搭載されている CPU の論理プロセッサ数を検出します。
文法:
NofProcessors() ---> nProcessors
用例:
? NofProcessors()