AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String To Byte ...

Ein Thema von cherry · begonnen am 29. Feb 2008 · letzter Beitrag vom 29. Feb 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: String To Byte ...

  Alt 29. Feb 2008, 13:15
Das war aber nicht die Frage
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: String To Byte ...

  Alt 29. Feb 2008, 13:26
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.
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#13

Re: String To Byte ...

  Alt 29. Feb 2008, 13:36
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:
DeddyH hat folgendes geschrieben:
Das ist ein Typecast auf Byte, damit aus 'A' 65 wird.

Anstelle des Typecasts kann man übrigens auch die Funktion Ord nutzen, was s-off macht.
Er verwendet aber beides?! :

Delphi-Quellcode:
For i := SizeOf(_Chr) * 8 - 1 Downto 0 Do
      Result := Format('%s%d', [Result, Byte((Ord(_Chr) And (1 Shl i)) <> 0)]);
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#14

Re: String To Byte ...

  Alt 29. Feb 2008, 13:46
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;
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.490 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: String To Byte ...

  Alt 29. Feb 2008, 13:58
Zitat:
Union shiftet in die falsche Richtung
Das kommt davon wenn man posted ohne vorher zu testenm sorry. Und die Optimierung mit and gefällt mir auch...
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#16

Re: String To Byte ...

  Alt 29. Feb 2008, 14:08
ok also mit "and" gehts nun...
und ich glaub ich kappiers sogar...


Und kann mir trotzdem noch mal jmd diese Vprgehensweise erklären?
Result := Format('%s%d', [Result, Byte((Ord(_Chr) And (1 Shl i)) <> 0)]);
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.490 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: String To Byte ...

  Alt 29. Feb 2008, 14:20
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:
        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)]);
Alternativ:
result := result+inttostr(integer((Ord(_Chr) And (1 Shl i)) <> 0))
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#18

Re: String To Byte ...

  Alt 29. Feb 2008, 15:08
Ok, ich kappiers ungefähr. Vielen Dank euch allen...

schönes Wochenende euch freaks
8)
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz