* Modulare_Parameter Verschiedene_Hilfsfunktionen -------------------------------------------------------------------------- CharSet : CP850 -------------------------------------------------------------------------- Fr alle Funktionen gemeinsam gilt: if $fMP_Mes : interaktive Fehlermeldungen ausgeben if #uDF : zus„tzlich Debug-Meldungen $vMP_Err : enth„lt Fehlermeldung, wenn Fehler; sonst nicht definiert (Fehlermeldungen in ANSI) verwendet werden intern #u’0 ... #u’9 oder $t... :MP_MiscVer ---------------------------------------------------------------------------- FKT: Versionsnummer der Bibliothek liefern IN: iV - OUT: iV = Versionsnummer in der Form M.mm DATE: 2016-04-14 FKT: Meldung aus iV wird in Log-Datei geschrieben DESC: wie MP_Log, nur dass iV gel”scht wird DATE: 2017-09-01 COST: 30 :MP_Log ---------------------------------------------------------------------------- FKT: Meldung aus iV wird in Log-Datei geschrieben DESC: Log-Datei wird durch Umbenennen verriegelt IN: iV - Meldung: Beginn mit "!" - Warnung Beginn mit "@" - Fehler sonst Info-Eintrag Codierung OstWest (Ascii) #uPI enth„lt Prozess-Token (globale Variable) $modul - Modulname (Global vom aufrufenden Flex gesetzt) OUT: Eintrag in {D}{dbn}_log.lst iV unver„ndert VAR: $vMP_Log, $vMP_Log_z, $kenn, $mdate, $vMP_Log_m DATE: 2016-11-20 :MP_a99_Restart :a99_Restart ---------------------------------------------------------------------------- FKT: startet a99 neu und erhält Einstellungen DESC: in Datei 'emergency.rec' werden aktuelle Recordnummer und alle $1-Variablen sowie #u’.-Variablen abgelegt Verarbeitung dieser Informationen erfolgt in _start.flx: dort wird Fkt. "a99_CheckRestart" aufgerufen IN: [auszuführender Flex-Befehl] OUT: - (Datei 'emergency.rec') VAR: $m, z, $vPV DATE: 2014-04-01 :a99_CheckRestart ---------------------------------------------------------------------------- IN: Datei 'emergency.rec' wird ausgewertet (s. a99_Restart) enthaltener Flex-Befehl wird extrahiert OUT: $1-Variablen wiederhergestellt, emergency.rec gel”scht z = 0, wenn kein Restart, sonst >0 iV - extrahierter Flexbefehl oder leer FKT: l„dt Record und startet evtl. Flex; l”scht emergency.rec VAR: $t, $f, z DATE: 2014-04-02 :MP_FileFind ---------------------------------------------------------------------------- FKT: sucht Datei in Standardreihenfolge DB, Flex, Help, Prog, Start IN: Dateiname vollst„ndig ohne Pfad Out: iV = volle FSP; "", wenn nicht gefunden DESC: nutzt open/close, also nicht innerhalb Bereichs benutzen, indem eine mittels open ge”ffnete Datei verarbeitet wird Var: $t,$x $MP_HELPDir, $MP_FLEXDir als Cache :MP_FilesDel ========================================================================== Fkt: l”scht alle Dateien aus einer Liste IN: iV enh„lt Liste der Datenen, mit cstring n getrennt OUT: iV leer :MP_Var0Del ---------------------------------------------------------------------------- IN: $0-Variablenname oder Anfang davon OUT: iV unver„ndert FKT: L”scht alle $0-Variablen, die mit dem Inhalt der iV beginnen ("kleine Variablen") DATE: 2008-04-16 BUG: vor V28.2 muá mindestens 1 $0-Var. brigbleiben (Dummy setzen!) :MP_Var1Del ---------------------------------------------------------------------------- IN: $1-Variablenname oder Anfang davon OUT: iV unver„ndert FKT: L”scht alle $1-Variablen, die mit dem Inhalt der iV beginnen ("groáe Variablen") DATE: 2008-04-16 BUG: vor V28.2 muá mindestens 1 $1-Var. brigbleiben (Dummy setzen!) :MP_CompareEx -------------------------------------------------------------------------- Fkt: prft exakte alphanumerische šbereinstimmung IN: #uCE 1. Wert #uCe 2. Wert OUT: iV = "", wenn ungleich iV = #uCe, wenn gleich iV = "(gleich)", wenn beide Parameter leer :MP_VL_Init ---------------------------------------------------------------------------- FKT: Initialisiert neue Viewliste DESC: name kann volle Pfadangabe enthalten max. L„nge der Gesamtliste auf 64000 Zeichen begrenzt IN: iv "Name;Zeilenl„nge" der neuen Viewliste OUT: iV "", wenn alles o.k. !Fehlermeldung bei Fehler DATE: 2009-07-03 VAR: $vMP_VL_Tmp, $MP_VL_Name, $MP_VL_Len :MP_VL_Add ---------------------------------------------------------------------------- FKT: Schreibt Zeile in Viewliste IN: iV = Zeile, die der akt. Viewliste hinzuzufgen ist OUT: iV unver„ndert, wenn o.k. iV leer, wenn Fehler; Fehlertext dann in $MP_VL_Add DESC: max. L„nge der Gesamtliste auf 64000 Zeichen begrenzt DATE: 2009-07-03 VAR: $vMP_VL_Tmp, $MP_VL_Name, $MP_VL_Len #uTm - tempor„re Var. :MP_VL_Write ---------------------------------------------------------------------------- IN: - OUT: iV = "", wenn o.k., sonst Fehlermeldung FKT: Schreibt Viewliste aus Puffer, leert Puffer DESC: wenn Fehler, werden Puffer nicht geleert DATE: 2009-07-03 VAR: $vMP_VL_Tmp, $MP_VL_Name, $MP_VL_Len :MP_VL_Show ---------------------------------------------------------------------------- IN: "" oder die drei šberschriften, durch "’’" getrennt OUT: $vMP_VL_Show = "", wenn o.k., enth„lt sonst Fehlermeldung sonst iV wie nach View FKT: zeigt letzte Viewliste aus Puffer DESC: wenn Fehler DATE 2009-07-03 VAR: $vMP_VL_Tmp, $MP_VL_Name, $MP_VL_Len :MP_VL_Reset ---------------------------------------------------------------------------- IN: - OUT: iV gel”scht FKT: l”scht Variablen und VL-Dateien DATE: 2011-02-14 VAR: $vMP_VL_Tmp, $MP_VL_Name, $MP_VL_Len :MP_Increment ---------------------------------------------------------------------------- IN: iV - mit zu erh”hender Zahl n OUT: iV mit n+1 FKT: erh”ht Zähler in iv DATE: 2009-10-22 VAR: $mp_inc, mp_incz :MP_VIncr ---------------------------------------------------------------------------- IN: iV - Name der zu incrementierenden Variablen OUT: Variabelen¡nhalt um 1 erh”ht iV = neuer Inhalt der Variablen FKT: erh”ht Zähler in der bergebenen Variablen DATE: 2014-06-09 VAR: $mp_inc, mp_incz :MP_Mkdir ---------------------------------------------------------------------------- IN: iV - Verzeichnispfad OUT: iV = "", sonst Fehlertext mit "!" eingeleitet FKT: legt Verzeichnispfad an, wenn nicht vorhanden DESC: Verzeichnis-Trenner: Backslash verwendet 'open x' - es darf also keine Ausgabedatei offen sein! DATE: 2010-11-12 VAR: $t, $vMP_Mktd, $vMP_Mkdir :MP_EscBackslash IN: iV OUT: iV FKT: ersetzt \ durch \\ in iV DATE: 2010-02-05 VAR: #uU1, #uU2 :MP_SetSignal ---------------------------------------------------------------------------- FKT: setzt Signalfile (dbn.sgf) IN: Info-Text fr Signalfile OUT: iV = "", wenn o.k, sonst Inhalt der Signaldatei ab 2. Byte VAR: $vMP_SetSignal $vMP_SetSignal_fn $vMP_SetSignal_Content $vMP_SetSignal_tfn $t - tmp-Variable DATE: 2017-02-21 :MP_ResetSignal ---------------------------------------------------------------------------- FKT: setzt Signalfile (dbn.sgf) zurück (wird gelöscht) IN: - OUT: iV = "", wenn o.k, sonst Fehlertext VAR: $vMP_ResSig_fn DATE 2014-04-02 :MP_FlipSet ========================================================================== FKT: verwaltet Flip-Texte IN: iV = {flipnummer}{FlipKurztext}={Flexbefehl}|{Fliplangtext} OUT: iV unverändert, wenn o.k, sonst "@Fehlertext" DESC: Beispiel: 1&1: Daten=x sho rec|Satz im Auswahlfeld anzeigen steht in der iV nur die Flipnummer, wird der Flip gelöscht Codierung der Texte in ansi VAR: $par, $flipAusdruck, $flipNummer - temporär $SYS_Fliptext0 ... $SYS_Fliptext9 Aufbewahrung der Flip-Inhalte $SYS_FlipStack0 ... $SYS_FlipStack9 : Flipinhalts-Stack DATE: 2014-07-31 :MP_FlipPop ========================================================================== FKT: vorhergehenden Flipzustand wiederherstellen IN: iV = Flip-Nummer (0 ... 9) OUT: iV = akt. Flipausdruck, wenn o.k, sonst "@Fehlertext" VAR: $par, $flipAusdruck, $flipNummer - temporär $SYS_Fliptext0 ... $SYS_Fliptext9 Aufbewahrung der Flip-Inhalte $SYS_FlipStack0 ... $SYS_FlipStack9 : Flipinhalts-Stack DATE: 2014-02-24 :MP_Ver ========================================================================== FKT: ermittelt numerisch richtige A99-Versionsnummer mit 2 Stellen hinter dem Komma IN: - OUT: iV Versionsnummer in der Form MM.NN VAR: $vMP_VerM, $vMP_VerN DATE: 2010-11-15 :MP_VerInc ========================================================================== FKT: Erhöht Minor-Anteil der Versionsnummer IN: iV = Versionsnummer in der Form [M]M.[m]m[m[]] OUT: iV = neue Versionsnummer Beginnt iV mit !, ist ein Fehler aufgetreten; Fehlertext folgt dann auf das "!" DESC: ist die Stellenzahl des Minor-Wertee <2, wird sie auf 2 gesetzt Ein Minor-Wert von 9 erzeugt dadurch keinen šberlauf Werte fr Minor mit 99, 999 usw. erzeugen einen šberlauf VAR: $parVerInc - übergebener Parameter $vVerInc_M - Major-Anteil $vVerInc_m - Minor-Anteil $vVI_mLen - ursprüngliche Stellenanzahl des Minor-Anteils DATE: 2014-12-22 :MP_VerCmp() ========================================================================== FKT: Vergleicht Versionsnummern in der Form Major.Minor IN: Par1: Versionsnummer 1 Par2: Versionsnummer 2 OUT: $iv = -1, wenn Vers. 1 < Vers 2 0, wenn Vers. 1 = Vers 2 1, wenn Vers. 1 > Vers 2 Beginnt $iv mit !, ist ein Fehler aufgetreten; Fehlertext folgt dann auf das "!" DESC: Aufruf ber PushAdr/jump! Major- und Minor-Anteil max 3-stellig VAR: $result, $vMP_VerCmp1, $vMP_VerCmp2, $vMP_VerCmp1Maj, $vMP_VerCmp1Min, $vMP_VerCmp2Maj, $vMP_VerCmp2Min RINC: MP_Stack.FLB DATE: 2014-04-02 :MP_GetTempFileName ========================================================================== FKT: bildet einen tmpor„ren Dateienamen (ohne extension) IN: Vorsatz #uPI wird zur Namensbildung verwendet OUT: Name einer temp. Datei ohne Erweiterung im Temp-Verzeichnis DESC: Es wird eine FSP nach folgendem Muster gebildet: {tmp-verzeichnis}\vorsatz{#uPI}_{uhrzeit 6stellig}_{Z„hler} VAR: $vMP_GetTempFileName, $vMP_GTFNTime $MP_GetTempFileName_Cnt - Z„hler - Lebendsdauer: Prozess DATE: 2016-01-19 :MP_ListAdjust Fkt: Liste von Doubletten bereinigen (Trennung durch Code 20dez) IN: iV = Name der Listenvariablen OUT: iV = "", wenn Liste bereinigt, sonst "!Fehler" DESC: Die bergebene Variable enth„lt eine Liste von mit Code 20dez getrennten Strings, die Doubletten enthalten kann Die Doubletten werden aus der Liste entfernt VAR: $vMP_LA, - enth„lt Variablennamen $vMP_LA_Dst, - Zielpuffer $vMP_LA_Src, - Quellpuffer $vMP_LA_t - akt. Suchbegriff :MP_Trace ========================================================================== FKT: Schreibt Info in $MP_TraceLog IN: iV - zu loggender Text OUT: $MP_TraceLog um einen Eintrag erweitert iV unver„ndert VAR: $MP_TraceLog, $vMP_Trace DATE: 2015-04-09 :MP_IdCntInc() ========================================================================== FKT: liefert n„chsten verknpften Z„hler fr eine ID-Nummer IN: {register}{begriff}{tz}{stellenzahl} OUT: $iv = n„chster Zähler = "", wenn Fehler; dann $IdCntInc_Err belegt DESC: Aufruf ber Stack-Mechanismus (PushAdr/jump) nicht mehrplatz-sicher! der Z„hler muss numerisch sein {stellenzahl} wird nur verwendet, wenn kein Z„hler gefunden; ansonsten wird die Stellenzahl aus dem gefundenen Z„hler abgeleitet Beispiel: fr a0001 und a0001*002 im Register 9 liefert der Aufruf mit "|9 a0001 * 2" den Wert 003 VAR: $IdCntInc_Err $t temporär $p_IdCntInc_* interne Parameterspeicher $v_IdCntInc_* interne Zwischenergebnisse #uDF - wenn gesetzt, erfolgen Debug-Meldungen RINC: MP_Stack.flb DATE: 2012-01-29 :MP_FetchEx ========================================================================== FKT: liest Datei ein bei w„hlbarer Ende-Zeichenkette IN: iV = Codefolge, bis zu der gelesen werden soll OUT: iV mit "", wenn nichts mehr zu lesen, sonst Text VAR: $vMPRE_Ende $vMPR_ECodes $vMP_FetchEx_Ret DESC: 'Codefolge' bezeichnet Byte-Code-Dezimalwerte mit SPC getrennt Gesuchte Codes sind im Ergebnis enthalten DATE: 2013-03-11 :MP_Sound ========================================================================== FKT: spielt wav.Datei im Hintergrund IN: name der wav.Datei ohne Extension OUT: iV = "", wenn o.k., sonst mit ! eingeleitete Meldung VAR: $vMPS - temp. DESC: spielt wav-Date mit dem in der iV bergebenen {namen}.wav die passende wav-Datei muss dazu im mp_bin-Ordner liegen Beispiel: var "warn"\perf MP_Sound\if "!" mes DATE: 2013-03-13 :MP_Message ========================================================================== FKT: wie message, aber mit Ton IN: iV = Meldungstext OUT: iV unver„ndert VAR: $vMP_Mes - temp. DESC: zeigt mes-Box und spielt ding.wav DATE: 2013-03-13 :MP_UrnPz ========================================================================== FKT: Bildet Prfziffer fr URN IN: URN ohne PZ OUT: URN mit PZ oder mit "@" beginnende Fehlermeldung VAR: DESC: s. http://www.persistent-identifier.de/service/FAQ.php DATE: 2016-05-08 :MP_TextSort() ---------------------------------------------------------------------------- FKT: sortiert Liste von Testzeilen DESC: Sortiert Textzeilen bis zu einer max. Gr”áe von 64k (Fassungsverm„gen einer $-Variablen) Falls Parameter leer var, Ergebnis so testen: var #u’E\if not "" jump fehler IN: iV - zu sortierende Liste OUT: iV - sortierte Liste #u’E enth„lt Fehlermeldung oder ist leer VAR: $ wird ver„ndert DATE: 2017-09-04 :MP_Hex2Dez ---------------------------------------------------------------------------- FKT: wandelt Hex-Wert (2 Zeichen aus [0 ... f]) in Dezimalzahl DESC: Zeichen ausserhalb des erlaubten Bereiches werden als 0 interpretiert IN: zwei Zeichen [0...9|a...f|A...F] OUT: Dezimalzahl zwischen 0 und 255 VAR: $iv, $erg und z werden ver„ndert DATE: 2017-19-25 :MP_Hex2Txt() ---------------------------------------------------------------------------- FKT: wandelt Hex-Folgen (jeweils 2 Zeichen aus [0 ... f]) in Text DESC: Zeichen ausserhalb des erlaubten Bereiches werden als 0 interpretiert, 0-Werte IN: Hex-codierte Zeichenfolge OUT: $iV = String, Bin„r Null wird durch '.' ersetzt VAR: $, $t, $tmp, $erg, $iv und z werden ver„ndert DATE: 2017-19-26 RINC: MP_Stack.FLB