Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung VB for Applications

GELÖST

VBScript - RShift LShift, bitweise Operatoren

Mitglied: jutzin

jutzin (Level 1) - Jetzt verbinden

20.06.2009, aktualisiert 16:38 Uhr, 6502 Aufrufe, 2 Kommentare

Hat jemand einen Schnipsel der RShift(Operand, n bits) und/oder LShift(Operand, n bits) für VBScript implementiert?

Ich nutze ein VBScript, das mittels der ID3Tag.dll Tags von mp3-Dateien ausliest. Die Tags sind offensichtlich UTF-8 kodiert; es entstehen dadurch die typischen Sonderzeichen-Fehlinterpretationen in CP 1252 (z.B. "Ã?" statt "ß" oder "ô" statt "ô"). Das liegt daran, dass Die mehrstelligen UTF-8 Codes als einstellige Hex-Codes interpretiert werden; so ist der UTF-8 Code für "ô" == "C3 B4", dieser wird dann als zwei einstellige Hex-Codes, nämlich "C3" == "Ã" und "B4" == "´" interpretiert.

Bei den Zeichen bis ASCII(127) sind UTF-8 Codierung und Hex(ASCII-Wert) identisch (z.B. ASCII(126) == "~" == Hex "7E" == UTF-8 "7E"), weil einstellig. Bei Zeichen, die mehr als 7 bit lang sind, unterscheiden sich aber die UTF-8 von den Hex-Codes, also kommt es zu dem komischen Kauderwelsch. Es kursieren eine Menge Codeschnipsel, viele davon, um das URL %-Encoding (ohne Server-Objekt) zu realisieren, die man benutzen kann; man kann auch prima die Escape()-Function benutzen, aber leider funktionieren diese Lösungen alle nur bis 8 bit Länge bzw. bis ASCII(255), also dem Ende der Unicode-Tabelle. Kyrillische, arabische, japanische etc. Schriftzeichen haben 3-stellige UTF-8 Codes und werden falsch dargestellt (z.B. wird das japanische Schriftzeichen "?" (sprich: nô) == Hex "306E" == UTF-8 "E3 81 AE" == ASCII(12398) als "の" dargestellt, da dies die ASCII-Darstellung von Hex "E3 81 AE" ist.

Soweit so schlecht. Ich habe also nach einem verlässlichen Algorithmus zum Umwandeln der Zeichen -- jenseits von ASCII(255) -- gesucht und bin auch fündig geworden (am coolsten, weil er wirklich in allen Fällen funktioniert und außerdem zwischen allen möglichen Codierungen hin- und her übersetzen kann ist der von Richard Ishida (JavaScript). Leider beinhalten die Algorithmen, die ich gefunden habe, alle Bitshift-Operationen. Langer Rede kurzer Sinn: Hat jemand sowas -- also Bitshift -- schonmal in VBScript implementiert?

Viele Grüße

jutzin
Mitglied: bastla
20.06.2009 um 18:12 Uhr
Hallo jutzin!

Sollte sich (rotierend) etwa so machen lassen:
01.
'Demo 
02.
X = 8'BitAnzahl 
03.
S = 4'Stellen 
04.
A = 199 
05.
B = RShift(A, S , X) 
06.
C = LShift(B, S , X) 
07.
WScript.Echo A, B, C 
08.
WScript.Echo "um " & S & ":", Dec2Bin(A, X), Dec2Bin(B, X), Dec2Bin(C, X) 
09.
WScript.Echo 
10.
 
11.
X = 16 
12.
S = 5 
13.
A = 65472 
14.
B = RShift(A, S, X) 
15.
C = LShift(B, S, X) 
16.
WScript.Echo A, B, C 
17.
WScript.Echo "um " & S & ":", Dec2Bin(A, X), Dec2Bin(B, X), Dec2Bin(C, X) 
18.
WScript.Echo 
19.
 
20.
X = 24 
21.
S = 3 
22.
A = 16777203 
23.
B = RShift(A, S, X) 
24.
C = LShift(B, S, X) 
25.
WScript.Echo A, B, C 
26.
WScript.Echo "um " & S & ":", Dec2Bin(A, X), Dec2Bin(B, X), Dec2Bin(C, X) 
27.
 
28.
Function RShift(Wert, Stellen, BitAnzahl) 
29.
Temp = Wert 
30.
For i = 1 To Stellen 
31.
    Temp = Int(Temp / 2) + 2 ^ (BitAnzahl - 1) * (Temp Mod 2) 
32.
Next 
33.
RShift = Temp 
34.
End Function 
35.
 
36.
Function LShift(Wert, Stellen, BitAnzahl) 
37.
Temp = Wert 
38.
For i = 1 To Stellen 
39.
    Temp = Temp * 2 + Int(Temp / 2 ^(BitAnzahl - 1)) 
40.
    If Temp >= 2 ^ BitAnzahl Then Temp = Temp - 2 ^ BitAnzahl 
41.
Next 
42.
LShift = Temp 
43.
End Function 
44.
 
45.
Function Dec2Bin(Wert, BitAnzahl) 
46.
Bin = "" 
47.
For i = BitAnzahl - 1 To 0 Step -1 
48.
    Bit = Int(Wert / 2 ^ i) 
49.
    Wert = Wert - Bit * 2 ^ i 
50.
    Bin = Bin & Bit 
51.
Next 
52.
Dec2Bin = Bin 
53.
End Function 
54.
 
55.
Function Bin2Dec(Wert) 
56.
Dec = 0 
57.
Bits = Len(Wert) 
58.
For i = 1 To Bits 
59.
    Dec = Dec + 2 ^ (Bits - i) * Mid(Wert, i, 1) 
60.
Next 
61.
Bin2Dec = Dec 
62.
End Function
Grüße
bastla
Bitte warten ..
Mitglied: jutzin
20.06.2009 um 21:25 Uhr
oh mann, diese forum ist echt das beste. da postet man was, geht zwei stündchen ins theater, kommt zurück und setzt seinen beitrag auf "gelöst". besten dank!

jutzin
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Variable mit einem Operator versehen
gelöst Frage von pixel0815Batch & Shell11 Kommentare

Moin, ich hab da ein Problem. Das Script funtioniert ansich wunderbar, aber der SamAccountName aus der DEST Domäne (trust ...

Ausbildung
Diverse Prüfungsfragen - von Powershell bis Boolsche Operatoren
gelöst Frage von TrullalaAusbildung2 Kommentare

Hallo, vorab, ich hoffe, den richtigen Bereich getroffen zu haben. Wenn nicht, lasse ich mich gerne eines besseren belehren ...

VB for Applications
VBScript und OR
gelöst Frage von InvisanVB for Applications5 Kommentare

Hi zusammen, derzeit bastel ich ein bisschen in VBScript rum. Leider habe ich mit dem OR Operator einige Probleme. ...

C und C++
Operator überladen, welcher Zugriff auf Member haben soll, die wiederum Objekte anderer Klassen sind
gelöst Frage von peterpaC und C++2 Kommentare

Hallo, die Überschrift sagt glaube ich schon bisschen was aus^^ Hier mal der Code: TPerson.cpp: TPerson.h: Bei "string name" ...

Neue Wissensbeiträge
Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 3 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 8 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement21 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...