Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   bestimmte Konstrukte gibt es in .Net nicht mehr->Alternative (https://www.delphipraxis.net/58374-bestimmte-konstrukte-gibt-es-net-nicht-mehr-alternative.html)

Alex_ITA01 6. Dez 2005 10:04


bestimmte Konstrukte gibt es in .Net nicht mehr->Alternat
 
Hallo erstmal,
ich habe nur eine kurze Frage. Stimmt es, dass es in Delphi 8 (bzw. 2005 .Net) folgende Funktionen bzw. Konstrukte nicht mehr gibt?

- Move
- packed record
- String

Wenn das stimmt, was für Alternativen gibt es dafür?
Ich hoffe ihr könnt mir da helfen...
MFG Alex

Alex_ITA01 6. Dez 2005 13:11

Re: bestimmte Konstrukte gibt es in .Net nicht mehr->Alte
 
Ich überlege mir nämlich, meine Anwendungen unter .Net zu compilieren (bzw. neu zu erstellen) aber wollte erst sichergehen, ob wirklich "alles" klappt.
Ich hoffe ihr könnt mir ein Rat geben, wie ihr die Sachen löst, bzw. was die Alternativen sind.

Danke schonmal im voraus,
MFG Alex

alzaimar 6. Dez 2005 13:21

Re: bestimmte Konstrukte gibt es in .Net nicht mehr->Alte
 
"unter .Net" mal eben neu kompilieren, wird nicht klappen. 'Packed Records' lassen sich durch 'Records' ersetzen, wie das unter .Net heisst, weiss ich nicht, aber 'Packed Records' gehen schon länger nicht richtig, sie sind sowieso überflüssig, das nicht mehr korrekt umgesetzt. Einen 'String' sollte es geben. 'Move' fällt weg, da es wohl keine Pointer mehr gibt(?).

Du musst schon Einiges anpassen und verändern, denke ich

Alex_ITA01 8. Dez 2005 08:27

Re: bestimmte Konstrukte gibt es in .Net nicht mehr->Alte
 
ich [pushe] jetzt einfach mal ;-)
Wisst ihr etwas von den Alternativen oder wie ich das "Problem" umgehen kann?
MFG Alex

maximov 8. Dez 2005 08:57

Re: bestimmte Konstrukte gibt es in .Net nicht mehr->Alte
 
Das problem sind deine erwartungen - und nicht .Net. Wirf sie über bord und probiers einfach aus, wie weit du kommst.

Phoenix 8. Dez 2005 09:57

Re: bestimmte Konstrukte gibt es in .Net nicht mehr->Alte
 
Die Fragestellung ist eher: WAS willst Du portieren? Einen Treiber kannst Du vergessen, aber die sind eh nicht in Delphi schreibbar, von daher wird das eher nicht der Fall sein.

Einen String gibt es auch in .NET. Allerdings nicht als reservierter Speicherbereich in dem irgendwo intern ein Array of Char liegt sondern als Objekt.

Move gibt es nicht mehr. In .NET arbeitest Du vollkommen Typsicher immer auf Objekten und nicht direkt im Speicher (macht die ganze Sache deutlich sicherer und einfacher zu handhaben).

Packed Records benutzt(e) man doch nur dazu, um einen Record kleiner zu machen, da dann die einzelnen Felder des Records nicht mehr ausgerichtet werden sondern direkt hintereinandergeklatscht werden. Das hat ausschliesslich was mit Optimierung zu tun bzw. mit gefährlicher Programmierung wenn man mit Pointern darauf rumspielt ;-)

Also: Ersatz für Packed Records: Entweder ein normaler Record oder ein Objekt mit dessen Eigenschaften.
Ersatz für String: Das String-Objekt.
Wenn Du mit move von einem String/record in einen anderen kopieren willst dann geht das ohne weiteres mit normalen Zuweisungen.

Von daher sollte das kein Problem sein.


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