Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   (Erledigt)[C++] "*cook++"?/des Verschlüsselung/vnc Passwort (https://www.delphipraxis.net/62765-erledigt-%5Bc-%5D-%2Acook-des-verschluesselung-vnc-passwort.html)

tommie-lie 10. Feb 2006 14:52

Re: (Erledigt)[C++] "*cook++"?/des Verschlüsselung
 
Zitat:

Zitat von chaosben
Danke danke ...

Soll das eine Aufforderung sein, daß wir endlich mit der Fachsimpelei aufhören sollen? :mrgreen:

Hm, deine Unit sieht sehr nach einer C-Übersetzung aus.
Beispelsweise schon in der ersten Funktion cpkey():
Delphi-Quellcode:
procedure cpkey(into : PLongWord);
var
  from, endp : PLongWord;
begin
  from:=@KnL;
  endp:=@KnL[31];
  while (Integer(from)<=Integer(endp)) do
  begin
    into^:=from^;
    Inc(into);
    Inc(from);
  end;
end;
Wäre es da nicht sinnvoller, etwas daraus zu schustern, was mehr nach Pascal aussieht und für Pascal-Puristen die Lesbarkeit etwas erhöht? Beispielsweise:
Delphi-Quellcode:
procedure cpkey(var into: array of LongWord);
// oder passender selbstdefinierter Array-Typ, ich habe
// mir die Unit nicht so genau angesehen um zu wissen,
// ob ein Array mit statischer Länger hier sinnvoller
// wäre als ein Open Array
var
  i: Integer;
begin
  for i := 0 to 31 do
    into[i] := KnL[i];
end;
Iss kürzer, spart Variablen auf'm Stack und liest sich einfach besser, wenn man C-Code nicht gewöhnt ist.
Wenn in C Pointer übergeben werden, in die die Funktion Werte schreibt, kann man das sehr oft mit einem einfachen var-Parameter nach Pascal übersetzen. Dadurch verwirrt man Leser nicht mit unnötiger Pointerarithmetik.
Ich habe mir die restlichen Funktionen nicht genauer angeschaut, aber auf den ersten Blick würde ich sagen, daß man viele Dinge auf ähnliche Art und Weise mehr pascalisifizieren könnte.
Außerdem ist mir bei deinen Arrays aufgefallen, daß das Array ByteBit aus Words besteht, obwohl die Werte nur Byte-Länge haben. Hat das einen Grund?

chaosben 13. Feb 2006 05:29

Re: (Erledigt)[C++] "*cook++"?/des Verschlüsselung
 
Na Holla die WaldFee ... da passt aber einer auf. Danke für die Tips.

Was die Pascalifizierung angeht: Ich hab mich bemüht eng an der Struktur der C-Datei zu bleiben, damit das Debuggen leichter fällt und eventuelle Änderungen leichter übernommen werden können. Ersteres hat sich schon bezahlt gemacht, denn wir mussten die Unit an 2 Rechnern debuggen. Der ein hatte die C-Datei geladen, der andere die Pascal-Unit. Daurch die gleiche Struktur konnten wir Zeile für Zeile durchgehen und den Fehler finden.

Was das Array angeht: Ja, an sich hast du Recht. Nur: wenn ich anfangen die Unit zu "tunen" kann sie ein anderer vielleicht nicht mehr so leicht verstehen, wenn er den C-Code daneben liegen hat... naja ... es läuft auf obiges hinaus. Natürlich kannst du dir die Unit passend und schöner machen und sie als Konkurrenz-Produkt posten. ;)

tommie-lie 13. Feb 2006 15:00

Re: (Erledigt)[C++] "*cook++"?/des Verschlüsselung
 
Zitat:

Zitat von chaosben
Ich hab mich bemüht eng an der Struktur der C-Datei zu bleiben, damit das Debuggen leichter fällt und eventuelle Änderungen leichter übernommen werden können.

Das sind zwei Argumente. Ich dachte der C-Code wäre bereits stable, sodaß er sich in absehbarer Zeit nicht mehr ändert. In dem Falle bräuchte man ihn natürlich auch nicht mehr großartig debuggen. Nun stellt sich für euer Vorgehen lediglich die Frage, ob paralleles Maintainen von Quellcode in zwei verschiedenen Sprachen sinnvoll ist, oder ob man sich nicht lieber auf eine Sprache beschränkt, den Krempel in 'ne DLL kompiliert und dann unabhängig jeder (unabhängig von der Sprache) die Funktionen daraus aufrufen und benutzen kann.
Ich kenne Übersetzungen halt nur als Mittel, um etwas für Leser beider Weltanschau^WSprachen zugänglich zu machen, nicht um zweimal möglichst identischen Quellcode zu maintainen ;-)

Zitat:

Zitat von chaosben
Natürlich kannst du dir die Unit passend und schöner machen und sie als Konkurrenz-Produkt posten. ;)

Hihi, ne, so viel Langeweile habe ich dann auch wieder nicht :mrgreen:

chaosben 27. Aug 2008 05:35

Re: (Erledigt)[C++] "*cook++"?/des Verschlüsselung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier noch mal eine gefixte Version.


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

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