Ja, klappt auch
Gruß Volkmar
Ja, klappt auch
Gruß Volkmar
Abt. Buchstabenhäufigkeiten Deutsch (Quelle: Internet)
===================================
Da bei Tastendrücken selbst noch nicht unterschieden wird zwischen Groß- und Kleinbuchstaben - das geschieht erst nach softwaremäßiger Berücksichtigung des Umschalttastenstatus - ist diese einfache Statistik für die zeitliche Optimierung der Keyboard-Abfrage zu wählen. Hier die Ergebnisse nach geeigneter Umordnung: ENIRSTAD HULCG MOBWF KZVPÜÄ ßÖJXYQ
Buchstabe,Häufigkeit
E,16.93%
N,10.53%
I,8.02%
R,6.89%
S,6.42%
T,5.79%
A,5.58%
D,4.98%
H,4.98%
U,3.83%
L,3.60%
C,3.16%
G,3.02%
M,2.55%
O,2.24%
B,1.96%
W,1.78%
F,1.49%
K,1.32%
Z,1.21%
V,0.84%
P,0.67%
Ü,0.65%
Ä,0.54%
ß,0.37%
Ö,0.30%
J,0.24%
X,0.05%
Y,0.05%
Q,0.02%
... woraus dann folgende (für mein Laptop) optimierte Abfragereihenfolge entsteht:
Windowtitle "IsKey()-Tastatur-Experimentierbrett"
Windowstyle 24:Cls:declare ky$
Repeat
waitinput 3000
GetKey
print substr$(ky$,1,",")+" ¦ ";
until 0
Proc GetKey :clear ky$
if iskey(1):ky$="Linke_Maustaste,VK_LBUTTON":return
elseif iskey(2):ky$="Rechte_Maustaste,VK_RBUTTON":return
elseif iskey(4):ky$="Mittlere_Maustaste,VK_MBUTTON":return
elseif iskey(27):ky$="Esc,VK_ESCAPE":return
elseif iskey(19):ky$="Pause,VK_PAUSE":return
elseif iskey(9):ky$="Tab,VK_TAB":return
elseif iskey(32):ky$="Space,VK_SPACE":return
elseif iskey(13):ky$="Return,VK_RETURN":return
elseif iskey(46):ky$="Entf,VK_DELETE":return
elseif iskey(144):ky$="Numlock,VK_NUMLOCK":return
elseif iskey(145):ky$="Rollen,VK_SCROLL":return
elseif iskey(160):ky$="Linkes_Shift,VK_LSHIFT":return
elseif iskey(161):ky$="Rechtes_Shift,VK_RSHIFT":return
elseif iskey(163):ky$="Rechtes_Strg,VK_RCONTROL":return
elseif iskey(164):ky$="Linkes_Alt,VK_LMENU":return
elseif iskey(165):ky$="Rechtes_Alt,VK_RMENU":return
elseif iskey(162):ky$="Linkes_Strg,VK_LCONTROL":return
elseif iskey(91):ky$="Linkes_Windows,VK_LWIN":return
elseif iskey(92):ky$="Rechtes_Windows,VK_RWIN":return
elseif iskey(93):ky$="AppleKey,VK_APPS":return
elseif iskey(16):ky$="Shift,VK_SHIFT":return
elseif iskey(17):ky$="Strg,VK_CONTROL":return
elseif iskey(18):ky$="Alt_Menue,VK_MENU":return
' ENIR STAD HULCG MOBWF KZVPÜÄ ßÖJXYQ
elseif iskey(69):ky$="E,VK_E":return
elseif iskey(78):ky$="N,VK_N":return
elseif iskey(73):ky$="I,VK_I":return
elseif iskey(82):ky$="R,VK_R":return
elseif iskey(83):ky$="S,VK_S":return
elseif iskey(84):ky$="T,VK_T":return
elseif iskey(65):ky$="A,VK_A":return
elseif iskey(68):ky$="D,VK_D":return
elseif iskey(72):ky$="H,VK_H":return
elseif iskey(85):ky$="U,VK_U":return
elseif iskey(76):ky$="L,VK_L":return
elseif iskey(67):ky$="C,VK_C":return
elseif iskey(71):ky$="G,VK_G":return
elseif iskey(77):ky$="M,VK_M":return
elseif iskey(79):ky$="O,VK_O":return
elseif iskey(66):ky$="B,VK_B":return
elseif iskey(87):ky$="W,VK_W":return
elseif iskey(70):ky$="F,VK_F":return
elseif iskey(75):ky$="K,VK_K":return
elseif iskey(90):ky$="Z,VK_Z":return
elseif iskey(86):ky$="V,VK_V":return
elseif iskey(80):ky$="P,VK_P":return
elseif iskey(186):ky$="Ü,ky186":return
elseif iskey(222):ky$="Ä,ky222":return
elseif iskey(219):ky$="ß,ky219":return
elseif iskey(192):ky$="Ö,ky192":return
elseif iskey(74):ky$="J,VK_J":return
elseif iskey(88):ky$="X,VK_X":return
elseif iskey(89):ky$="Y,VK_Y":return
elseif iskey(81):ky$="Q,VK_Q":return
elseif iskey(48):ky$="0,VK_0":return
elseif iskey(49):ky$="1,VK_1":return
elseif iskey(50):ky$="2,VK_2":return
elseif iskey(51):ky$="3,VK_3":return
elseif iskey(52):ky$="4,VK_4":return
elseif iskey(53):ky$="5,VK_5":return
elseif iskey(54):ky$="6,VK_6":return
elseif iskey(55):ky$="7,VK_7":return
elseif iskey(56):ky$="8,VK_8":return
elseif iskey(57):ky$="9,VK_9":return
elseif iskey(96):ky$="Num0,VK_NUMPAD0":return
elseif iskey(97):ky$="Num1,VK_NUMPAD1":return
elseif iskey(98):ky$="Num2,VK_NUMPAD2":return
elseif iskey(99):ky$="Num3,VK_NUMPAD3":return
elseif iskey(100):ky$="Num4,VK_NUMPAD4":return
elseif iskey(101):ky$="Num5,VK_NUMPAD5":return
elseif iskey(102):ky$="Num6,VK_NUMPAD6":return
elseif iskey(103):ky$="Num7,VK_NUMPAD7":return
elseif iskey(104):ky$="Num8,VK_NUMPAD8":return
elseif iskey(105):ky$="Num9,VK_NUMPAD9":return
elseif iskey(106):ky$="Multiplikation*,VK_MULTIPLY":return
elseif iskey(107):ky$="Addition+,VK_ADD":return
elseif iskey(108):ky$="Separatortaste,VK_SEPARATOR":return
elseif iskey(109):ky$="Subtraktion-,VK_SUBTRACT":return
elseif iskey(110):ky$="Dezimal.,VK_DECIMAL":return
elseif iskey(111):ky$="Division/,VK_DIVIDE":return
elseif iskey(187):ky$="Plus,ky187":return
elseif iskey(188):ky$="Bindestrich,ky188":return
elseif iskey(189):ky$="Minus,ky189":return
elseif iskey(190):ky$="Kommapunkt,,ky190":return
elseif iskey(220):ky$="^,ky220":return
elseif iskey(221):ky$="Accent,ky221":return
elseif iskey(226):ky$="<,ky226":return
elseif iskey(3):ky$="Unterbr,VK_CANCEL":return
elseif iskey(8):ky$="BackSpace,VK_BACK":return
elseif iskey(12):ky$="Entfernen,VK_CLEAR":return
elseif iskey(20):ky$="CapsLock,VK_CAPITAL":return
elseif iskey(33):ky$="BildHoch,VK_PRIOR":return
elseif iskey(34):ky$="BildRunter,VK_NEXT":return
elseif iskey(35):ky$="Ende,VK_END":return
elseif iskey(36):ky$="Pos1,VK_HOME":return
elseif iskey(37):ky$="Links,VK_LEFT":return
elseif iskey(38):ky$="Hoch,VK_UP":return
elseif iskey(39):ky$="Rechts,VK_RIGHT":return
elseif iskey(40):ky$="Runter,VK_DOWN":return
elseif iskey(41):ky$="Select,VK_SELECT":return
elseif iskey(42):ky$="Druck,VK_PRINT":return
elseif iskey(43):ky$="Execute,VK_EXECUTE":return
elseif iskey(44):ky$="Druck,VK_SNAPSHOT":return
elseif iskey(45):ky$="Einfg,VK_INSERT":return
elseif iskey(47):ky$="Hilfe,VK_HELP":return
elseif iskey(112):ky$="F1,VK_F1":return
elseif iskey(113):ky$="F2,VK_F2":return
elseif iskey(114):ky$="F3,VK_F3":return
elseif iskey(115):ky$="F4,VK_F4":return
elseif iskey(116):ky$="F5,VK_F5":return
elseif iskey(117):ky$="F6,VK_F6":return
elseif iskey(118):ky$="F7,VK_F7":return
elseif iskey(119):ky$="F8,VK_F8":return
elseif iskey(120):ky$="F9,VK_F9":return
elseif iskey(121):ky$="F10,VK_F10":return
elseif iskey(122):ky$="F11,VK_F11":return
elseif iskey(123):ky$="F12,VK_F12":return
'elseif iskey(124):ky$="F13,VK_F13":return
'elseif iskey(125):ky$="F14,VK_F14":return
'elseif iskey(126):ky$="F15,VK_F15":return
'elseif iskey(127):ky$="F16,VK_F16":return
'elseif iskey(128):ky$="F17,VK_F17":return
'elseif iskey(129):ky$="F18,VK_F18":return
'elseif iskey(130):ky$="F19,VK_F19":return
'elseif iskey(131):ky$="F20,VK_F20":return
'elseif iskey(132):ky$="F21,VK_F21":return
'elseif iskey(133):ky$="F22,VK_F22":return
'elseif iskey(134):ky$="F23,VK_F23":return
'elseif iskey(135):ky$="F24,VK_F24":return
else :ky$="Timer?"
endif
endproc
Alles anzeigen
Gruss
Abt. KeyCode kompakter
===================
Beim Kompaktieren hat sich herausgestellt, daß das "Return" nach jedem Vergleich mit ElseIf kaum etwas bringt. Im Compiler ist überhaupt kein Zeitunterschied erkennbar, offenbar fügt der Compiler standardmäßig sozusagen ein "Goto Endif" am Ende jedes logischen Abschnittes ein. Damit wird die Sache nun tatsächlich schon recht kompakt.
Windowtitle "IsKey()-Tastatur-Experimentierbrett"
Windowstyle 24:Cls:declare ky$
Repeat
waitinput 3000
GetKey
print ky$;" ";
until 0
Proc GetKey :clear ky$
if iskey(1):ky$="Linke_Maustaste":elseif iskey(2):ky$="Rechte_Maustaste"
elseif iskey(4):ky$="Mittlere_Maustaste":elseif iskey(27):ky$="Esc":elseif iskey(19):ky$="Pause"
elseif iskey(69):ky$="E":elseif iskey(78):ky$="N":elseif iskey(73):ky$="I":elseif iskey(82):ky$="R"
elseif iskey(83):ky$="S":elseif iskey(84):ky$="T":elseif iskey(65):ky$="A":elseif iskey(68):ky$="D"
elseif iskey(72):ky$="H":elseif iskey(85):ky$="U":elseif iskey(76):ky$="L":elseif iskey(67):ky$="C"
elseif iskey(71):ky$="G":elseif iskey(77):ky$="M":elseif iskey(79):ky$="O":elseif iskey(66):ky$="B"
elseif iskey(87):ky$="W":elseif iskey(70):ky$="F":elseif iskey(75):ky$="K":elseif iskey(90):ky$="Z"
elseif iskey(86):ky$="V":elseif iskey(80):ky$="P":elseif iskey(186):ky$="Ü186"
elseif iskey(222):ky$="Ä222":elseif iskey(219):ky$="ß219":elseif iskey(192):ky$="Ö192"
elseif iskey(74):ky$="J":elseif iskey(88):ky$="X":elseif iskey(89):ky$="Y":elseif iskey(81):ky$="Q"
elseif iskey(48):ky$="0":elseif iskey(49):ky$="1":elseif iskey(50):ky$="2":elseif iskey(51):ky$="3"
elseif iskey(52):ky$="4":elseif iskey(53):ky$="5":elseif iskey(54):ky$="6":elseif iskey(55):ky$="7"
elseif iskey(56):ky$="8":elseif iskey(57):ky$="9" : elseif iskey(96):ky$="Num0"
elseif iskey(97):ky$="Num1":elseif iskey(98):ky$="Num2":elseif iskey(99):ky$="Num3"
elseif iskey(100):ky$="Num4":elseif iskey(101):ky$="Num5":elseif iskey(102):ky$="Num6"
elseif iskey(103):ky$="Num7":elseif iskey(104):ky$="Num8":elseif iskey(105):ky$="Num9"
elseif iskey(106):ky$="NumMult*":elseif iskey(107):ky$="NumAdd+":elseif iskey(108):ky$="NumSeparator"
elseif iskey(109):ky$="NumSubtr-":elseif iskey(110):ky$="NumDezimal.":elseif iskey(111):ky$="NumDivision/"
elseif iskey(187):ky$="Plus187":elseif iskey(188):ky$="Bindestrich188"
elseif iskey(189):ky$="Minus189":elseif iskey(190):ky$="Kommapunkt190"
elseif iskey(220):ky$="^":elseif iskey(221):ky$="Accent":elseif iskey(226):ky$="<"
elseif iskey(9):ky$="Tab":elseif iskey(32):ky$="Space":elseif iskey(13):ky$="Return":elseif iskey(46)
ky$="Entf":elseif iskey(144):ky$="NumLock":elseif iskey(145):ky$="Rollen":elseif iskey(160)
ky$="Linkes_Shift":elseif iskey(161):ky$="Rechtes_Shift":elseif iskey(163):ky$="Rechtes_Strg"
elseif iskey(165):ky$="Rechtes_Alt":elseif iskey(162):ky$="Linkes_Strg":elseif iskey(91)
ky$="Linkes_Windows":elseif iskey(92):ky$="Rechtes_Windows":elseif iskey(93):ky$="AppleKey"
elseif iskey(164):ky$="Linkes_Alt":elseif iskey(18):ky$="Alt_Menue":elseif iskey(16):ky$="Shift"
elseif iskey(17):ky$="Strg"
elseif iskey(3):ky$="Unterbr":elseif iskey(8):ky$="BackSpace":elseif iskey(12):ky$="NumEntfernen"
elseif iskey(20):ky$="CapsLock":elseif iskey(33):ky$="BildHoch":elseif iskey(34):ky$="BildRunter"
elseif iskey(35):ky$="Ende":elseif iskey(36):ky$="Pos1":elseif iskey(37):ky$="Links"
elseif iskey(38):ky$="Hoch":elseif iskey(39):ky$="Rechts":elseif iskey(40):ky$="Runter"
elseif iskey(41):ky$="Select":elseif iskey(42):ky$="Druck42":elseif iskey(43):ky$="Execute"
elseif iskey(44):ky$="Druck44":elseif iskey(45):ky$="Einfg":elseif iskey(47):ky$="Hilfe"
elseif iskey(112):ky$="F1":elseif iskey(113):ky$="F2":elseif iskey(114):ky$="F3"
elseif iskey(115):ky$="F4":elseif iskey(116):ky$="F5":elseif iskey(117):ky$="F6"
elseif iskey(118):ky$="F7":elseif iskey(119):ky$="F8":elseif iskey(120):ky$="F9"
elseif iskey(121):ky$="F10"
elseif iskey(122):ky$="F11":elseif iskey(123):ky$="F12"
'elseif iskey(124):ky$="F13":elseif iskey(125):ky$="F14":elseif iskey(126):ky$="F15"
'elseif iskey(127):ky$="F16":elseif iskey(128):ky$="F17":elseif iskey(129):ky$="F18"
'elseif iskey(130):ky$="F19":elseif iskey(131):ky$="F20":elseif iskey(132):ky$="F21"
'elseif iskey(133):ky$="F22":elseif iskey(134):ky$="F23":elseif iskey(135):ky$="F24"
else :ky$="Timer?"
endif
endproc
Alles anzeigen
Gruss
P.S.: Die Windows-Funktionstaste, die Tasten DRUCK, F10 sowie die linke ALT-Taste behalten ihre Funktion zur Window-Steuerung, was etwas mit der Direktabfrage interferiert. Die Fn-Taste am Laptop ist mit isKey() nicht abfragbar, modifiziert aber Funktionstasten Richtung Helligkeitssteuerung, Sleep-Modus etc.; NumLock schaltet weiterhin die Num-Tastenfunktionen um, UNTERBR (sowie Linke+Rechte Shift-Taste gleichzeitig) ist in LemonEd mit Abbruch des gestartetetn XProfan-Programmes vorbelegt und daher ebenfalls nicht sinnvoll abfragbar.
Abt. GetKeyName-Funktion für große deutsche Keyboards
====================================
Diese Funktion fußt auf der obigen Variante, wurde aber nun auch um die ScanCode-Namen von großen AT-Normtastaturen ergänzt. Während der XProfan-Befehl WaitScan in %scankey zwar fast alle ScanCodes zurückliefert (nicht z.B. für Maustasten), hält dieser Befehl den Programmablauf an. Mit isKey(x)-Abfrageketten ist das nicht der Fall, und das Programm kann Timer-gesteuert einen zur Keyboardabfrage parallelen Ablauf (z.B. eine Anzeige) bedienen.
Fairer Weise muss dazugesagt werden: Diese Aussage bezieht sich auf Eingabe von einzelnen Zeichen (z.B. für Steuerungen)! Aufgrund der seriellen Abfrage werden Scancodes des alphabetisch vorderen Zeichens wiederholt, wenn zugleich ein alphabetisch später abgefragter Tastendruck gemacht wird. Für flüssige Eingabe von Strings wäre dagegen 2-Key-rollover, besser noch n-Key-rollover erforderlich, was aber das Erfassen von Key-pressed_Events und Key-release_Events erfordert, also eine ganz andere Technik ...
Gruss
Windowtitle "GetKeyName"
Windowstyle 24:Cls:declare ky$
Repeat
waitinput 3000
GetKeyName
print ky$;" ";
until 0
Proc GetKeyName :clear ky$
if iskey(1):ky$="Linke_Maustaste":elseif iskey(2):ky$="Rechte_Maustaste"
elseif iskey(4):ky$="Mittlere_Maustaste":elseif iskey(27):ky$="Esc":elseif iskey(19):ky$="Pause"
elseif iskey(69):ky$="E":elseif iskey(78):ky$="N":elseif iskey(73):ky$="I":elseif iskey(82):ky$="R"
elseif iskey(83):ky$="S":elseif iskey(84):ky$="T":elseif iskey(65):ky$="A":elseif iskey(68):ky$="D"
elseif iskey(72):ky$="H":elseif iskey(85):ky$="U":elseif iskey(76):ky$="L":elseif iskey(67):ky$="C"
elseif iskey(71):ky$="G":elseif iskey(77):ky$="M":elseif iskey(79):ky$="O":elseif iskey(66):ky$="B"
elseif iskey(87):ky$="W":elseif iskey(70):ky$="F":elseif iskey(75):ky$="K":elseif iskey(90):ky$="Z"
elseif iskey(86):ky$="V":elseif iskey(80):ky$="P":elseif iskey(186):ky$="Ü"
elseif iskey(222):ky$="Ä":elseif iskey(219):ky$="ß":elseif iskey(192):ky$="Ö"
elseif iskey(74):ky$="J":elseif iskey(88):ky$="X":elseif iskey(89):ky$="Y":elseif iskey(81):ky$="Q"
elseif iskey(48):ky$="0":elseif iskey(49):ky$="1":elseif iskey(50):ky$="2":elseif iskey(51):ky$="3"
elseif iskey(52):ky$="4":elseif iskey(53):ky$="5":elseif iskey(54):ky$="6":elseif iskey(55):ky$="7"
elseif iskey(56):ky$="8":elseif iskey(57):ky$="9" : elseif iskey(96):ky$="Num0"
elseif iskey(97):ky$="Num1":elseif iskey(98):ky$="Num2":elseif iskey(99):ky$="Num3"
elseif iskey(100):ky$="Num4":elseif iskey(101):ky$="Num5":elseif iskey(102):ky$="Num6"
elseif iskey(103):ky$="Num7":elseif iskey(104):ky$="Num8":elseif iskey(105):ky$="Num9"
elseif iskey(106):ky$="NumMult":elseif iskey(107):ky$="NumAdd":elseif iskey(108):ky$="NumSeparator"
elseif iskey(109):ky$="NumSubtr":elseif iskey(110):ky$="NumDezimal":elseif iskey(111):ky$="NumDiv"
elseif iskey(187):ky$="Plus":elseif iskey(188):ky$="Beistrich"
elseif iskey(189):ky$="Minus":elseif iskey(190):ky$="Punkt":elseif iskey(191):ky$="Gatter"
elseif iskey(220):ky$="^":elseif iskey(221):ky$="Accent":elseif iskey(226):ky$="<"
elseif iskey(9):ky$="Tab":elseif iskey(32):ky$="Leerzchn":elseif iskey(13):ky$="Return":elseif iskey(46)
ky$="Entf":elseif iskey(144):ky$="NumLock":elseif iskey(145):ky$="Rollen":elseif iskey(160)
ky$="Linkes_Shift":elseif iskey(161):ky$="Rechtes_Shift":elseif iskey(163):ky$="Rechtes_Strg"
elseif iskey(165):ky$="Rechtes_Alt":elseif iskey(162):ky$="Linkes_Strg":elseif iskey(91)
ky$="Linkes_Windows":elseif iskey(92):ky$="Rechtes_Windows":elseif iskey(93):ky$="AppleKey"
elseif iskey(164):ky$="Linkes_Alt":elseif iskey(18):ky$="Alt_Menue":elseif iskey(16):ky$="Shift"
elseif iskey(17):ky$="Strg":
elseif iskey(3):ky$="Unterbr":elseif iskey(8):ky$="BackSpace":elseif iskey(12):ky$="NumEntfernen"
elseif iskey(20):ky$="CapsLock":elseif iskey(33):ky$="BildHoch":elseif iskey(34):ky$="BildRunter"
elseif iskey(35):ky$="Ende":elseif iskey(36):ky$="Pos1":elseif iskey(37):ky$="Links"
elseif iskey(38):ky$="Hoch":elseif iskey(39):ky$="Rechts":elseif iskey(40):ky$="Runter"
elseif iskey(41):ky$="Select":elseif iskey(42):ky$="Druck":elseif iskey(43):ky$="Execute"
elseif iskey(44):ky$="Druck44":elseif iskey(45):ky$="Einfg":elseif iskey(47):ky$="Hilfe"
elseif iskey(112):ky$="F1":elseif iskey(113):ky$="F2":elseif iskey(114):ky$="F3"
elseif iskey(115):ky$="F4":elseif iskey(116):ky$="F5":elseif iskey(117):ky$="F6"
elseif iskey(118):ky$="F7":elseif iskey(119):ky$="F8":elseif iskey(120):ky$="F9"
'elseif iskey(121):ky$="F10"
elseif iskey(122):ky$="F11":elseif iskey(123):ky$="F12"
'elseif iskey(124):ky$="F13":elseif iskey(125):ky$="F14":elseif iskey(126):ky$="F15"
'elseif iskey(127):ky$="F16":elseif iskey(128):ky$="F17":elseif iskey(129):ky$="F18"
'elseif iskey(130):ky$="F19":elseif iskey(131):ky$="F20":elseif iskey(132):ky$="F21"
'elseif iskey(133):ky$="F22":elseif iskey(134):ky$="F23":elseif iskey(135):ky$="F24"
else :ky$="Timer"
endif
endproc
Alles anzeigen
Abt. WaitScan-Studie
=============
Es scheint derzeit nicht möglich, Linke und Rechte Shift/Strg/Alt-Tasten mittels WaitScan-Befehl und der zugehörigen Systemvariable %ScanKey zu unterscheiden. Auch Mauskeys werden nicht erkannt (Dazu gibt es WaitMouse und %MouseKey). Für geringere Ansprüche reicht diese Abfrage wegen ihrer Einfachheit aber oft aus - anbei ein Beispiel.
Gruss
P.S.: Die Namen der Tasten werden hier komprimierter zugewiesen: Für aufeinander folgende TastenCodes ist jeweils nur der Startwert des ersten der konsekutiven Namen erforderlich.
windowtitle "WaitScan":cls:font 2
var k$="Timer Linke_Maustaste Rechte_Maustaste Unterbr Mittlere_Maustaste 19 Pause 27 Esc "+\
"69 E 78 N 73 I 82 R 83 S 84 T 65 A 68 D 72 H 85 U 76 L 67 C 71 G 77 M 79 O "+\
"66 B 87 W 70 F 75 K 90 Z 86 V 80 P 186 Ü 222 Ä 219 ß 192 Ö 74 J 88 X 89 Y 81 Q "+\
"48 Z0 Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 96 Num0 Num1 Num2 Num3 Num4 Num5 Num6 Num7 Num8 Num9 "+\
"NumMult NumAdd NumSeparator NumSubtr NumDezimal NumDiv 187 Plus Beistrich Minus Punkt Gatter "+\
"220 ^ Accent 226 < 9 Tab 32 Space 13 Return 144 NumLock Rollen "+\
"160 Linkes_Shift Rechtes_Shift 163 Rechtes_Strg 165 Rechtes_Alt 162 Linkes_Strg "+\
"91 Linkes_Windows Rechtes_Windows AppKey 164 Linkes_Alt 18 Alt_Gr 16 Shift Ctrl "+\ 'oder raus
"8 BackSpace 12 NumEntfernen 20 CapsLock 33 BildHoch BildRunter Ende Pos1 "+\
"Links Hoch Rechts Runter Select Druck Execute Druck44 Einfg Entf Hilfe "+\
"112 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24"
declare key$[255],v&,w&,t$[],sz&:t$[]=explode(k$," "):sz&=SizeOf(t$[]):clear t$[]
:whileloop sz&:v&=&Loop:if val(substr$(k$,v&," "))=0:key$[w&]=substr$(k$,v&," "):inc w&:inc v&
else:w&=val(substr$(k$,v&," ")):endif:endwhile:whileloop 0,255:v&=&Loop:case key$[v&]=""
key$[v&]="ky_"+str$(v&) ':print v&,key$[v&]:if %csrlin>31:waitinput:cls:endif
Endwhile
cls:repeat:WaitScan:print Key$[%scankey],:until 0
Alles anzeigen
Abt. Dateinamen aus Linux-Verzeichnissen auslesen
==================================
Funktioniert aber nur wenn der Server auf Standardausgabeformat eingestellt ist. Dann beginnt der Dateiname nämlich nach dem 8. Leerzeichen.
Gruss
cls $A0A0A0
declare v&,T$[]
GetFTPDir T$[]
v&=0
if mid$(T$[0],1,2)="-r"
:print "\nLINUNIX Server\n"
:whileloop 8:v&=instr(" ",T$[0],v&+2):endwhile
:whileloop 0,sizeof(T$[])-1:Print mid$(T$[&Loop],v&+1,Len(T$[&Loop])-v&):endwhile
else
:print "\n OS? \n"
endif
Waitinput
END
proc getftpdir :parameters tt$[]
TT$[]=explode("\
-rwxrw-rw- 1 jacdelad users 6887268 Dec 2 2016 1-01 Rubbles.ogg\n\
-rwxrw-rw- 1 jacdelad users 6877378 Dec 2 2016 1-02 Magpie Eggs.ogg\n\
-rwxrw-rw- 1 jacdelad users 5572234 Dec 2 2016 1-03 Ardennes.ogg\n\
-rwxrw-rw- 1 jacdelad users 5714149 Dec 2 2016 1-04 A Sense Of Grey.ogg\n\
-rwxrw-rw- 1 jacdelad users 6432649 Dec 2 2016 1-05 Smoke.ogg\n\
-rwxrw-rw- 1 jacdelad users 8526437 Dec 2 2016 1-06 Poetry.ogg\n\
-rwxrw-rw- 1 jacdelad users 6450324 Dec 2 2016 1-07 Stuck In The Waltz.ogg\n\
-rwxrw-rw- 1 jacdelad users 8774049 Dec 2 2016 1-08 7!.ogg\n\
-rwxrw-rw- 1 jacdelad users 4181844 Dec 2 2016 1-09 Krokstav-emne.ogg","\n")
endproc
Alles anzeigen
Und hier meine Variante:
declare p$[],d$,s$
cls
p$[]=Explode("-rwxrw-rw- 1 jacdelad users 6887268 Dec 2 2016 1-01 Rubbles.ogg\n-rwxrw-rw- 1 jacdelad users 6877378 Dec 2 2016 1-02 Magpie Eggs.ogg\n-rwxrw-rw- 1 jacdelad users 5572234 Dec 2 2016 1-03 Ardennes.ogg\n-rwxrw-rw- 1 jacdelad users 5714149 Dec 2 2016 1-04 A Sense Of Grey.ogg\n-rwxrw-rw- 1 jacdelad users 6432649 Dec 2 2016 1-05 Smoke.ogg\n-rwxrw-rw- 1 jacdelad users 8526437 Dec 2 2016 1-06 Poetry.ogg\n-rwxrw-rw- 1 jacdelad users 6450324 Dec 2 2016 1-07 Stuck In The Waltz.ogg\n-rwxrw-rw- 1 jacdelad users 8774049 Dec 2 2016 1-08 7!.ogg\n-rwxrw-rw- 1 jacdelad users 4181844 Dec 2 2016 1-09 Krokstav-emne.ogg","\n")
whileloop 0,SizeOf(p$[])-1
if InStr(":",p$[&Loop])
d$=Del$(SubStr$(p$[&Loop],2,":"),1,3)
else
d$=Trim$(Right$(p$[&Loop],Len(p$[&Loop])-InStr("users",p$[&Loop])-5))
whileloop 4
d$=Trim$(Del$(d$,1,InStr(" ",d$)))
endwhile
endif
Print "*"+d$
endwhile
waitinput
end
Alles anzeigen
Es scheint so, dass bei Dateien, die in diesem Jahr gespeichert werden das Jahr weggelassen wird und dafür die Zeit gespeichert wird und nur bei älteren Dateien die 8-Leerzeichen-Methode nötig ist.
Das mit ":" klappt bei mir leider nicht. FTP liefert mir lange Pfade, so wie man sie auch im betreffenden Windows-Unterverzeichnis erzeugen kann (CMD.exe: DIR /b > %USERPROFILE%\Desktop\myfiles.txt)
Um auch den Pfad zu isolieren, hilft nur die "\" von hinten nach vorne zu suchen.
Gruss
Abt. Aus dem Müll gerettet: Arraylisten umkehren
================================
... z.B. wenn man am Ende einer lexilalischen Permutation wieder von vorne beginnen möchte:
Proc Umkehren :parameters T$[]
var n&=sizeof(t$[]):case n&<1:return
declare tmp$
Whileloop 0,(n&-1)/2
tmp$=T$[&Loop]:T$[&Loop]=T$[n&-&Loop-1]:T$[n&-&Loop-1]=tmp$
endwhile
endproc
WindowTitle "Proc-Test: LISTE UMKEHREN"
cls
Declare T$[]
SetValues(T$[])
Ausgabe(T$[])
Umkehren(T$[])
Ausgabe(T$[])
Umkehren(T$[])
Ausgabe(T$[])
waitinput
End
Proc SetValues :parameters T$[]
T$[0]="a":T$[1]="b":T$[2]="c":T$[3]="d" ':T$[4]="e"
Endproc
Proc Ausgabe :parameters T$[]
var n&=sizeof(t$[]):case n&=0:return
whileloop 0,n&-1
print t$[&Loop],
endwhile:print
endproc
Alles anzeigen
Das mit ":" klappt bei mir leider nicht. FTP liefert mir lange Pfade, so wie man sie auch im betreffenden Windows-Unterverzeichnis erzeugen kann (CMD.exe: DIR /b > %USERPROFILE%\Desktop\myfiles.txt)
Um auch den Pfad zu isolieren, hilft nur die "\" von hinten nach vorne zu suchen.
Gruss
Crap. Also ist wirklich jeder Server anders.
Abt. Profan steht in der Zeittafel der Programmiersprachen
======================================
und hat am Di., 25.07.2017 den 25sten "Geburtstag"! Also stellt schon mal den Sekt kalt!
Abt. Einsteins Rätsel
=====================
... ist eine Version des sog. Zebrarätsels. Es wurde angeblich von Albert Einstein
verfasst. Nur 2 % der Weltbevölkerung seien im Stande, das Rätsel zu lösen.
Tatsächlich existiert jedoch kein Hinweis auf irgendeine Autorenschaft.
Viel Spaß!
P.S.: Rahmenbedingungen für solche Rätsel:
I. Es gibt fünf Häuser mit je einer anderen Farbe.
II. In jedem Haus wohnt eine Person anderer Nationalität.
III. Jeder Hausbewohner bevorzugt ein bestimmtes Getränk,
raucht eine bestimmte Zigarettenmarke und hält ein bestimmtes Haustier.
IV. Keine der fünf Personen trinkt das gleiche Getränk, raucht die gleichen
Zigaretten oder hält das gleiche Tier wie seine Nachbarn.
V. Die Häuser stehen nebeneinander.
VI. Es gibt eine eindeutige Lösung.
Die beigeschlossenen Angaben samt Lösungshilfe sind zum Ausdrucken mit
dem Notepad-Edtor und Courier (alt)-Fixabstandsschrift gedacht.
Die Angaben:
a Der Brite lebt im roten Haus.
b Der Schwede hält einen Hund.
c Der Däne trinkt gern Tee.
d Das grüne Haus steht direkt links neben dem weißen Haus.
e Der Besitzer des grünen Hauses trinkt Kaffee.
f Die Person, die Pall Mall raucht, hält einen Vogel.
g Der Mann, der im mittleren Haus wohnt, trinkt Milch.
h Der Besitzer des gelben Hauses raucht Dunhill.
i Der Norweger wohnt im ersten Haus.
j Der Marlboro-Raucher wohnt neben dem, der eine Katze hält.
k Der Mann, der ein Pferd hält, wohnt neben dem, der Dunhill raucht.
l Der Winfield-Raucher trinkt gern Bier.
m Der Norweger wohnt neben dem blauen Haus.
n Der Deutsche raucht Rothmans.
o Der Marlboro-Raucher hat einen Nachbarn, der Wasser trinkt.
Rätselfrage: Wem gehört der Fisch?
Legende:
= ... sh. Angabe-Satz
LV ... "ist links von * "
NB ... "ist Nachbar von "
Schema:
---------------------------------------------------
Haus-Nr. ! 1 ! 2 ! 3 ! 4 ! 5 ! = ! LV ! NB ! NB !
---------------------------------------------------
Brite ! - ! ! ! ! ! a ! ! ! !
Schwede ! - ! ! ! ! ! b ! ! ! !
Däne ! - ! ! ! ! ! c ! ! ! !
Norweger ! + ! - ! - ! - ! - ! i ! ! m ! !
Deutscher ! - ! ! ! ! ! n ! ! ! !
-------------------------------
rot ! ! ! ! ! ! a ! ! ! !
grün ! ! ! ! ! ! e ! d ! ! !
gelb ! ! ! ! ! ! h ! ! ! !
blau ! ! ! ! ! ! ! ! m ! !
weiß ! ! ! ! ! ! ! * ! ! !
-------------------------------
Tee ! ! ! - ! ! ! b ! ! ! !
Kaffee ! ! ! - ! ! ! e ! ! ! !
Milch ! - ! - ! + ! - ! - ! g ! ! ! !
Bier ! ! ! - ! ! ! l ! ! ! !
Wasser ! ! ! - ! ! ! ! ! ! o !
-------------------------------
PallMall ! ! ! ! ! ! f ! ! ! !
Dunhill ! ! ! ! ! ! h ! ! k ! !
Marlboro ! ! ! ! ! ! ! ! j ! o !
Winfield ! ! ! ! ! ! l ! ! ! !
Rothmans ! ! ! ! ! ! n ! ! ! !
-------------------------------
Hund ! ! ! ! ! ! c ! ! ! !
Vogel ! ! ! ! ! ! f ! ! ! !
Pferd ! ! ! ! ! ! ! ! k ! !
Katze ! ! ! ! ! ! ! ! j ! !
Fisch ! ! ! ! ! ! ! ! ! !
---------------------------------------------------
Hier ein Link zu jemandem, der die genaue Lösung beschreibt. Vorher aber selbst probieren!
Zu 5 Elementen gibt es 120 Permutationen. Da es hier aber 5 freie Kategorien mit je 5 Elementen gibt, müssten im Mittel 120^5 / 2 = ca. 12.4 Milliarden Kombiinationen geprüft werden. Brute force-Versuche dauern also ziemllich lange, da ist Grips oder KI deutlich schneller.
zu oben: Hab versehentlich in der Lösungshilfe b und c vertauscht, bitte ändern! SORRY!
Abt. USA-Wahlen 2018
================
US-Präsident Trump sammelt schon für seine Wiederwahl 2020, was ihm neue Anfeindungen in den Medien bringt.
Zuvor kommen aber 2018, am 2. Dienstag im November, die sog. Halbzeitwahlen, bei denen ein Drittel der Senatoren und das gesamte Repräsentantenhaus neu gewählt werden. Traditionell geht es wegen der "The Winner takes it all"-Regel im Grunde wieder nur um die Frage, ob REPUBLIKANER (die Konservativen) oder DEMOKRATEN (die weniger konservativen) stärker sind. Daß es im Prinzip aber eine große Auswahl an Parteien (inkl. Nazis und Kommunisten) gäbe, zeigt nachfolgendes Progrämmchen.
Gruss
P.S.: Q: Wikipedia
Cls:var td$="\
America´s Party 2008 America´s Independent Party\n\
American Freedom Party 2010 American Third Position Party\n\
American Solidarity Party 2011 Christian Democratic Party USA\n\
Black Riders Liberation Party 1996 \n\
Christian Liberty Party* 1996 American Heritage Party \n\
Citizens Party of the United States 2004 New American Independent Party \n\
Communist Party USA 1919 Workers Party of America\n\
Workers (Communist) Party of America International Meeting of Communist and Workers´ Parties\n\
Constitution Party 1992 U.S. Taxpayers´ Party\n\
Freedom Socialist Party 1966 \n\
Green Party 2001 Association of State Green Parties Global Greens\n\
Humane Party 2009 \n\
Independent American Party 1998 \n\
Justice Party 2011 \n\
Legal Marijuana Now Party 1998 \n\
Libertarian Party 1971 International Alliance of Libertarian Parties, Interlibertarians[3]\n\
Modern Whig Party 2007 \n\
National Socialist Movement 1974 National Socialist American Workers Freedom Movement World Union of National Socialists\n\
New Black Panther Party 1989 \n\
Objectivist Party 2008 \n\
Party for Socialism and Liberation 2004 \n\
Peace and Freedom Party 1967 \n\
Prohibition Party 1869 \n\
Reform Party of the United States of America 1995 United We Stand America \n\
Socialist Action 1983 Fourth International\n\
Socialist Alternative 1986 Labor Militant Committee for a Workers´ International\n\
Socialist Equality Party 1966 Workers League International Committee of the Fourth International\n\
Socialist Labor Party of America 1876 Workingmen´s Party (1876-1877)\n\
Socialistic Labor Party (1877-1880s) \n\
Socialist Party USA 1973 Debs Caucus\n\
Union for Democratic Socialism \n\
Socialist Workers Party 1938 Pathfinder tendency (unofficial)\n\
Traditionalist Workers Party 2015 \n\
United States Marijuana Party 2002 \n\
United States Pacifist Party 1983 \n\
United States Pirate Party 2006 Pirate Party International (observer)\n\
Unity Party of America 2004 \n\
Veterans Party of America 2013 \n\
Workers World Party 1959 \n\
REPUBLICAN PARTY (GOP, Symbol Elefant) \n\
DEMOCRATIC PARTY OF AMERICA (DP, Symbol Braver Esel)"
Clearclip:declare i&,j&,t$[],d$[]:t$[]=explode(td$,"\n")
whileloop 0,sizeof(t$[])-1:i&=&Loop
clear d$[]:d$[]=explode(t$[i&]," ")
whileloop 0,0'sizeof(d$[])-1
j&=&Loop:print d$[j&],:putclip d$[j&]+"\n"
endwhile:print
endwhile:Print "\n *** Parteinamen im Clipboard! ***"
waitinput
Alles anzeigen
Abt. Erweiterter MUSIC-Befehl
====================
Man hört auf Youtube manchmal Melodien, die einem im Ohr hängen bleiben. Eine Spieldose auf dem Youtube-Kanal eines gewissen Herrn Frank A. hat es mir da besonders angetan. Daß WAV zu MIDI und MIDI zu XProfans MUSIC heute kein großes Problem mehr ist, belegt folgendes Progrämmchen.
Gruss
P.S.: Klappt ab Freeprofan-32, X3 bzw. X4alpha
Windowtitle "Franks Speeldosje"
Windowstyle 24:Window 30,30-180,31:cls $F0A0A0
'(D) Test des erweiterten Profan-X3 MUSIC Befehls, nur für privaten bzw. internen Gebrauch!
'Musik https://www.youtube.com/watch?v=-N3F-xs4vSk (<<< MÖGLICHERWEISE BESTEHEN RECHTE DRITTER!)
if (left$($ProfVer,2)<"13") and (left$($ProfVer,4)<>"0.9-")
WindowTitle "Ab XProf-X3":waitinput 5000:end:endif:Declare m$
m$="*Q96 ML L0 T240 K0 I8 W100 R64 Z11,127 X:96 V54 N77 X:12 V105 N84 X:12 V121 N76 X:24 V100 N77! "+\
"X:72 V105 N74 X:24 V112 N83 X:12 V100 N84! X:120 V85 N69 V97 N72 X:24 V64 N77 V102 N81 X:12 V100 "+\
"N76! X:60 N77! X:12 V121 N76 V100 N83! X:36 N74! X:12 V81 N74 X:12 V100 N72! X:12 N81! X:60 V109 N72"+\
"X:12 V100 N69! X:12 V49 N69 V100 N74! X:12 V74 N74 V77 N81 X:12 V100 N76! X:48 N69! X:24 V123 N76 "+\
"X:12 V100 N81! X:12 N74! X:24 V18 N69 X:24 V100 N72! V64 N74 X:24 V100 N69! X:36 V112 N72 X:36 V100 "+\
"N76! X:12 V89 N88 X:48 V18 N69 X:48 V100 N69! X:24 N88! X:12 N74! X:12 V101 N84 X:12 V117 N76 X:72 "+\
"V100 N84! X:24 V113 N86 X:36 V94 N71 X:24 V72 N64 X:12 V55 N80 X:48 V100 N80! X:12 N86! X:36 V110 N74 "+\
"V100 N76! X:12 V79 N76 X:12 V103 N84 X:12 V100 N71! X:60 V118 N83 V100 N84! X:24 V95 N71 V100 N72! "+\
"N76! X:12 V53 N72 X:60 V100 N74! X:24 N83! X:24 N72! X:36 V118 N74 X:12 V49 N72 X:72 V100 N64! X:12 "+\
"N72! X:24 V58 N65 V111 N84 X:24 V53 N76 X:12 V100 N71! X:12 V73 N71 X:24 V100 N76! X:12 N74! V51 N76 "+\
"X:12 V107 N74 V100 N84! X:36 N76! X:12 V114 N83 X:84 V122 N81 X:24 V100 N65! X:24 N83! X:84 V97 N69 "+\
"X:12 V100 N71! X:36 N81! X:84 V120 N83 X:24 V62 N64 X:36 V100 N74! N83! X:12 V80 N74 V67 N81 V106 "+\
"N83 X:60 V126 N76 X:24 V100 N83! X:12 V62 N83 X:12 V100 N64! N81! X:12 N74! V35 N81 X:24 V100 N69! "+\
"X:12 V43 N69 X:12 V100 N81! N83! X:12 V114 N74 X:24 V70 N64 X:36 V100 N76! X:48 N69! X:12 V110 N83 "+\
"X:24 V114 N76 X:120 V111 N81 X:12 V87 N69 X:48 V100 N64! X:36 N83! X:156 V73 N64 X:120 V54 N60 X:36 "+\
"V100 N76! X:12 V76 N76 X:24 V100 N64! X:24 N69! X:12 V45 N69 X:24 V100 N76! X:12 V78 N64 X:60 V100 "+\
"N69! X:12 N81! X:12 N74! X:12 V105 N84 X:12 V119 N76 X:108 V105 N74 V114 N83 X:12 V100 N84! X:48 "+\
"N60! X:12 V14 N60 X:48 V100 N60! X:12 V84 N69 V100 N83! X:12 V101 N72 V56 N83 X:12 V100 N76! V103 "+\
"N81 X:36 V100 N83! X:48 V117 N76 X:72 V100 N72! X:36 N81! X:24 V92 N84 X:24 V100 N64! V110 N72 X:12 "+\
"V62 N81 X:12 V100 N84! X:24 N76! X:12 V10 N64 X:12 V100 N81! X:48 N64! X:12 V125 N76 X:24 V100 N69! "+\
"N74! X:24 N72! X:36 V61 N74 X:24 V114 N72 X:36 V100 N74! X:12 V51 N74 X:12 V100 N76! X:36 N74! X:24 "+\
"V90 N84 X:12 V118 N76 X:60 V100 N84! X:48 V99 N71 X:12 V109 N86 X:96 V100 N86! X:12 V98 N84 X:12 "+\
"V111 N74 X:36 V100 N84! X:12 N72! V94 N84 X:12 V100 N71! V75 N72 X:36 V100 N84! X:12 N72! V112 N83 "+\
"X:24 V100 N71 V52 N80 X:12 V58 N64 V48 N72 X:12 V100 N76! X:12 V53 N76 V100 N83! X:48 N72! N76! "+\
"X:12 N80! X:12 N74! X:12 V117 N74 X:12 V49 N72 X:108 V54 N65 X:24 V100 N72! V50 N76 X:12 V37 N72 "+\
"X:12 V104 N84 X:48 V100 N72! N76! X:12 N74! X:12 V108 N74 X:12 V100 N71! X:12 V116 N83 X:12 V100 "+\
"N64! N84! X:36 V36 N76 X:72 V100 N76! V119 N81 X:36 V49 N76 X:48 V100 N76! X:12 V41 N76 X:24 V94 "+\
"N69 X:36 V100 N83! X:12 N76! X:12 V34 N76 X:12 V100 N81! X:12 V60 N81 X:24 V100 N65! X:24 N76! "+\
"X:36 N81! X:12 V56 N64 X:12 V123 N83 X:60 V100 N74! X:12 V73 N74 X:36 V123 N76 X:60 V100 N74! "+\
"X:24 N64! X:48 N69! V115 N74 X:12 V48 N69 V100 N83! X:12 V64 N64 X:24 V100 N76! X:36 N69! X:48 "+\
"V111 N83 X:12 V113 N76 X:132 V82 N69 X:24 V103 N72 X:12 V104 N81 X:36 V100 N64! N76! X:12 V95 N76 "+\
"X:36 V100 N83! X:48 V62 N64 V34 N79 V100 N81! X:12 V91 N81 X:24 V100 N72! X:12 N79! X:48 N74! N76! "+\
"X:12 V119 N72 V66 N74 V65 N76 X:72 V100 N81! X:48 N69! X:36 V52 N69 V112 N71 V100 N76! X:48 N69! "+\
"V48 N76 X:12 V23 N70 X:24 V46 N69 X:12 V100 N76! X:12 N70! X:24 N74! X:12 V35 N74 V106 N84 X:48 V100 "+\
"N74! X:12 N71! X:12 N84! X:12 N69! V117 N83 X:12 V99 N86 X:36 V107 N71 X:12 V100 N64! N83! X:12 N72! "+\
"X:84 V111 N76 V100 N86! X:12 V108 N72 X:12 V59 N83 X:84 V100 N76! X:12 V106 N76 X:12 V100 N83! "+\
"X:12 V127 N79 X:24 V100 N72! X:12 N71! V94 N72 X:12 V100 N76! X:60 V82 N84 X:24 V115 N76 X:36 "+\
"V100 N79! X:48 N84! X:12 V125 N79 X:72 V100 N76! X:12 N72! X:36 V67 N77 X:24 V119 N76 V47 N89 "+\
"X:12 V112 N72 X:36 V100 N77! N79! X:12 N89! X:72 V121 N79 X:108 N77 X:12 V80 N88 X:24 V104 N83 "+\
"X:12 V44 N67 X:12 V100 N79! X:36 N88! X:48 V118 N79 V89 N86 X:24 V100 N67! N76! X:24 N83! X:36 V65 "+\
"N76 X:12 V100 N77! X:36 N76! N86! X:12 V106 N83 X:12 V118 N77 X:12 V99 N74 X:24 V100 N79! X:84 "+\
"V121 N79 X:12 V100 N72! X:84 N83! X:12 V87 N88 X:24 V105 N71 X:36 V100 N77! X:72 V92 N86 V100 N88! "+\
"X:12 V125 N77 X:84 V100 N74! N79! X:12 V69 N74 V57 N79 V100 N86! X:12 V115 N76 X:24 V49 N64 V100 N84 "+\
"X:24 N79! X:24 N74! X:12 V59 N74 X:60 V100 N71! X:12 V123 N79 X:36 V100 N74! N84! X:12 V29 N84 "+\
"X:36 V50 N74 X:24 V100 N84! X:12 V93 N88 X:12 V54 N67 V100 N74! X:36 V113 N72 X:24 V100 N76! "+\
"X:84 N88! X:24 V122 N76 X:12 V100 N79! X:12 N64! N77! V59 N79 X:12 V100 N67! X:12 V39 N67 X:36 "+\
"V100 N79! X:12 V97 N86 X:24 V124 N77 X:72 V100 N86! X:24 V101 N74 X:60 V89 N84 X:12 V100 N76! X:24 "+\
"N67! X:24 N84! X:24 N72! V111 N83 X:24 V112 N76 X:12 V95 N71 X:48 V36 N72 X:36 V100 N74! X:12 N72! "+\
"V89 N74 V100 N83! X:12 V45 N72 X:36 V3 N67 X:12 V10 N64 X:24 V100 N74! X:12 N67! X:12 N72! X:36 V113 "+\
"N74 X:12 V100 N64! X:84 N71! X:24 V90 N86 X:36 V100 N77! X:12 N76! V66 N77 X:12 V100 N86! X:84 "+\
"N77! V113 N84 X:36 V123 N76 X:84 V100 N74! X:48 N84! X:12 V119 N83 X:24 V110 N74 X:156 V104 N72 "+\
"V100 N76! V93 N81 X:12 V87 N69 V100 N83! X:12 V63 N83 X:48 V100 N81! N83! X:12 V83 N81 V60 N83 X:60 "+\
"V123 N76 V100 N83! X:36 N74! X:12 V83 N74 V100 N81! X:36 N72! X:72 V115 N72 X:60 V100 N76! X:60 V123 "+\
"N76 X:24 V100 N69! N74! X:60 N72! X:60 V112 N72 X:24 V100 N76! V85 N88 X:48 V100 N88! X:36 V119 N76 "+\
"X:84 V40 N74 X:48 V100 N74! X:24 V110 N86 X:36 V105 N71 X:12 V69 N64 X:84 V100 N86! X:24 V112 N74 "+\
"X:12 V100 N76! V104 N84 X:60 V100 N71! X:36 V56 N76 X:24 V100 N84! X:24 V104 N71 X:12 V79 N83 X:24 "+\
"V100 N72! X:12 N76! X:12 N74! X:12 N83! X:48 V114 N74 X:60 V44 N76 X:24 V42 N72 X:24 V114 N84 X:12 "+\
"V100 N76! X:12 N72! X:60 N71! X:24 V62 N65 X:12 V31 N71 V49 N76 X:48 V100 N71! X:12 N84! X:12 N64! "+\
"N76! V119 N83 X:12 V100 N74! X:12 V111 N74 X:108 V113 N81 X:24 V39 N79 X:24 V42 N60 X:48 V100 N79! "+\
"X:48 V95 N69 V100 N81! N83! X:168 N65! V122 N83 X:36 V68 N64 X:24 V37 N79 X:72 V100 N79! X:12 V123 "+\
"N76 X:24 V100 N69! X:12 N60! V60 N69 V100 N74! X:12 V14 N60 X:48 V100 N64! X:48 N69! N83! X:24 N60! "+\
"N71 X:12 V111 N74 X:12 V65 N64 X:72 V39 N69 V100 N76! X:12 V6 N60 X:36 V100 N69! X:48 N60! X:24 "+\
"V114 N83 X:24 V116 N76 X:72 V100 N83! X:12 V103 N83 X:60 V22 N69 V100 N71! V33 N77 X:12 V100 N64! "+\
"X:60 N77! X:12 N69! X:36 V112 N81 X:12 V100 N83! X:12 V42 N60 V64 N64 X:132 V30 N79 X:72 V100 N79! "+\
"X:60 V14 N79 X:60 V100 N79! X:48 N76! N81! X:12 V54 N76 X:24 V97 N69 X:48 V100 N76! X:12 V37 N76 "+\
"X:72 V100 N76! X:12 V33 N76 X:48 V100 N74! X:12 N76! X:48 V26 N74 X:72 V100 N60! N64! N69! N74! "
music m$
while %playing and (%umessage <> 16)
case iskey(27): process("kill", &hMusic, 0)
case iskey(83): midi("outshort", $B9, 7, 0)
case iskey(76): midi("outshort", $B9, 7, 100)
sleep 100
endwhile
end
Alles anzeigen
Abt. Regierung 4.0
============
Sind unsere Politiker zu doof und brauchen dringend Künstliche Intelligenz in Form von Expertensystemen? So ein System hätte z.B. vorhergesehen, was gerade eingetroffen ist: Erdogan fährt nach Quatar, holt sich dort Geld wie Heu, liefert Embargogüter und eröffnet dort demnächst eine türkische Militärbasis. Frage: Wird der IS also weiterfinanziert? Da wird eine Beinahe-Reisewarnung was helfen?
Gruss
P.S. zur Info: Zukunftsforscher Prof. Gunter Dück hat wieder zugeschlagen (Youtube).
PPS: Japanisches Ringrätsel nach 10 Jahren gelöst!
Abt. Zahlen-Rätsel
==============
Es gibt Aufgaben, wo XProfans 8-Byte Double Precision Gleitkommaarithmetik an ihre Grenzen stößt. Beim folgenden Beispiel half nur, die Ergebniszahl aufzuspalten. Zahlen mit über 17 Stellen lassen sich eben nicht anders darstellen.
Gruss
Windowtitle "Ein Mathe-Rätsel":Cls:font 2
Print "\n WELCHE ZAHL WIRD DOPPELT SO GROSS, WENN MAN"
print "\n IHRE EINERSTELLE AN DIE ERSTE STELLE VORZIEHT?\n"
'Q: https://www.youtube.com/watch?v=1lHDCAIsyb8
'Brute force Ansätze ausprobiert: Hoffnungslos!
'Mit Hirn geht es aber, wie das obige Video beweist:
'
'Umgeformte Aufgabe: 2*(R*10 + a) = a*10^m + R
'bzw. R*20 - R = a*10^m - 2*a
'bzw. 19*R = a*(10^m-2)
'bzw. 19*{ganzzahliges R} = a*2*1/2*(10^m-2)
'bzw. 19*{ganzzahliges R} = a*2*(10^m*1/2-2*1/2)
'bzw. 19*{ganzzahliges R} = 2*a*(0.5*10^m - 1)
'bzw. {ganzzahliges R} = 2*a*(0.5*10^m - 1) / 19
'
'Damit dividiert durch 19 etwas ganzzahliges herauskommt, muss der
'Nenner 19 ein ganzzahliger Faktor des Zählers 2*a*(0.5*10^m-1) sein.
'Von 2 ist 19 kein Teiler, von a (da a einstellig) auch nicht. Und von 2 * a
'auch nicht, da das maximal 2 * 9 = 18 ergibt, und 18 mod 19 = 18, also ein Rest>0.
'
'Also muss es ein Teiler von 0.5*10^m - 1 sein. Das kann man folgendermaßen
'schreiben: "Der Rest von 0.5*10^m modulo 19 muss 1 sein." Also Staffelrechnung:
'm=1 ... 0.5*10^1 mod 19 = 5
'm=2 ... 0.5*10^2 mod 19 = 50 mod 19 = 12 -------v (Satz von Sun Zi, ca. 250 n.Chr.)
'm=3 ... 5*10^2 mod 19 = 500 mod 19 =(TRICK!!!)= 12*10 mod 19 = 6
'm=4 ... 5*10^3 mod 19 = 5000 mod 19 == 6*10 mod 19 = 60 mod 19 = 3
'...
'm zeigt dann die Anzahl der Stellen, die das "Mittelstück" R mindestens haben muss!
'Ergebnis:
Var m&=5:var n&=0
Whileloop 2,18:n&=&Loop 'mehr als 18 packt Doubleprecision float ohnehin nicht!
m&=(m&*10) mod 19
case m&=1:break
endwhile
print "\n Das mittlere Stück R ist mindestens ";n&;" Stellen lang."
print "\n Eingesetzt in die Gleichung für das ganzzahlige R = ";2*(10^n&-2)/19
print "\n Die Zahl dahinter oder davor lautet 2, weil es mit 1 noch nicht klappt!"
set("decimals",0)
print "\n 2";str$(2*(10^n&-2)/19);" = 2 x ";str$(2*(10^n&-2)/19);"2 (Probe: Ausprobieren!)"
print "\n Lösung lt. Video: 105263157894736842 (Bitte vergleichen!)"
waitinput
end
Alles anzeigen
Abt. Das wirklich allererste Elektronik-Spiel
================================
... war doch nicht ´Lunar Lander´ der Bell Laboratorien auf dem CRT (Cathode Ray Tube Monitor) einer Digital Equipment Corp. PDP-8e Maschine, sondern dem Vernehmen nach im Oktober 1958 ein halb analog, halb digitales Tennis-Spiel für 2 Personen auf einem Oszilloskop der U.S.-Atomforschungseinrichtung ´Brookhaven National Laboratory´.
Gelötet und programmiert wurde es von Physiker Dr. William Higinbotham. Hier der Link!
Gruss
Abt. Hamster-Rätsel
=============
Dein Hamster schläft als nachtaktives Tier tagsüber in einer von 5 durchnummerierten Schachteln. Nachts kommt er heraus, trinkt, turnt im Hamsterrad, frisst etwas vitaminreiche Nahrung und geht danach in einer NACHBAR-Schachtel schlafen.
Du willst tagsüber kontrollieren, ob er gesund ist. Das Öffnen von mehr als einer Schachtel würde den Hamster aber zu Tode erschrecken, er hält also nur einen Öffnungsversuch pro Tag aus.
Wie gehst Du vor, um ihn sicher zu erwischen?
P.S.: Lösungsvideo (Englisch)
PPS: Dort ist der Hamster eine Katze.
Abt. SINNERFASSENDES LESEN
=====================
Nicht nur bei Migranten, auch bei einheimischen Jugendlichen mit Pflichtschulabschluß liegt es mit dem LESEN KÖNNEN im argen: Bis zu 15 % bleiben gemäß neueren Tests quasi Analphabeten. Ein noch viel größerer Anteil tut sich mit der Erfassuung des Sinnes einer Meldung, also dem "Verstehen" im engeren Sinne, recht schwer.
Einer ORF-Teletextmeldung zufolge gibt es deshalb seit Juli 2017 die Rubrik "Nachrichten leicht verständlich".
Die wichtigsten Nachrichten des Tages sollen dabei in einfacher Sprache dargelegt, alle ungewöhnlichen Worte darin (z.B. "die Rolling Stones") erklärt werden. Die "Nachrichten leicht verständlich" werden von der Austria Presse Agentur geschrieben und sind eine Zusammenarbeit mit einem innovativen Grazer Privatunternehmen. Das Pilotprojekt wird vom Österreichischen Sozialministerium unterstützt.
Mir wird gerade klar, wohin die Zukunft läuft ...
Gruss
Autsch. Ich hoffe die blenden ein entsprechendes Emoji ein, damit man gesagt kriegt, ob das gute oder schlechte Nachrichten sind.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!