AGB  ·  Datenschutz  ·  Impressum  







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

was soll das übersetzt heißen?

Ein Thema von EMS · begonnen am 5. Jan 2013 · letzter Beitrag vom 6. Jan 2013
Antwort Antwort
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#1

was soll das übersetzt heißen?

  Alt 5. Jan 2013, 17:04
Hallo
Ich habe hier diesen Quelltext aber kann damit nix anfangen
kann mir den jemand erkläre?

Delphi-Quellcode:
s:='';
   for index:=1 to anz do
       begin
       farbe:=image1.canvas.pixels[index,0]; //showmessage(inttostr(farbe));

       b:=farbe and $ff; ch :=chr(b);
       s:=s+ch;

       b:=(farbe and $ff00) shr 8; ch :=chr(b);
       s:=s+ch;

       b:=(farbe and $ff0000) shr 16; ch :=chr(b);
       s:=s+ch;
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: was soll das übersetzt heißen?

  Alt 5. Jan 2013, 17:12
Es handelt sich hier wohl um eine 24 Bit Bitmap. Das macht 3 Byte. Hier wird der Wert jedes der Bytes ermittelt in dem man es mit $FF Wert AND rechnet.

Ein 3 Byte Beispiel

Delphi-Quellcode:
00101001 10011011 01001010
00000000 11111111 00000000 AND
--------------------------
00000000 10011011 00000000 Ergebnis
In der ersten Zeile ist ein 3 Byte Wert (24 Bite). Dadurch, dass hier nur das zweite Byte mit $FF (oder 11111111) und AND gerechnet wird, bekonnt man nur das Ergebnis des zweiten Bytes zurück. Denn 1 and 1 ergeben 1. Und 1 and 0 ergeben 0. Da also das erste und dritte Byte mit $00 gerechnet werden, ist da das Ergebnis immer $00.

//Edit:

Ach so, und SHR verschiebt den Wert um die Anzahl Bites nach Rechts. Hast du also 10101010 00000000 SHR 6, wird alles um 6 nach rechts verschoben 00000010 10101000.

Geändert von Popov ( 5. Jan 2013 um 17:20 Uhr)
  Mit Zitat antworten Zitat
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#3

AW: was soll das übersetzt heißen?

  Alt 5. Jan 2013, 18:36
ja das habe ich soweit verstanden aber ich verstehe nicht was das s:=s+ch
bzw. ch :=chr(b);macht und dann noch dreimal hintereinander?
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: was soll das übersetzt heißen?

  Alt 5. Jan 2013, 18:45
Wenn du einen Code hast den du verstehst, bis auf eine Sache, dann schreib das auch so hin und nicht "Ich habe hier diesen Quelltext aber kann damit nix anfangen". Vorher soll einer aus dem Satz erkennen was du weißt und was nicht.

Ein Tipp: guck in der OH, experimentiere ein wenig, dann verstehst du den Rest auch.
  Mit Zitat antworten Zitat
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#5

AW: was soll das übersetzt heißen?

  Alt 5. Jan 2013, 18:49
das programm geht ja nicht richtig, deshalb würde ich es gerne mal verstehen
und dann selber nachbauen schritt für schritt aber ich weiß nicht was es jetzt da in diesen Zeilen tut mit den werten
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: was soll das übersetzt heißen?

  Alt 5. Jan 2013, 19:00
Dann stelle ich die richtigen Fragen:

- was macht CHR?
- was macht $00FF0 SHR 8? Was macht $FF0000 SHR 16?
- was passiert wenn man Word zu Byte konvertiert?
- was liefert Char := Chr(Byte);
- was passiert wenn man String := String + Char zusammenfügt?
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:57 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 by Thomas Breitkreuz