Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Alten Code von Delphi 5 benutzen (https://www.delphipraxis.net/195583-alten-code-von-delphi-5-benutzen.html)

hoika 12. Mär 2018 06:08

AW: Alten Code von Delphi 5 benutzen
 
Hallo,
ich denke ja, der Code soll funktionieren mit den geringsten Anpassungen,
und das wäre die Lösung von HolgerX

String -> AnsiString.

Bernhard Geyer 12. Mär 2018 07:26

AW: Alten Code von Delphi 5 benutzen
 
Zitat:

Zitat von p80286 (Beitrag 1395819)
Also ich habe da so meine Bedenken, das die ursprüngliche Version immer richtig funktioniert hat, da beim Verschlüsseln auch Werte unter x20 generiert werden könnten. Und je nach weiterer Verarbeitung könnte das unschöne Folgen zeitigen.

Solange du kein WinAPI-Funktionen verwendest stellst selbst $00 kein Problem dar.
Früher zu D1-Zeiten hatte ich mal auch String als Buffer für Datenübertragung im Einsatz. Und dort sind auch $00 vorgekommen.
Einzig wegen der 255-Zeicheneinschränkung habe ich irgendwann auf Byte-Stream gewechselt.

Aber *schön* ist was anderes.

p80286 12. Mär 2018 08:11

AW: Alten Code von Delphi 5 benutzen
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1395826)
Zitat:

Zitat von p80286 (Beitrag 1395819)
Also ich habe da so meine Bedenken, das die ursprüngliche Version immer richtig funktioniert hat, da beim Verschlüsseln auch Werte unter x20 generiert werden könnten. Und je nach weiterer Verarbeitung könnte das unschöne Folgen zeitigen.

Solange du kein WinAPI-Funktionen verwendest stellst selbst $00 kein Problem dar.
Früher zu D1-Zeiten hatte ich mal auch String als Buffer für Datenübertragung im Einsatz. Und dort sind auch $00 vorgekommen.
Einzig wegen der 255-Zeicheneinschränkung habe ich irgendwann auf Byte-Stream gewechselt.

Aber *schön* ist was anderes.

Da man (Du schon) selten weiß, wann das API zum Zuge kommt, sollte man auch die Finger davon lassen.
Hier liest man immer wieder, daß irgendjemand über
Delphi-Quellcode:
String
stolpert, und sich in irgendwelchen Kodierungen verheddert. Ebenso scheint die Adressierung von statischen und dynamischen Arrays in den Bereich des Voodoo zu gehören. Wenn dann noch Pointer ins Spiel kommen, wird es für viele Zauberlehrlinge richtig eng.
(hatte ich schon Records und Wortgrenzen erwähnt?)

Darum finde ich den Hinweis auf mögliche Untiefen auch heute noch sehr wichtig. Vor allem weil es genügend alten Kode gibt, an dem der eine oder andere verzweifelt.

Gruß
K-H

OlafSt 12. Mär 2018 08:24

AW: Alten Code von Delphi 5 benutzen
 
Würde ein
Delphi-Quellcode:
Ord(InString[I]) xor (StartKey shr 8);
nicht auch ganz ausgezeichnet funktionieren ?

KodeZwerg 12. Mär 2018 08:28

AW: Alten Code von Delphi 5 benutzen
 
Ich rate auch dazu, wenn es denn ein string objekt bleiben soll, wenigstens eine Base64 en-/decodierung hinzuzufügen damit es keine string inkompatibilät geben kann oder auf ein array (für encodierten string) umzusteigen.

himitsu 12. Mär 2018 08:48

AW: Alten Code von Delphi 5 benutzen
 
String wird/wurde eigentlich nur für sowas genommen, weil er so einfach zu verwalten ist.
Aber in aktuellen Delphis funktionieren auch Copy/Insert/Delete/usw. auch bei Byte-Arrays, einzig das CopyOnWrite wird man wohl nie reparieren, womit das weiterhin nur bei Strings funktioniert.

Uwe Raabe 12. Mär 2018 10:16

AW: Alten Code von Delphi 5 benutzen
 
Zitat:

Zitat von himitsu (Beitrag 1395832)
einzig das CopyOnWrite wird man wohl nie reparieren

Damit implizierst du, daß es kaputt ist. Es ist aber as designed (und das ist IMHO auch gut so - und nebenbei auch noch OT).

Dumpfbacke 13. Mär 2018 09:13

AW: Alten Code von Delphi 5 benutzen
 
Hallo Jungs,
danke für Eure Hilfe. Mit AnsiString hat es funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 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