![]() |
Re: String To Byte ...
Das war aber nicht die Frage :)
|
Re: String To Byte ...
Er hat "Byte()" nicht verstanden und daraufhin erwähne ich eine Funktion, die das gleiche macht und die er evtl kennt.
Aber nun zurück zum Thema. |
Re: String To Byte ...
Ich hab soeben beide Funktionen getestet:
Also die Funktion von "Union" versteh ich zwar einigermassen, funktioniert aber leider nicht wirklich... respektive ich erhalte bei fast allen Zeichen die ich umwandle "0111111"... Die Funktion von "s-off" scheint zu funktionieren. Da habe ich aber mühe beim verstehen. Kann mir die jmd auskommentieren? wäre echt toll.. Ich will keinen Code verwenden den ich nicht verstehe! und Zitat:
Delphi-Quellcode:
For i := SizeOf(_Chr) * 8 - 1 Downto 0 Do
Result := Format('%s%d', [Result, Byte((Ord(_Chr) And (1 Shl i)) <> 0)]); |
Re: String To Byte ...
Union shiftet in die falsche Richtung. Bei einem Byte mit 8 Bits ist schlecht mit um 7 Bits nach links zu shiften, die fallen dann gleich mal weg...
Und um den Prozessor nicht unnötig hin- und hershiften zu lassen, nur damit ein paar Bits überfallen, kann man auch gleich maskieren für das letzte Bit:
Delphi-Quellcode:
function CharToBin(AChar : char): string;
var i: Integer; begin SetLength(result, 8); for i := 1 to 8 do begin if (Byte(AChar) shr (8-i)) and 1 = 0 then result[i] := '0' else result[i] := '1'; end; end; |
Re: String To Byte ...
Zitat:
|
Re: String To Byte ...
ok also mit "and" gehts nun...
und ich glaub ich kappiers sogar... :stupid: Und kann mir trotzdem noch mal jmd diese Vprgehensweise erklären?
Delphi-Quellcode:
Result := Format('%s%d', [Result, Byte((Ord(_Chr) And (1 Shl i)) <> 0)]);
|
Re: String To Byte ...
Das ist vom Prinzip das Selbe, nur langsamer ;)
Es wird immer eine "0" oder eine "1" abhängig vom Ergebnis an das result angehängt.
Delphi-Quellcode:
Alternativ:
Platzhalter für result %s - string
| Platzhalter für Byte... Ausdruck %d - integer | | Array der Werte, mit denen die Platzhalter gefüllt werden sollen | | | Format('%s%d', [Result, Byte((Ord(_Chr) And (1 Shl i)) <> 0)]);
Delphi-Quellcode:
result := result+inttostr(integer((Ord(_Chr) And (1 Shl i)) <> 0))
|
Re: String To Byte ...
Ok, ich kappiers ungefähr. Vielen Dank euch allen...
schönes Wochenende euch freaks 8) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz