Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Quelltext Verständnis Problem (https://www.delphipraxis.net/111158-quelltext-verstaendnis-problem.html)

tEhHoLLoW 30. Mär 2008 20:30


Quelltext Verständnis Problem
 
Ich hab von einem Freund ein Stück Quelltext für mein Programm bekommen aber er ist jetzt im Urlaub und kann es mir nicht wirklich erklären ich hoffe ihr könnt mir dabei helfen

Der 1. Teil Wandelt einen Text in Binär Zahlen um.

Delphi-Quellcode:
binCodeA:='';
        asc:= length(cop);

        for y:= 1 to asc do
        begin
                zahl:=ord(cop[y]);
                zahl2:=zahl;
                binCodeS:='';

                while zahl2>0 do
                begin
                        bin:=zahl2 mod 2;
                        zahl2:=zahl2 div 2;
                        binCS:=inttostr(bin);
                        binCodeS:=binCS+binCodeS;
                end;

                if length(binCodeS)<8 then
                begin
                        hlp:=8-length(binCodeS);

                        for x:= 1 to hlp do
                        begin
                                binCodeS:='0'+binCodeS;
                        end;

                end;

                binCodeA:=binCodeA+binCodeS;
        end;

Der 2. Teil wandelt die Binär Zahlen dann wieder zurück in Text.

Delphi-Quellcode:
        binCodeA:=code.Text;
        binDecodeS:='';
        binDecodeA:='';
        hlp:=length(binCodeA);
        count:=hlp div 8;

 

        for x:= 1 to count do
        begin
                binDS:='';

                for y:= 1 to 8 do
                begin
                        binDS:=binDS+binCodeA[1];
                        delete(binCodeA,1,1);
                end;
               
                for z:= 1 to 8 do
                begin
                        if copy(binDS,z,1)='1' then
                        begin
                                case z of
                                1: zahl3:=128;
                                2: zahl3:=64;
                                3: zahl3:=32;
                                4: zahl3:=16;
                                5: zahl3:=8;
                                6: zahl3:=4;
                                7: zahl3:=2;
                                8: zahl3:=1;
                                end;
                        end
                        else
                        begin
                                zahl3:=0;
                        end;

                        zahl4:=zahl3+zahl4;
                end;

                binDecodeS:=chr(zahl4);
                zahl4:=0;
                binDecodeA:=binDecodeA+BinDecodeS;
        end;

Die Quelltexte sind alle richtig und funktionieren auch perfekt in meinem Programm aber ich verstehe die einzelnen befehle nicht wirklich und hoffe ihr könnt mir ein paar Kommentare zu den einzelnen Zeilen schreiben damit ich den Quelltext auch verstehe den ich benutze.
Vorallem der 2. Teil mit dem copy und delete sind mir nicht so verständlich.

mkinzler 30. Mär 2008 20:32

Re: Quelltext Verständnis Problem
 
Welche Befehle verstehst du genau nicht

MrKnogge 30. Mär 2008 20:33

Re: Quelltext Verständnis Problem
 
Was genau verstehst du denn nicht ?
Hast du dir mal die Einträge in der OH zu den Befehlen angesehen ?

tEhHoLLoW 1. Apr 2008 19:50

Re: Quelltext Verständnis Problem
 
Ich konnte mich leider jetzt erst wieder melden. Ich verstehe die Zeilen mit dem delete und copy nicht wirklich.

Was wird da gelöscht und was kopiert? Und wo finde ich die OH ?

mkinzler 1. Apr 2008 19:54

Re: Quelltext Verständnis Problem
 
Es wird eigentlich nichts kopiert sondern eigentlich ein Teilstring extrahiert. Delete() löscht einen Teil einer Zeichenkette
Zitat:

Und wo finde ich die OH ?
Drück mal F1

tEhHoLLoW 1. Apr 2008 20:06

Re: Quelltext Verständnis Problem
 
Ich bin gerade nicht zuhause am PC, hier ist kein Delphi vorhanden. Ich erkläre das alles gerade theoretisch in meiner Facharbeit.

Was wird nun genau aus dem String gelöscht? Die 1 ? das würde aber ja kein Sinn machen.

Bei Copy wird also an jeder der 8 Stellen geguckt ob eine 1 vorhanden ist, ist diese nun vorhanden wird je nach dem an Welcher Stelle die zahl ist in der Case Anweisung die Zahl genommen und addiert.

Aber wäre dann dieser code nicht überflüssig ? Ich verstehe leider nicht den Sinn dahinter.

Delphi-Quellcode:
for y:= 1 to 8 do
begin
     binDS:=binDS+binCodeA[1];
     delete(binCodeA,1,1);
end;

mkinzler 1. Apr 2008 20:10

Re: Quelltext Verständnis Problem
 
Diese Schleife dreht einen String um. Es wird immer der erste Buchstaben hinten an den Zielstring angehängt und dann vom Quellstring entfernt. Man kann das natürlich auch anders machen.

tEhHoLLoW 1. Apr 2008 20:15

Re: Quelltext Verständnis Problem
 
Vielen Dank für die schnelle antwort.

tEhHoLLoW 1. Apr 2008 20:28

Re: Quelltext Verständnis Problem
 
Nagut was ich mich aber dennoch frage wieso wird der String nun umgedreht ?

Wenn der Binärcode nun 1000000 ist wäre es ja 128 aber wenn er ja vorher umgedreht ist, ist der code ja 00000001 und somit 1.

TBx 1. Apr 2008 22:00

Re: Quelltext Verständnis Problem
 
Zitat:

Zitat von mkinzler
Diese Schleife dreht einen String um.

Das ist schlicht falsch!

Zitat:

Zitat von mkinzler
Es wird immer der erste Buchstaben hinten an den Zielstring angehängt und dann vom Quellstring entfernt.

Korrekt.

Dies wird immer 8 mal gemacht, um ein volles Byte zu erhalten. Es sollen damit die einzelnen Bytes aus dem Editfeld zusammengestellt werden. Es fehlt in dem Code allerdings noch die wichtige Untersuchung, ob das Editfeld zu 1 und 0 enthält und ob die Anzahl der Zeichen ein Vielfaches von 8 ist.
Wird nicht der Binärcode von einem oder mehreren kompletten Byte in das Editfeld eingegeben, so läuft dieses auf einen Fehler.

my 2 cent

onlinekater


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr.
Seite 1 von 2  1 2      

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