Preprozessor-Anweisungen
 Modul einbinden
  @ALLMODULES@=$:#!load $^m
 Modul-Initialisierung:#!initialize^m^mreturn(0)
 Modul-Finalisierung:#!finalize^m^mreturn(0)
 Debug-Level setzen:#!debug @^m
 Trace-Modus
  aktivieren:#!trace 1^m
  deaktivieren:#!trace 0^m
 Als Hamster-Menüpunkt einfügen:#!menu:file/config/online/local/help=Menüeintragstext
 Kommentar einfügen:# @^m
Befehle (ggf. mit Rückwert)
 Programm ausführen
  Befehl+Parameter (incl. Warten):execute( @ )
  plus Verzeichnisangabe:execute( @, "" )
  plus Modusangabe:execute( @, "", 1 )
  plus Angabe, ob Warten:execute( @, "", 1, true )
  plus Variable für Rückwert:execute( @, "", 1, true, $ )
 Dokument aufrufen
  Nur Dateiname:Shell( "@" )
  plus Parameter:Shell( "@", "" )
  plus Modusangabe:Shell( "@", "", 1 )
  plus Pfad der Ausführung:Shell( "@", "", 1, "" )
  plus Operation (open, print...):Shell( "@", "", 1, "", "" )
 Externes Skript ausführen:runscript ( "@", "", false )^m
 Windows/System
  DFÜ-Netzwerk
   Wählen (Name):RasDial ( "@" )
   Wählen (Name, Benutzer, PW, Verbindungs-ID):RasDial ( "@", "", "", $ )
   Aktive Verbindung schließen:RasHangup
   Verbindung per ID schließen:RasHangup ( $@ )
   Einträge in Listenvariable:ListRasEntries( $@ )
  <Windows>\hosts
   IP-Adresse per host setzen (Hostname/IP):SetHostsEntry_ByName( "@" , "..." )
   Hostname per IP setzen (IP/Hostname):SetHostsEntry_ByAddr( "@...", "" )
   Lösche Eintrag (Hostname/IP):DeleteHostsEntry ( "@" , "...")
 Input/Output
  INI-Datei
   Schreiben Datei/Abschnitt/Schlüssel/Wert:IniWrite( @, , , )
   Löschen Datei/Abschnitt/Schlüssel:IniDelete( @, , )
   Abschnitt löschen Datei/Abschnitt:IniEraseSection( @, , , )
  Datei(en)
   Datei(en) löschen:FileDelete( "@" )
   Umbenennen von/nach:FileRename( "@", "" )
   Kopieren von/nach:FileCopy( "@", "" )
   Verschieben von/nach:FileMove( "@", "" )
   Listenvariable mit
    Dateinamen füllen:ListFiles( $@, , false )
    Dateinamen incl. Pfadangabe füllen :ListFiles( $@, , true )
  Verzeichnisse
   Neues erzeugen:DirMake( "@" )
   Verzeichnis löschen:DirRemove( "@" )
   Aktuelles ändern:DirChange( "@" )
   Listenvariable mit
    Unterverzeichnisnamen füllen:ListDirs( $@, , false )
    gesamten Verzeichnisnamen füllen:ListDirs( $@, , true )
  Zwischenablage füllen:ClipWrite ( "" ) # ACHTUNG! Löscht vorherigen Inhalt!
 Reguläre Ausdrücke
  String mittels regexp
   in Variablen parsen:RE_Parse ( @, , $, $, $... )
   in Variablen aufteilen:RE_Split ( @, , $, $, $... )
 Benutzerschnittstelle
  Akustisches Signal:beep ( @ )^m
  Hamster-Log
   Informationszeile anhängen:print( "@" )
   Warnung anhängen:warning( "@" )
   Fehlermeldung an Log anhängen:error ( @ )^m
   Falls Bedingung, Fehlermeldung an Log anhängen:assert ( @, "" )^m
   Zeile anhängen (Text, Typ, Skriptname anzeigen?):HamAddlog( "@" ,  , true )
   Neue Log-Datei beginnen:HamRotateLog^m
  Pause in Millisekunden:sleep ( @ )^m
  Zeige Meldungsfenster (Text, Titel, Stil):MsgBox( "@", "", )
  Extra-Statuszeilenzähler
   Nr. x auf Null setzen:ClearXCounter ( @ )
   Nr. x bis y auf Null setzen:ClearXCounter ( @, )
   Nr. x zuweisen:SetXCounter ( @, )
   Nr. x erhöhen um:IncXCounter ( @, )
   Nr. x verringern um:DecXCounter ( @, )
 Aktivitäten planen
  Alle Einträge löschen:AtClear
  Neuer Eintrag:# Name, Ab Uhrzeit, bis Uhrzeit, An Wochentagen (Mo-So), Alle x Minuten, Zeitmodell (0-2)^mAtAdd( @, "00.00", "23.59", "1111100", 60, 1 )
  Ausführen mit Timeout:AtExecute( @ )
  Ausführen ohne Timeout:AtExecute
 Tasks
  Neues Limit (Rückwert: alter Wert):SetTaskLimiter( @ )
 DLLs
  DLL laden, Rückwert handle:$@ = DllLoad ( "" )
  Funktion aufrufen:DllCall ("@dllname|functionname|n|nn...", Par1 ... Par11 )
  Letzte Fehlernummer:dlllasterror
  DLL freigeben (handle):dllfree ( $@ )
 Debugging
  Trace-Modus
   Aktivieren:trace ( 1 )^m
   Deaktivieren:trace ( 0 )^m
  Hamster-Fehler-Behandlung
   aktivieren:ErrCatch (false)
   deaktivieren:ErrCatch (true)
  Variablenwerte ausgeben:dump^m
  Debug-Level einstellen:debug ( @ )^m
  Falls Debug-Level <= Parameter, Log-Meldung ausgeben:debug ( @, "" )^m
 Skript beenden:quit^m
Funktionen
 If-Funktion:iif ( @, "True", "False" )
 Case-Funktion:icase( @, , , ... , else, )
 Variablentyp testen
  Inhalt numerisch?:isint ( @ )
  Inhalt String?:isstr ( @ )
 arithmetisch
  Absolutwert |x|:abs ( @ )
  Signum/Vorzeichen (-1/0/1):sgn ( @ )
  Zufallszahl zw. 0 und x-1:random( @ )
 Umwandlungen
  String zu Zahl:int ( @ )
  ASCII-Code des ersten Buchstabens:ord( @ )
  Zeichen aus ASCII-Code:chr( @ )
  Zahl zu
   String:str ( @ )
   String / auf Länge auffüllen / Füllzeichen:str( @, , "0" )
   Hexzahl:hex ( @ )
   Hexzahl incl. Auffüllen auf Länge:hex ( @, )
  Zeit in Sekunden zu
   Jahr/.../Sek./Wochentag:decodetime( @, $, $, $, $, $, $, $ )
   Jahr/Monat/.../Min./Sek.:decodetime( @, $, $, $, $, $, $ )
   Jahr/Monat/Tag:decodetime( @, $, $, $ )
  Jahr/Monat/.../Min./Sek. zu Zeit:encodetime( @, , , , , )
  Jahr/Monat/Tag zu Zeit:encodetime( @, , )
  Prüfsumme ermitteln
   mittels CRC32:digest ( 0, @, false )
   mittels MD5:digest ( 1, @, false )
   mittels SHA:digest ( 2, @, false )
  Prüfsumme als Hexwert
   mittels CRC32:digest ( 0, @, true )
   mittels MD5:digest ( 1, @, true )
   mittels SHA:digest ( 2, @, true )
 Strings
  Länge von String-Ausdruck:len ( @ )
  Position von String
   in String:pos( @, )
   in String, Suchen ab:pos( @, , )
  Kopiere Teilstring
   von / ab Position:copy( @, )
   von / ab Position / Länge:copy( @, , )
  Kopiere / ohne Teilstring
   ab:delete( @,  )
   ab / Länge:delete( @, , )
  Vorne und hinten kürzen um
   Leerzeichen und Tabs:trim ( @ )
   angegebene Zeichen:trim ( @, " " )
  Groß- in Kleinbuchstaben wandeln:lowercase ( @ )
  Klein- in Großbuchstaben wandeln:uppercase( @ )
  Mail/News-Kodierungen
   MIME-Header dekodieren:DecodeMIMEHeaderString ( "@", $ )
   Base64 dekodieren:decodebase64 ( @ )
   Quoted Printable dekodieren:decodeqp ( @ )
  Zeichensatzkonvertierungen
   In lokalen Zeichensatz wandeln:DecodeToLocalCharset( "@", "utf-8" )
   UTF7 in 16-Bit-Unicode:utf7toucs16 ( @ )
   UTF8 in 32-Bit-Unicode:utf8toucs32 ( @ )
  Ersetzen in String
   was / durch was:replace( @, , )
   plus alle? / Ignoriere Kl./Gr.?:replace( @, , , true, true )
  String als Funktion auswerten:eval( @ )
 Reguläre Ausdrücke
  Test, ob String zu RegExp passt:RE_Match( @, )
  Teilstring mittels RegExp extrahieren:RE_Extract( $@, "" )
 Windows/System
  Datum / Zeit
   Anzahl Millisekunden seit Windowsstart:ticks
   Lokale Zeit als Unix-Zeit (Sekunden seit dem 1.1.1970):time
   GMT-Zeit als Unix-Zeit (Sekunden seit dem 1.1.1970):timegmt
   Aktuelle Zeitzone:RFCTimeZone
  Umgebungsvariable abfragen:GetEnv( "@" )
  Text zur Fehlernummer:SysErrorMessage ( @ )
  <Windows>\hosts
   Lokaler Hostname:LocalHostName
   Lokale IP:LocalHostAddr
   IP für angegebenen Host-Namen:LookupHostAddr ( "@" )
   Host-Name für angegebene IP:LookupHostName( "@" )
  DFÜ-Netzwerk
   Name der aktuellen Verbindung:RasGetConnection
   Nummer der letzten Fehlermeldung:RasLastError
   Test, ob eine Verbindung aktiv ist:RasIsConnected
   TCP/IP-Adresse der aktuellen Verbindung:RasGetIP
 Input/Output
  INI-Datei
   Auslesen Datei/Abschnitt/Schlüssel/Standardwert:IniRead( @, , , )
  Datei
   Test, ob Datei existiert:FileExists( "@" )
   Dateigröße in Bytes:FileSize( "@" )
   Letzte Änderung am (Unix-Format):FileTime( "@" )
  Verzeichnisse
   Test, ob Verzeichnis existiert:DirExists( "@" )
   Aktuelles Arbeitsverzeichnis auslesen:DirCurrent
   Windows-Hauptverzeichnis:DirWindows
   Windows-System-Verzeichnis:DirSystem
  Freie Laufwerks-Kapazität in KB:DiskFreeKB ( "@" )
  Zwischenablage als Text:ClipRead
 Benutzerschnittstelle
  Eingabedialog
   Normale Eingabe (Text):InputBox( "@" )
   Normale Eingabe (Text, Titel, Standardwert, OK?):InputBox( "@", "Hamster-Script", 64, $ )
   Normale Eingabe mit Timeout (..., Timeout, OK?):PopUpBox ( "@", "Hamster-Script", 64, 10, $ )
   Verdeckte Eingabe (Text, Titel, Standardwert, OK?):InputPW( "@", "Hamster-Script", 64, $ )
   Auswahl aus Liste (Liste, Text, Titel, Standardwert, OK?):ListBox( $@, "", "", "", $ )
  Extra-Statuszeilenzähler
   Aktueller Wert von Nr. x:XCounter ( @ )
 Informationen zum letzten Fehler
  Nummer:ErrNum
  Meldung:ErrMsg
  Modulname:ErrModule
  Zeilennummer:ErrLineNo
  Zeile selber:ErrLine
  Skript-Objekt:ErrSender
 Skript-Parameter
  Anzahl:paramcount
  Parameter x:paramstr( @ )
 Aktivitäten planen
  Anzahl aktiver Einträge:AtCount
  Infos Einzeleintrag
   Unterfunktion:AtSubfunction (@)
   Uhrzeit ab:AtFrom (@)
   Uhrzeit bis:AtUntil (@)
   Tagesraster:AtOnDays (@)
   Alle wieviel Minuten:AtEveryMins (@)
 Tasks
  Anzahl aktiver Tasks:GetTasksActive
  Anzahl wartender Tasks:GetTasksWait
  Anzahl laufender Tasks:GetTasksRun
Server-Befehle (m.R.)
 Lokale Server
  NNTP-Server
   Starten:HamNNTPServer ( 1 )^m
   Stoppen:HamNNTPServer ( 0 )^m
   Neu starten:HamNNTPServer ( 2 )^m
  POP3-Server
   Starten:HamPOP3Server ( 1 )^m
   Stoppen:HamPOP3Server ( 0 )^m
   Neu starten:HamPOP3Server ( 2 )^m
  SMTP-Server
   Starten:HamSMTPServer ( 1 )^m
   Stoppen:HamSMTPServer ( 0 )^m
   Neu starten:HamSMTPServer ( 2 )^m
  IMAP-Server
   Starten:HamIMAPServer ( 1 )^m
   Stoppen:HamIMAPServer ( 0 )^m
   Neu starten:HamIMAPServer ( 2 )^m
  RECO-Server
   Starten:HamRECOServer ( 1 )^m
   Stoppen:HamRECOServer ( 0 )^m
   Neu starten:HamRECOServer ( 2 )^m
 Anzeige
  Hauptfenster
   Zeigen:HamMainWindow ( 1 )^m
   Verbergen:HamMainWindow ( 0 )^m
  Tray-Icon
   Zeigen:HamTrayIcon ( 1 )^m
   Verbergen:HamTrayIcon ( 0 )^m
  Zurücksetzen
   Zähler und Log:HamResetCounters ( 0 )^m
   Nur Zähler:HamResetCounters ( 1 )^m
   Nur Log:HamResetCounters ( 2 )^m
   Warnungen/Fehler-Log:HamResetCounters ( 3 )^m
 Konfiguration
  Neu laden:HamReloadConfig ( 1 )^m
  IPAccess.hst neu laden:HamReloadIPAccess # Reload IPAccess.hst^m
  Passwort ändern:HamChangePassword ( @, "", "" )^m
  Passworte neu laden:HamPassReload
 Spezielle Dialoge aufrufen
  Verzeichnisdialog
   Öffnen:HamDialogEditDirs ( 1 )^m
   Schließen:HamDialogEditDirs ( 0 )^m
   Statusabfrage: HamDialogEditDirs ( 2 )
  Skripte und Module bearbeiten
   Öffnen:HamDialogScripts ( 1 )^m
   Schließen:HamDialogScripts ( 0 )^m
   Statusabfrage: HamDialogScripts ( 2 )
  News-Killfile-Protokoll
   Öffnen und warten, bis geschlossen:HamDialogNewsKillfileLog ( 1 )^m
   Geöffneten schließen:HamDialogNewsKillfileLog ( 0 )^m
   Statusabfrage: HamDialogNewsKillfileLog ( 2 )
  Mail-Killfile-Protokoll
   Öffnen und warten, bis geschlossen:HamDialogMailKillfileLog ( 1 )^m
   Geöffneten schließen:HamDialogMailKillfileLog ( 0 )^m
   Statusabfrage: HamDialogMailKillfileLog ( 2 )
  Neuen Ladeauftrag einrichten:HamDialogAddPull ( 1 )^m
 Datenpflege
  Aufräumen:HamPurge( @ )^m
  Einzelne Newsgruppe aufräumen:HamPurge( @, "" )^m
  Gesamtgruppenliste neu erzeugen:HamRebuildGlobalLists^m
  History neu erzeugen:HamRebuildHistory^m
  History-Cache leeren:HamFlush^m
 DFÜ-Netzwerk
  Temporäre Einwahl setzen (Verbindungsname, Benutzer, PW):HamSetLogin( "@", "", "" )^m
  Wählen (Verbindungsname):HamRasDial( "@" )^m
  Wählen (Verbindungsname, Benutzer, PW):HamRasDial( "@", "", "" )^m
  Verbindung schließen:HamRasHangup^m
 News-Aktivitäten
  Sofort
   neue News von allen Servern laden:HamNewsPull^m
   neue News von Server-Liste laden:HamNewsPull ( "@" )^m
   Postings aus Outbox abschicken:HamNewsPost^m
   Postings für Server-Liste aus Outbox abschicken:HamNewsPost ( "@" )^m
  Jobliste
   Löschen:HamNewsJobsClear
   Neue Ladeauftrag
    für alle Server:HamNewsJobsPullDef^m
    für Server-Liste:HamNewsJobsPullDef ( "@" )^m
    für einzelnen Server:HamNewsJobsPull ( "@" )^m
    für einzelnen Server und Gruppenauswahl:HamNewsJobsPull ( "@", "" )^m
   Aus Outbox senden
    für alle Server:HamNewsJobsPostDef^m
    für Server-Liste:HamNewsJobsPostDef ( "@" )^m
    für einzelnen Server:HamNewsJobsPost ( "@" )^m
    für einzelnen Server und Gruppenauswahl:HamNewsJobsPost ( "@", "" )^m
    für einzelnen Server, Gruppen- und Headerauswahl:HamNewsJobsPost ( "@", "", "" )^m
   Neuer "Feed"-Job
    für Server:HamNewsJobsFeed ( "@" )^m
    für Server und Gruppenauswahl:HamNewsJobsFeed ( "@", "" )^m
   Nach neuen Gruppen suchen u.ä.:HamNewsJobsCheckActive ( "" )^m
   Neuer Job (Server/Typ/Parameter/Priorität:HamNewsJobsAdd ( "@",  , "",  )^m
   Priorität für Job Nr. x ändern:HamNewsJobsSetPriority ( @,  )^m
   Job Nr. x löschen:HamNewsJobsDelete ( @ )^m
   Ausführung
    aller Jobs:HamNewsJobsStart^m
    aller Jobs in Server-Liste:HamNewsJobsStart ( @ )^m
 Mail-Aktivitäten
  Senden und Empfangen
   für alle Server:HamMailExchange^m
   für Server-Liste:HamMailExchange ( "@" )^m
  Nur Empfangen von
   einzelnem Server:HamFetchMail ( "@" )^m
   Server/Port/Benutzer/PW:HamFetchMail ( "@", "pop3", "", "" )^m
   Server/Port/Benutzer/PW/Zielaccount/Filter/Nicht löschen?:HamFetchMail ( "@", "pop3", "", "", "", "", false )^m
   .../SSL-Mode/SSL-Verify/SSL-CaFile:HamFetchMail ( "@", "pop3", "", "", "", "", false, 0, 0, "" )^m
  Senden ohne Anmeldung an
   einzelnen Server:HamSendMail ( "@" )^m
   Server/Port:HamSendMail ( "@", "smtp" )^m
   Server/Port/Auswahl über FROM/TO:HamSendMail ( "@", "smtp", "", "" )^m
   .../SSL-Mode/SSL-Verify/SSL-CaFile:HamSendMail ( "@", "smtp", "", "", 0, 0, "" )^m
  Senden mit Anmeldung an
   einzelnen Server:HamSendMailAuth ( "@" )^m
   Server/Port/Benutzer/PW:HamSendMailAuth ( "@", "smtp", "", "" )^m
   S./P./Ben./PW/Auswahl über FROM/TO:HamSendMailAuth ( "@", "smtp", "", "", "", "" )^m
   .../SSL-Mode/SSL-Verify/SSL-CaFile:HamSendMailAuth ( "@", "smtp", "", "", "", "", 0, 0, "" )^m
  Neue Mail in Outbox (From/To/Header+Body):HamNewMail ( "", "",  )
 Aktueller Gruppenbestand
  Einzelne Gruppe
   Öffnen (Rückwert:Handle):HamGroupOpen( "@" )^m
   Schließen (Handle):HamGroupClose( $@ )^m
  Neue Gruppe:HamAddGroup ( "@", "?", "y", "", "" )^m
  Neuer Ladeauftrag:HamAddPull ( "@", "" )^m
  Gruppe löschen:HamDelGroup ( "@" )^m
  Ladeauftrag löschen:HamDelPull ( "@", "" )^m
  Artikel importieren (Header+Body/...):HamArtImport( @, "", false, false )^m
  Artikel suchen
   per M-ID, Rückwert Gruppe und Nummer:HamArtLocateMid ( "@", $ , $ )^m
   per M-ID und Gruppe, Rückwert Nummer:HamArtLocateMidInGroup ( "@", "" , $ )^m
  Artikel löschen
   per Message-ID:HamArtDeleteMid ( "@" )^m
   per Message-ID und Gruppe:HamArtDeleteMidInGroup ( "@", "" )^m
   per Nummer und Gruppe:HamArtDeleteNrInGroup ( @, "")^m
 Filterzeile auf Korrektheit testen
  News-Filter-Zeile:Testnewsfilterline( @ )
  Mail-Filter-Zeile:Testmailfilterline( @ )
 Synchronisierung
  Warten, bis
   Hamster im Leerlauf:HamWaitIdle^m
   Hamster im Leerlauf oder Timeout:HamWaitIdle( @ )^m
   Event ausgelöst oder Timeout:WEventWait ( @, -1 )^m
   mindestens ein Event ausgelöst oder Timeout:EventMultipleWait( , , , ... )
  Event
   erzeugen:$@ = EventCreate( "", 1, 0, $ )
   löschen (per handle):EventClose ( $ )
  Eventsteuerung
   einmalig auslösen:EventPulse ( @ )
   dauerhaft auslösen:EventSet ( @ )
   zurücksetzen: EventReset ( @ )
 Ablaufsteuerung
  Skript-Priorität setzen:ScriptPriority ( @ )^m
  Alle Tasks stoppen:HamStopAllTasks^m
  Einzelnen Thread stoppen:StopThread ( "@" )^m
  Hamster beenden:HamShutdown^m
Server-Funktionen
 Identifikation
  Version:HamVersion
  Produktname:HamVersion (1)
  Maintainer:HamVersion (2)
  Homepage:HamVersion (3)
  Kommentar:HamVersion (4)
  ID für laufende Instanz:GetProcessIdentifier
 Pfade
  Hauptpfad:HamPath
  Skripte:HamHscPath
  Skripte für ReCo-Server:HamRCpath
  Module:HamHsmPath
  Log-Dateien:HamLogsPath
  Server:HamServerPath
  Newsgruppen:HamGroupsPath
  News/Outbox:HamNewsOutPath
  News/Fehler:HamNewsErrPath
  E-Mail:HamMailPath
  E-Mail/Outbox:HamMailsOutPath
 Konfiguration
  Testen, ob neu ladbar:HamMessage( 9, 0 )
  FQDN für Message-IDs:HamMidFQDN
  FQDN für Spezielles:HamMainFQDN
  Envelope-From für automatische Mails:HamEnvelopeFrom
  Postmaster-Adresse:HamPostmaster
  Usenet-Adresse:HamUsenetAcc
 Status
  Test, ob lokaler Server aktiv
   NNTP-Server:HamGetStatus( 1, 1 )
   POP3-Server:HamGetStatus( 1, 2 )
   SMTP-Server:HamGetStatus( 1, 3 )
   IMAP-Server:HamGetStatus( 1, 4 )
   RECO-Server:HamGetStatus( 1, 5 )
  Aktive Client-Verbindungen zum
   NNTP-Server:HamGetStatus( 2, 1 )
   POP3-Server:HamGetStatus( 2, 2 )
   SMTP-Server:HamGetStatus( 2, 3 )
   IMAP-Server:HamGetStatus( 2, 4 )
   RECO-Server:HamGetStatus( 2, 5 )
  Zähle Postings/E-Mails
   Neue Postings:HamGetStatus( 3, 1 )
   Geladene Postings:HamGetStatus( 3, 2 )
   Per M-ID nachgeladene Postings:HamGetStatus( 3, 8 )
   Schon bekannte Postings:HamGetStatus( 3, 3 )
   Per Scorefile gelöschte Postings:HamGetStatus( 3, 4 )
   Postings in Outbox:HamGetStatus( 3, 5 )
   Neue E-Mails:HamGetStatus( 3, 6 )
   E-Mails in Outbox:HamGetStatus( 3, 7 )
  Aktueller Loglevel des
   Hauptfenster-Logs:HamGetStatus( 4, 1 )
   gespeicherten Logs:HamGetStatus( 4, 2 )
  Hauptfenster sichtbar:HamMainWindow( 2 )
  Tray-Icon aktiv:HamTrayIcon( 2 )
  Aktive Aufträge zählen:HamThreadCount
  Aktuelle Hamsterlaufzeit
   in Sekunden:GetUptimeSecs
   in Minuten:GetUptimeMins
   in Stunden:GetUptimeHours
   in Tagen:GetUptimeDays
  Test, ob Hamster im Leerlauf:HamIsIdle
  Test, ob Hamster aufräumt:HamCheckPurge
 News-Aktivitäten
  Jobliste
   Anzahl Jobs:HamNewsJobsGetCounter
   Servername Job Nr. x:HamNewsJobsGetServer ( @ )
   Parameter  Job Nr. x:HamNewsJobsGetParam ( @ )
   Typ Job Nr. x:HamNewsJobsGetType ( @ )
   Priorität Job Nr. x:HamNewsJobsGetPriority ( @ )
 Aktueller Gruppenbestand
  Anzahl Gruppen:HamGroupCount
  Name von Gruppe Nr.:HamGroupName( @ )
  Nummer über Name ermitteln:HamGroupIndex( "@" )
  Einzelne Gruppe
   Gruppenname (Handle):HamGroupNameByHandle( $@ )
   Anzahl Artikel (Handle):HamArtCount( $@ )
   Nummer des ersten Artikels (Handle):HamArtNoMin( $@ )
   Nummer des letzten Artikels (Handle):HamArtNoMax( $@ )
   Artikel per Nummer (handle, #):HamArtText( $@,  )
   Artikel per Nummer im Exportformat:HamArtTextExport( $@,  )
  Scoring
   Scoreliste für Gruppe:HamScoreList( "@" )
   Score für speziellen Artikel (Gruppe/Nr./Typ):HamScoreTest( "@", , 0 )
   Score und relevante Scoreliste für Artikel:HamScoreTest( "@",  , $ )
-
Variablen
 Einfache Variablen
  Definiere
   neue Variable:var ( $@ )^m
   ... und initialisiere sie:varset ( $@,  )^m
   mehrere neue Variablen:var ( $@, , , ... )^m
  Variable um
   1 erhöhen:Inc ( $@ )^m
   x erhöhen:Inc ( $@, )^m
   1 verringern:Dec ( $@ )^m
   x verringern:Dec ( $@, )^m
  Wert einer Variablen ändern:$@ = ^m
 Listenvariablen
  Handle für neu erzeugte
   unsortierte Liste:$@ = ListAlloc( false )
   sortierte Liste:$@ = ListAlloc( true, true )
   sortierte Liste ohne doppelte Einträge:$@ = ListAlloc( true, false )
  Informationen
   Test, ob Liste existiert:ListExists( $@ )
   Test, ob Eintrag Nr. x existiert:ListExists( $@, )
   Anzahl Einträge:ListCount( $@ )
   Position von String in Liste:ListIndexOf( $@,  )
  Listeneinträge löschen:ListClear( $@ )
  Neuer Eintrag
   hinten anhängen:ListAdd ( $@, )
   an Position x einfügen:ListInsert( $@, , )
  Eintrag ändern (ggf. neu erzeugen)
   per Nummer Inhalt ändern:ListSet( $@, , )
   per Nummer "Tag" ändern:ListSetTag( $@, , )
   Schlüssel/Wert-Paar:ListSetKey( $@, , )
  Eintrag auslesen
   per Nummer Inhalt auslesen:ListGet( $@,  )
   per Nummer Tag auslesen:ListGetTag( $@, )
   Schlüssel/Wert-Paar:ListGetKey( $@,  )
  Lösche Eintrag Nr. x:ListDelete( $@, )
  Sortieren:ListSort( $@ )
  Gesamtinhalt
   setzen:ListSetText( $@,  )
   auslesen:ListGetText( $@ )
  Füllen mit
   Dateinamen:ListFiles( $@, , false )
   Dateinamen incl. Pfad:ListFiles( $@, , true )
   Unterverzeichnisnamen:ListDirs( $@, , false )
   gesamten Verzeichnisnamen:ListDirs( $@, , true )
   DFÜ-Netzwerk-Einträgen:ListRasEntries( $@ )
  Datei
   Laden:ListLoad ( $@, )
   Speicheren:ListSave ( $@, )
  Liste freigeben (handle):ListFree( $@ )
 Artikelvariable (Posting/Mail)
  Handle für
   leeren Artikel:ArtAlloc
   vorgefüllt:ArtAlloc ( @ )
  Setzen
   Einzelnen Header
    anhängen:ArtAddHeader ( $@, "", "" )
    Hinzufügen bzw. ersetzen:ArtSetHeader ( $@, "", "" )
   Gesamten Header:ArtSetHeaders ( $@,  )
   Gesamten Body (Textkörper):ArtSetBody ( $@,  )
   Header und Body:ArtSetText( $@,  )
  Auslesen
   Headerzeile
    ohne Zeilensprünge:ArtGetHeader( $@, "", 0)
    mit Zeilensprüngen:ArtGetHeader( $@, "", 1)
   Gesamten Header:ArtGetHeaders ( $@ )
   Gesamten Body (Textkörper):ArtGetBody ( $@ )
   Header und Body:ArtGetText( $@ )
  Spezielles
   Test ob Headerzeile vorhanden:ArtHeaderExists ( $@, "" )
   Headerzeile löschen:ArtDelHeader( $@, "" )
  Datei
   Laden:ArtLoad ( $@, "" )
   Speichern:ArtSave ( $@, "" )
  Freigeben (handle):ArtFree ( $@ )
 Konstante(n) definieren
  mit beliebigem Wert:Const ( $@, )^m
  numerisch aufsteigend:ConstEnum ( $@, $, $ ... )^m
 Speicherblöcke
  Handle für neuen Block (Größe in Bytes):$@ = MemAlloc ( )
  Blockgröße (handle):MemSize ( $@ )
  Integer/Ganzzahl
   zuweisen (handle, wert):MemSetInt ( $@, "" )
   auslesen (handle):MemGetInt ( $@ )
  String
   zuweisen (handle, wert):MemSetStr ( $@, )
   auslesen (handle):MemGetStr ( $@ )
  Variable als Pointer:MemVarPtr ( $@ )
  Block freigeben (handle):Memfree ( $@ )
  Block 'vergessen' (handle):MemForget ( $@ )
Operatoren
 Klammerung:( @ )
 boolsche
  Nicht: !@
  und:  &&
  oder: ||
 vergleichen
  ist gleich: =
  ist ungleich: <>
  ist kleiner: <
  ist kleiner oder gleich: <=
  ist größer: >
  ist größer oder gleich: >=
 Berechnungen
  Addition: +
  Subtraktion: -
  Multiplikation: *
  Divison: /
  Rest bei Division: %
 Bit-weise
  Negation:~@
  um 1 Bit nach links verschieben:<<
  um 1 Bit nach rechts verschieben:>>
  Und-Verknüpfung: &
  Oder-Verknüpfung: |
  Xor-Verknüpfung: ^
 Strings
  Verknüpfen: +
Ablaufsteuerung
 Bedingte Ausführung
  If/endif-Block:if ( @ )^m  ^mendif^m
  If/else/endif-Block:if ( @ )^m  ^melse^m ^mendif^m
  If/elseif/endif-Block:if ( @ )^m  ^melseif^m ^mendif^m
  If/elseif/else/endif-Block:if ( @ )^m  ^melseif^m ^melse^m ^mendif^m
 Schleifen
  Endlosschleife:do^m  @^mloop^m
  While-Schleife:while ( @ )^m  ^mendwhile^m
  Until-Schleife:repeat^m  ^muntil ( @ )^m
  For-Schleife:for( @, , , ) # Var-Name, Startvalue, Endvalue (, Step)^m  ^mendfor^m
  Schleife abbrechen:break()^m
  Schleifenrumpf überspringen:continue()^m
 Sprungsmarken
  Gehe zu Sprungmarke:Goto ( @ )^m
  Sprungmarke definieren:label ( @ )^m
(Neue) Sub/Function
 Neue Sub/Function:Sub @ ( ) # this sub...^m  ^mendsub^m
 Sub mit Wert verlassen:return ( @ )^m
-
Servernamen
 News-Server
  @NNTPSERVERLIST@
 POP3-Server
  @POP3SERVERLIST@
 SMTP-Server
  @SMTPSERVERLIST@
DFÜ-Netzverbindungen
 @RASLIST@
-
Verfügbare Module
 @TESTMODULES@
