Lua Logo
Funktionen im table os

os.clock ()
os.date([format [, time]])
os.difftime(t2, t1)
os.execute(command)
os.exit([code])
os.getenv(varname)
os.remove(filename)
os.rename(oldname, newname)
os.setlocale(locale [, category])
os.time([table])
os.tmpname()

nach obenos.clock

Diese Funktion liefert eine Annäherung der vom Programm benutzten Rechnerzeit in Sekunden.

rechnerZeit = os.clock()


os.clock wird etwa alle 15-16 1000tel Sekunden aktualisiert. Den genauen Wert hat man also so gut wie nie. Damit kann man aber leben. Das ist fast doppelt so schnell, wie der Mensch sehen kann.

Die Ausgabe hat meist 3 Stellen hinter dem Komma

Beispiel:

print(os.clock()) --> 26.546


nach obenos.difftime

os.difftime(nZeit1, nZeit2)

Rechnet die Differenz zwischen zwei Zeitpunkten aus.

Parameter: jeweils die gewünschten Zeiten

Beispiel für die Konsole:

nZeit2 = os.time()
-- ein wenig warten
print(os.difftime(os.time(), nZeit2)) --> 32

nach obenos.execute

os.execute(SytemBefehl)

Diese Funktion führt einen System-Befehl aus. Es ist z.B. gleich als wenn man ihn an der Eingabeaufforderung machen würde.

os.execute("echo hallo") --> hallo
os.execute("mmmmm") --> Der Befehl "mmmmm" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
os.execute("calc") --> der Rechner öffnet sich


nach obenos.getenv

os.getenv(cVariablenname)

Gibt den Wert einer Systemvariablen zurück

Beispiele:

print( os.getenv("BANANA") ) --> nil (es sei den, es gibt sie)
print( os.getenv("USERNAME") ) --> robertico


nach obenos.remove

os.remove(cDateiname)

Diese Funktion löscht eine Datei.

Parameter:
  • Name der Datei incl. Pfad
Ruckgaben:

true --> erfolgreich
nil --> Fehler. In dem Fall folgt noch die Fehlermeldung und dann die Fehlernummer

Annahme: die Datei banana.txt ist existent:

print( os.remove("banana.txt") ) --> true

Annahme: die Datei banana.txt ist existent nicht:

print( os.remove("banana.txt") ) --> nil banana.txt: No such file or directory 2

nach obenos.rename

os.rename(alterName, neuerName)

Diese Funktion benennt eine Datei um.

Parameter:
  • Bestehender Name der Datei
  • Neuer Name der Datei
Ruckgaben:
  • true --> erfolgreich
  • nil --> Fehler. In dem Fall folgt noch die Fehlermeldung und dann die Fehlernummer
Annahme: die Datei banana.txt ist existent:

print( os.rename("banana.txt", "apple.txt") ) --> true

Annahme: die Datei banana.txt ist existent nicht:

print( os.rename("banana.txt", "apple.txt") ) --> nil banana.txt: No such file or directory 2



nach obenos.setlocale

os.setlocale( cLand [,cTeil] )

Diese Funktion setzt verschiedene Einstellung für die Arbeitsumgebung.

Parameter
  • länderspezifische Einstellung (siehe unten)
  • Welches Teil soll so eingestellt werden.
Rückgabe: Eingestellte Werte oder nil bei Fehler

Einstellungen für cTeil (zuerst, weil das andere länger ist)
  • "all" wie das Wort schon sagt: alles. Dies ist Voreinstellung. D.h wenn cTeil nicht angegeben wird.
  • "collate" Die alphabethische Reihenfolge (nicht immer gleich z.B Griechenland alpha beta gamma)
  • "ctype" controls the types of individual characters (e.g., what is a letter) and the conversion between lower and upper cases
  • "monetary" Dies hat in Lua keinen Einfluss
  • "numeric" Die spezifischen Formatierungen für Zahlen. Allerdings ist es problematisch wenn als Dezimalzeichen das Komma benutzt wird.

cLand:

Für Windows bin ich auf diese Einstellmöglichkeiten gestoßen:

os.setlocale("Czech_Czech Republic.1250")
os.setlocale("Danish_Denmark.1252")
os.setlocale("Dutch_Belgium.1252")
os.setlocale("Dutch_Netherlands.1252")
os.setlocale("Dutch_Netherlands.1252")
os.setlocale("English_Australia.1252")
os.setlocale("English_Canada.1252")
os.setlocale("English_New Zealand.1252")
os.setlocale("English_United Kingdom.1252")
os.setlocale("English_United States.1252")
os.setlocale("Finnish_Finland.1252")
os.setlocale("French_Belgium.1252")
os.setlocale("French_Canada.1252")
os.setlocale("French_Canada.850")
os.setlocale("French_France.1252")
os.setlocale("French_Switzerland.1252")
os.setlocale("German_Austria.1252")
os.setlocale("German_Germany.1252")
os.setlocale("German_Switzerland.1252")
os.setlocale("Greek_Greece.1253")
os.setlocale("Hungarian_Hungary.1250")
os.setlocale("Icelandic_Iceland.1252")
os.setlocale("Italian_Italy.1252")
os.setlocale("Italian_Switzerland.1252")
os.setlocale("Norwegian-Nynorsk_Norway.1252")
os.setlocale("Polish_Poland.1250")
os.setlocale("Portuguese_Brazil.1252")
os.setlocale("Portuguese_Portugal.1252")
os.setlocale("Russian_Russia.1251")
os.setlocale("Slovak_Slovakia.1250")
os.setlocale("Spanish_Mexico.1252")
os.setlocale("Spanish_Spain.1252")
os.setlocale("Swedish_Sweden.1252")
os.setlocale("Turkish_Turkey.1254")

Für andere Systeme habe ich nur diese Möglichkeiten gefunden. (Eigendlich für C. Aber Lua ist in C geschrieben. Sollte also klappen)

#if defined(_WIN32) || defined(_WIN64) //-> _.
static const char LOCALE_ENGLISH_US[] = "English_USA.1252";
static const char LOCALE_ENGLISH_UK[] = "English_UK.1252";
static const char LOCALE_GERMAN_DE[] = "German_Germany.1252";
static const char LOCALE_FRENCH_FR[] = "French_France.1252";
static const char LOCALE_ITALIAN_IT[] = "Italian_Italy.1252";
static const char LOCALE_SPANISH_ES[] = "Spanish_Spain.1252";
#elif defined(__osf__) //-> _.
static const char LOCALE_ENGLISH_US[] = "en_US.88591";
static const char LOCALE_ENGLISH_UK[] = "en_UK.88591";
static const char LOCALE_GERMAN_DE[] = "de_DE.885915";
static const char LOCALE_FRENCH_FR[] = "fr_FR.885915";
static const char LOCALE_ITALIAN_IT[] = "it_IT.885915";
static const char LOCALE_SPANISH_ES[] = "es_ES.885915";
#elif defined(SNI) //-> _.
static const char LOCALE_ENGLISH_US[] = "En_US.88591";
static const char LOCALE_ENGLISH_UK[] = "En_UK.88591";
static const char LOCALE_GERMAN_DE[] = "De_DE.885915";
static const char LOCALE_FRENCH_FR[] = "Fr_FR.885915";
static const char LOCALE_ITALIAN_IT[] = "It_IT.885915";
static const char LOCALE_SPANISH_ES[] = "Es_ES.885915";
#elif defined(_AIX) //-> _.ISO
static const char LOCALE_ENGLISH_US[] = "en_US.ISO8859-1";
static const char LOCALE_ENGLISH_UK[] = "en_UK.ISO8859-1";
static const char LOCALE_GERMAN_DE[] = "de_DE.ISO8859-15";
static const char LOCALE_FRENCH_FR[] = "fr_FR.ISO8859-15";
static const char LOCALE_ITALIAN_IT[] = "it_IT.ISO8859-15";
static const char LOCALE_SPANISH_ES[] = "es_ES.ISO8859-15";
#elif defined(__linux__) //-> _
static const char LOCALE_ENGLISH_US[] = "en_US";
static const char LOCALE_ENGLISH_UK[] = "en_UK";
static const char LOCALE_GERMAN_DE[] = "de_DE@euro";
static const char LOCALE_FRENCH_FR[] = "fr_FR@euro";
static const char LOCALE_ITALIAN_IT[] = "it_IT@euro";
static const char LOCALE_SPANISH_ES[] = "es_ES@euro";
#elif defined(__hpux) //-> _.iso
static const char LOCALE_ENGLISH_US[] = "en_US.iso88591";
static const char LOCALE_ENGLISH_UK[] = "en_UK.iso88591";
static const char LOCALE_GERMAN_DE[] = "de_DE.iso885915";
static const char LOCALE_FRENCH_FR[] = "fr_FR.iso885915";
static const char LOCALE_ITALIAN_IT[] = "it_IT.iso885915";
static const char LOCALE_SPANISH_ES[] = "es_ES.iso885915";
#else //->
static const char LOCALE_ENGLISH_US[] = "en";
static const char LOCALE_ENGLISH_UK[] = "en";
static const char LOCALE_GERMAN_DE[] = "de";
static const char LOCALE_FRENCH_FR[] = "fr";
static const char LOCALE_ITALIAN_IT[] = "it";
static const char LOCALE_SPANISH_ES[] = "es";
#endif


nach obenos.time

os.time([table])

Parameter
  • gewünschte Ausgabe
Rückgabe: ist abhängig vom Parameter

Mit "*t" als Parameter ist die Rückgabe ein Table, das folgende Werte vom aufgerufenen Zeitpunkt hat:
  • year Jahr (Zahl)
  • month Monat (Zahl)
  • day Tag (Zahl)
  • hour Stunde (Zahl)
  • min Minute (Zahl)
  • sec Sekunde (Zahl)
  • wday Wochentag (Zahl)
  • yday Jahrestag (wievielter Tag im Jahr) (Zahl)
  • isdst (true oder false)

Mit einem Table aufgerufen gibt os.time die Differenz der Zeit zwischen dem 1.1.1970 00:00:00 Uhr und dem eingegebenen Table in Sekunden zurück.
Die Rückgabe ist abhängig von der auf dem PC eingestellten Zeitzone.
In Deutschland sind wir im Sommer +1 Stunde von der koordinierten Weltzeit (UTC) entfernt. Daher wird vorher am Ergebnis 1 Stunde = 3600 Sekunden abgezogen.
Das kleinste Ergebnis ist 1. Darunter gibt os.time nil zurück.

print(os.time{year=1970, month=1, day=1, hour=1, sec=1}) --> 1
print(os.time{year=1970, month=1, day=1, hour=1, sec=0}) --> nil

In diesem Table muss mindestens vorhanden sein: year, month, day

nach obenos.tmpname

os.tmpname ()

Parameter: keine

Rückgabe ist lediglich ein verwendbarer Name für eine temporäre Datei (in Windows)

print( os.tmpname() ) --> s1eg.
print( os.tmpname() ) --> s1eg.1
...
...






Die Vervielfältigung der auf diesen Seiten enthaltenen Informationen und Grafiken ist untersagt, ausgenommen davon ist sämtlicher auf diesen Seiten angezeigter Quellcode.
Siehe auch: Haftungsausschluss
Copyright © Robert Schmitz 2006