Update von efun-Manpages aus Driversourcen.
Aktualisiert manpages, welche wenig oder nicht vom
MG modifizier wurden.
Change-Id: If70b4fc27cfd38cb9e98cb48328a48731969a76f
diff --git a/doc/efun/sscanf b/doc/efun/sscanf
index a616bf2..a927b70 100644
--- a/doc/efun/sscanf
+++ b/doc/efun/sscanf
@@ -1,115 +1,78 @@
-FUNKTION:
- int sscanf(string str,string fmt,mixed var1,mixed var2,...)
+SYNOPSIS
+ int sscanf(string str, string fmt, mixed var1, mixed var2, ...)
-ARGUMENTE:
- str
- - String, der nach einem Muster zu durchsuchen ist
- - darf nicht NULL sein
- fmt
- - Format-String, nach dessen Muster untersucht wird
- var1,var2,...
- - Argumente die mit %d oder %s korrespondieren
+BESCHREIBUNG
+ Wertet einen String <str> unter Beruecksichtigung des Formats
+ <fmt>. <fmt> kann Strings beinhalten, die durch %d und %s getrennt
+ werden. Jedes %d und %s entspricht einer der Variablen <var1>,
+ <var2> etc.
-RUeCKGABEWERT:
- Anzahl der gefundenen Argumente.
+ Die Operatoren im Format-String <fmt> haben eines der folgenden
+ Formate:
-BESCHREIBUNG:
- Wertet einen String <str> unter Beruecksichtigung des Formats <fmt>
- aus. <fmt> kann Strings beinhalten, die durch %d und %s getrennt
- werden. Jedes %d und %s entspricht einer der Variablen <var1>, <var2>,
- etc. in die gespeichert werden soll.
-
- Die Operatoren im Format-String <fmt> haben eines der folgenden
- Formate:
-
- %[+][!|~][<size>[.<minmatch>]]<type>
+ %[+][!|~][<size>[.<minmatch>]]<type>
<type> kann folgendes sein:
- d: steht fuer eine Zahl
- D: steht fuer eine Zahl
+ d: meldet eine Zahl
+ D: meldet eine Zahl
U:
- s: steht fuer eine Zeichenkette
- %: steht fuer das %-Zeichen
- t: steht fuer Whitespaces (also Leerschlaege und Tabulatoren),
+ s: meldet eine Zeichenkette
+ %: meldet das %-Zeichen
+ t: meldet Whitespaces (also Leerschlaege und Tabulatoren),
speichert diese aber nicht.
- <size> ist die erwartete Feldgroesse, <minmatch> die verlangte
- minimale Laenge fuer einen Treffer (Standardwerte sind 0 fuer
- Strings und 1 fuer Nummern). Sowohl <size> als auch <minmatch> kann
- entweder numerisch oder mit '*' angegeben werden - im zweiten Fall
- wird die gueltige Variable in der Liste der Argumente benutzt.
+ <size> ist die erwartete Feldgroesse, <minmatch> die verlangte
+ minimale Laenge fuer einen Treffer (Standardwerte sind 0 fuer
+ Strings und 1 fuer Nummern). Sowohl <size> als auch <minmatch> kann
+ entweder numerisch oder mit '*' angegeben werden - im zweiten Fall
+ wird die gueltige Variable in der Liste der Argumente benutzt.
- Wird + angegeben, muessen die Zeichen nach dem Feld ebenfalls
- matchen. Ist dies nicht der Fall, wird auch dieses Feld als
- Misserfolg in der Rueckgabe betrachtet (auch wenn der Wert
- bereits an die zugehoerige Variable zugewiesen wurde).
+ Wird + angegeben, muessen die Zeichen nach dem Feld ebenfalls
+ matchen. Ist dies nicht der Fall, wird das Feld als Misserfolg
+ betrachted (auch wenn der Wert bereits an die zugehoerige Variable
+ zugewiesen wurde).
- Wird ! angegeben, wird zwar die Suche durchgefuehrt, aber Treffer
- werden weder gespeichert noch gezaehlt. Mit ~ als Argument wird
- zwar die Suche durchgefuehrt und die Treffer gezaehlt, das Resultat
- wird aber nicht gespeichert.
+ Wird ! angegeben, wird zwar die Suche durchgefuehrt, aber Treffer
+ werden weder gespeichert noch gezaehlt. Mit ~ als Argument wird
+ zwar die Suche durchgefuehrt und die Treffer gezaehlt, das Resultat
+ wird aber nicht gespeichert.
- Wenn ein %s nicht am Ende von <fmt> steht, wird nur ein Treffer
- registriert, wenn auch der nachfolgende String bzw. das
- nachfolgende Format gefunden wird. Weiter unten gibt es dazu
- ein Beispiel.
- Bei einem %d allerdings muss dieses Verhalten mit einem '+'
- erzwungen werden.
+ Wenn %s nicht am Ende von <fmt> steht, wird nur ein Treffer
+ registriert, wenn auch der nachfolgende String bzw. das
+ nachfolgende Format gefunden wird. Weiter unten gibt es dazu
+ ein Beispiel.
- Der Unterschied zwischen %d und %D %U ist, dass letzteres ein
- unmittelbar vorausgehendes %s so bald als moeglich abbricht,
- waehrend ersteres zuerst versucht, einen moeglichst grossen Treffer
- fuer %s zu erzielen. Trotzdem ueberspringt %D/%U keine Whitespaces,
- dazu muss %.0t%D gesetzt werden.
+ Der Unterschied zwischen %d und %D %U ist, dass letzteres ein
+ unmittelbar vorausgehendes %s so bald als moeglich abbricht,
+ waehrend ersteres zuerst versucht, einen moeglichst grossen Treffer
+ fuer %s zu erzielen. Trotzdem ueberspringt %D/%U keine Whitespaces,
+ dazu muss %.0t%D gesetzt werden.
- Die Funktion sscanf() ist insofern ein Spezialfall, als dass
- Argumente automatisch nach Referenz uebergeben werden.
+ Zurueck gegeben wird die Anzahl Treffer.
-BEISPIELE:
- string who, what;
- if (sscanf("wirf frisbee zu rex",
- "wirf %s zu %s", what, who) != 2)
- write("Usage: Wirf <what> zu <who>\n");
- else
- write("Du wirfst einen "+what+" zu "+who+".\n");
+ Die Funktion sscanf() ist insofern ein Spezialfall, als dass
+ Argumente automatisch nach Referenz uebergeben werden.
- sscanf("ab", "%s%s", who, what)
- ==> liefert 2, who = "", what = "ab"
+BEISPIELE
+ string who, what;
+ if (sscanf("wirf frisbee zu rex",
+ "wirf %s zu %s", what, who) != 2)
+ write("Usage: Wirf <what> zu <who>\n");
+ else
+ write("Du wirfst einen "+what+" zu "+who+" um auf dich "
+ "aufmerksam zu machen.\n");
- sscanf("ab", "%s %s", who, what)
- ==> liefert 0, who = 0, what = 0
+ sscanf("ab", "%s%s", who, what)
+ ==> liefert 2, who = "", what = "ab"
- sscanf("ab ", "%s %s", who, what)
- ==> liefert 2, who = "ab", what = ""
+ sscanf("ab", "%s %s", who, what)
+ ==> liefert 0, who = 0, what = 0
+ sscanf("ab ", "%s %s", who, what)
+ ==> liefert 2, who = "ab", what = ""
- // Achtung bei %d
- sscanf("12 ","%d xyz", num1);
- ==> liefert 1, num1 = 12
+GESCHICHTE
+ LDMud 3.3.713/3.2.13 fuehrte den '+'-Modifizierer ein.
- sscanf("12 ","%s xyz", num1);
- ==> liefert 0, num1 = 0
-
- // mit '+' wird das Parsen des Restformats erzwungen:
- sscanf("12 ","%+d xyz", num1);
- ==> liefert 0, num1 = 12
-
-
- // Weiteres Beispiel zu %d:
- sscanf("get 12 coins","get %d rubys",num)
- ==> ergibt 1, weil 'rubys' ignoriert wird
-
- // Beispiel Format-Ignore 2
- sscanf("get 12 coins","get %+d rubys",num);
- ==> ergibt 0, da mit dem '+' das Parsen des Restformats erzwungen wird
- ==> ergibt 1 bei 'get 12 rubys'
-
- // Beispiel Format-Ignore 3 [alte Variante]
- sscanf("get 12 coins","get %d rubys%s", num, dummy)
- ==> ergibt 1
- ==> ergibt 2 bei "get 12 rubys"
-
-SIEHE AUCH:
+SIEHE AUCH
explode(E), regexp(E)
-
-8.Aug 2007 Gloinson