システム関数¶
システム関数の用法を学びます。
- System()
- SysGet()
- IsMSDOS()
- IsWindows()
- IsWindows64()
- IsUnix()
- IsMacOSX()
- IsLinux()
- IsFreeBSD()
- IsAndroid()
- Windowsnl()
- コマンドライン引数の取得
- 使用中のソースファイル名を取得
- CurrentDir()
- ExeFileName()
- ChDir()
- ExeFolder()
- Version()
- Shutdown()
System() 関数¶
System() 関数はシステムコマンドを実行します。
文法:
System(cCommand)
用例:
System("myapp.exe") # myapp.exe の実行
System("ls") # ファイルのリストを表示
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
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
実行結果:
b:\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