Zeigt die verbleibende Akkuladung als Prozentsatz der maximalen Ladung an
Denken Sie daran, wenn Sie Ihren Code nicht auf einem Telefon, Taschenrechner usw. ausführen können, können Sie Ihre Umgebung wahrscheinlich zumindest auf einem Laptop installieren. Wenn Sie mit einem Gerät mit Akku absolut nicht arbeiten können, ist Ihre Sprache leider nicht geeignet, da Sie keinen sinnvollen Wert zum Drucken haben.
Sie müssen die Ergebnisse auf dem Bildschirm anzeigen. Dies soll theoretisch ein nützliches Hilfsmittel für den Benutzer sein, um die Batterie zu überprüfen. Das Schreiben des Batterieprozentsatzes in eine Datei ist zu umständlich, sodass der Benutzer die Datei überprüfen muss. Die Anzeige auf dem Bildschirm ist daher Teil der Spezifikation, die von Standard-E / A nicht überschrieben werden kann. Sie können jedoch davon ausgehen, dass nichts die normale Anzeige von STDOUT auf dem Bildschirm verhindert.
Wenn der Akku-Prozentsatz vom Betriebssystem bereits die ganze Zeit auf dem Bildschirm angezeigt wird, wie dies bei vielen Telefonen der Fall ist, bedeutet dies nicht, dass Sie eine Null-Byte-Lösung haben. Sie müssen davon ausgehen, dass das eingebaute Display nicht vorhanden ist, und den Akkuprozentsatz an einer anderen Stelle erneut anzeigen.
Bearbeiten: Das Ausgabeformat wird geöffnet. Es steht Ihnen frei, nur die Ziffern des Prozentsatzes oder die Ziffern mit einer zusätzlichen Ausgabe anzuzeigen.
Edit2: Die Stellen, die den Prozentsatz darstellen, müssen an einer bekannten Stelle in der Ausgabe erscheinen, nicht mehr als 50 Zeilen vom Ende der Ausgabe entfernt, und diese Stelle sollte sich zwischen den Aufrufen nicht ändern. Die Stellen, die den Prozentsatz darstellen, müssen auf jeder Seite durch mindestens ein nicht-stelliges Zeichen von der anderen Ausgabe getrennt sein.
Als Referenz dient hier das alte Ausgabeformat von vor der Änderung:
Remaining battery is ddd%
oder
Remaining battery is ddd percent
Antworten:
Bash,
706750464316 BytesAusgänge:
<battery 0-100>: command not found
Liest die Datei
/sys/class/power_supply/BAT1/capacity
.Getestet mit Ubuntu 18.04 auf einem LENOVO-Ideapad 500.
Dauert eine Weile (da das gesamte Dateisystem durchsucht wird) - spart aber ein Byte!
Alte Antwort:
quelle
/so/apes/yadayada/Brunch/calamity
.echo {0.100}
JavaScript (Browser),
787750 Bytes(-1 Byte dank Benoit Esnard )
(-27 Bytes, da das Ausgabeformat jetzt flexibel ist)
JavaScript (Browser), 46 Bytes, durch Rückgabe eines Versprechens
(Vorgeschlagen von Shaggy , erfordert Kopf- und Fußzeile)
Hinweis: Funktioniert nur mit Google Chrome> = 38 (Desktop und Android) oder jedem anderen Browser, der Battery API unterstützt . FireFox hat diese API aus Datenschutzgründen entfernt.
Beispiel für Android (altes Ausgabeformat):
Beispiel auf einem Windows-Laptop (altes Ausgabeformat):
quelle
`Remaining battery is ${b.level*100}%`
PowerShell , 28 Byte
-26 (!) Dank AdmBorkBork. Vorherige Version -3 dank colsw.
gwmi
Kurzform fürGet-WmiObject
|%
Nimmt das Mustere*g
und findet die einzig passende Eigenschaft.estimatedChargeRemaining
quelle
((gwmi win32_battery)|% e*g)
.Remaining battery is 98 96%
"abc"+(def)+"ghi"
zu"abc$(def)ghi"
, um weitere zu speichern.Bash + acpi,
434 BytesNeue Regeln
Ausgabe auf Formular
Sie sind sich nicht sicher, ob die Regeländerung die Sache interessanter macht. Können Sie keinen Text ausgeben, der alle Zeichenfolgen von 0 bis 100 enthält, die eine gültige Ausgabe wären? Scheint die ursprüngliche Absicht zu verlieren, wenn dies der Fall ist.
Alte Regeln
Ausgabe auf Formular
Fragen Sie mich nicht, warum das Set so funktioniert, aber es funktioniert.
quelle
acpi
ist anscheinend nicht auf dem Mac verfügbar .Python 3.6 +
psutil
, 80 BytesProbieren Sie es online!
Wenn das Gerät keine Batterie hat (wie bei TIO), wird das Programm einen Fehler auslösen, da
psutil.sensors_battery()
zurückkehrtNone
.Dies erfordert Python 3.6 für die String-Interpolation .
quelle
C (win32, gcci686-w64-mingw32), 78 Bytes
Missbrauch der win32-API, indem
GetSystemPowerStatus()
"irgendwo" auf den Stack geschrieben wird, das interessante Mitglied befindet sich lautSYSTEM_POWER_STATUS
Struktur im dritten Byte .Leider
#include
scheint das nötig zu sein, wahrscheinlich wegen Aufrufkonventionen.Beispielausgabe:
Wird
255
auf Systemen ohne Batterie angezeigt.quelle
kernel32.dll
. Das ist, warum ich denke, dass es die aufrufende Konvention ist, verwenden Win32-API-Funktionen nicht den "Standard"cdecl
. Selbst wenn ich den Linker irgendwie austricksen könnte, würde der Code wahrscheinlich sowieso nicht funktionieren./Gz
(Standardeinstellung__stdcall
) zu kompilieren ?printf()
ohne einen Prototyp brechen ?-mrtd
, aber ich weiß nicht, was passieren würdeprintf()
; Vielleicht gibt es ein kürzeres Include dafür?Excel VBA, 150 Byte
Beschränkung auf 32-Bit-Windows-Installationen von Office, da der Windows-Kernel32-Aufruf nicht 64-Bit-Zeigersicher ist.
Ausgabe in die Zelle
A1
im ActiveSheet.-26 Bytes dank flexibler Ausgabe
-7 Bytes Dank an @Neil für die Verwendung eines Int anstelle von 2 Bytes
quelle
Declare PtrSafe Sub GetSystemPowerStatus Lib"kernel32"(f As t)
_SYSTEM_POWER_STATUS
Struktur zu , der sowohl Byte- als auch Dword-Werte enthält, was bedeutet, dass in diesem Fall die Struktur aus vba emuliert werden muss und ein Byte-Array nicht verwendet werden kann .QPython für Android , 133 Byte
Dies
+"%"
ist nicht unbedingt erforderlich, da das neuere, flexiblere Ausgabeformat sowieso verwendet wird, aber es sorgt für eine etwas schönere Ausgabe bei nur +4 Bytes.quelle
d.notify
(Benachrichtigung erstellen) wäre viel kürzer gewesen als das Erstellen und Anzeigen des Dialogfelds, aber aus irgendeinem Grund funktioniert es zumindest auf meinem Gerät nicht (möglicherweise wurde es nicht für neuere Android-APIs aktualisiert).]Emacs Lisp, 9 Bytes
Zeigt die aktuelle Batteriestatus in Mini-Puffer am Boden (oder an stdout bei der Verwendung
--batch
) im Format wie zum Beispiel:Power N/A, battery Unknown (99.1% load, remaining time N/A)
.Sollte unter Windows, OSX, BSD und Linux funktionieren.
quelle
Japt , 60 Bytes
Probier es aus
quelle
Java, 546 Byte (Windows XP oder höher)
Das Hilfsprogramm powercfg kam für Windows XP ins Spiel. Ich habe keine Ahnung, welche Hilfsprogramme zuvor verfügbar waren. Ich muss auch als Administrator ausgeführt werden. Das ist gottesfürchtig und ich habe keinen extremen Golfversuch gemacht ...
Formatiert / kommentiert ...
Ehrlich gesagt war ich mehr daran interessiert zu sehen, ob es überhaupt in Java möglich war.
quelle
{Runtime.getRuntime().exec("powercfg energy").waitFor();x=new XMLSlurper(new File("C:\\windows\\system32\\energy-report.html"));x.html.table.tr[#].span[0] as int/x.html.table.tr[#].span[0] as int}