AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Alle Jahre (Monate) wieder... Zukunft von Delphi

Alle Jahre (Monate) wieder... Zukunft von Delphi

Ein Thema von Kathmai · begonnen am 4. Jan 2014 · letzter Beitrag vom 10. Jan 2014
Antwort Antwort
Seite 1 von 2  1 2   
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 06:24
Ganz ehrlich? Ich finde es generell ein no-go, wenn Datentypen in der Entwicklung einer Sprache ihren Aufbau ändern. Wieso hat man das bei 'Real' denn nicht auch gemacht? Nee, da wurde aus purem Zufall (FPU) der Datentyp Single,Double und Extended eingeführt (Gott-Sei-Dank). Und Boolean wurde auch so gelassen, stattdessen gibt es dann WordBool, LongBool.

Wieso war man bei Integer und String so dämlich? Na, Delphi eben. Und jetzt soll mir bloß keiner kommen, das das so sein musste. Musste es nicht. Es gibt für alles eine Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.056 Beiträge
 
Delphi 12 Athens
 
#2

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 07:09
Ganz ehrlich? Ich finde es generell ein no-go, wenn Datentypen in der Entwicklung einer Sprache ihren Aufbau ändern.
Dafür sind es per Definition Metadatentypen, die per Definition keinen festen Aufbau haben.
Wenn man das braucht, gibt es ja entsprechend die Datentypen, deren Aufbau fest definiert ist.

Da das in der Liste der Datentypen auch eindeutig so definiert ist, hätte es damit eigentlich keine Probleme geben sollen. Das war selbst mir ziemlich am Anfang klar als ich mit Delphi angefangen habe. Ich habe zwar einiges falsch oder ungünstig gemacht und habe mich bei API Aufrufen etwas dumm angestellt (kann man in meinen ersten Posts von vor 10 Jahren vielleicht auch noch sehen ), aber das stand in der Hilfe und war damit auch klar.

Bei Ansi <--> Unicode hatte ich daher in meinen privaten Projekten so gut wie keinen Umstellungsaufwand. Nur bei Integer, wo die Vorgehensweise eben nicht der Dokumentation entsprach, musste ich Anpassungen machen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 07:13
Wieso hat man das bei 'Real' denn nicht auch gemacht?
Hat man doch! Heute ist Real äquivalent zu Single, aber ursprünglich hatte Real ein anderes Format. Dieses kann man auch heute noch explizit verwenden, in Form von Real48. Aber weil es auf modernen Prozessoren langsam ist (würde mich nicht wundern, wenn es emuliert werden muss), ist es nicht mehr der Standard-Alias für Real.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 07:53
Hallo,

nur mal aus Neugier, da ich noch nicht so lange dabei bin, das ich mal ein altes Projekt hätte umstellen müssen, bzw. das eine was ich von D6 auf D2010 umgestellt habe hat kaum Probleme gemacht:

Wo liegt denn das Problem bei den Strings oder Integern? Bzw. wann hätte man Probleme damit bekommen? Wenn man mit Pointern arbeitet oder so?

Delphi-Quellcode:
var s:String;
begin
  s:='blub';
  showmessage(s);
end;
wird ja wohl kaum Probleme machen.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#5

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 08:31
Wo liegt denn das Problem bei den Strings oder Integern?
http://docwiki.embarcadero.com/RADSt...icode_anpassen
Zitat:
Suchen Sie nach Quelltext, der:

davon ausgeht, dass SizeOf(Char) 1 ist.
davon ausgeht, dass die Länge (Length) eines Strings gleich der Byte-Anzahl in dem String ist.
Strings oder PChars direkt manipuliert.
Strings in oder aus einem persistenten Speicher liest oder schreibt.

Die beiden ersten Annahmen sind für Unicode nicht zutreffend, weil bei Unicode SizeOf(Char) größer als 1 Byte sein kann, und die Länge (Length) eines Strings doppelt so groß ist wie die Anzahl der Bytes. Darüber hinaus muss Code, der in einen persistenten Speicher schreibt oder daraus liest, gewährleisten, dass die korrekte Anzahl von Bytes geschrieben oder gelesen wird, da ein Zeichen evtl. nicht mehr durch ein einzelnes Byte repräsentiert werden kann.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.165 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 09:07
Delphi-Quellcode:
var s:String;
begin
  s:='blub';
  showmessage(s);
end;
wird ja wohl kaum Probleme machen.
Ne aber ein

Delphi-Quellcode:
var
  S : Array [0..255] of Char;
  Name : Shortstring;
begin
  Name := 'Meine Mainformtitle'+#0;
  Move(Name[1],S[0],length(Name));
 ...
end;
schon...
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.261 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 09:29
Also ohne alles hier durchzulesen:

viele viele haben noch URALT Versionen aus Borlandzeiten!!!!!!!

Da ich nun auch Komponenten vermarkte ist mir das sehr aufgefallen:

Gestern habe ich erst wieder schreiben müssen, das ich Delphi 3 nicht unterstützte Ich schaue ja immer mal mir die Homepage von Kunden an. Hier stand zu lesen hochmoderne RAD Entwicklungsumgebung, da konnte ich mir das grinsen nicht verkneifen!

50% der Käufer benutzt Delphi 5
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 10:07
Zitat:
Delphi-Quellcode:
var
  S : Array [0..255] of Char;
  Name : Shortstring;
begin
  Name := 'Meine Mainformtitle'+#0;
  Move(Name[1],S[0],length(Name));
 ...
end;
Klingt jetzt bestimmt ketzerisch ist aber echt nicht böse gemeint. Warum macht man sowas?
Ich hab ähnliches schon benutzt um Buffer oder variable Records oder sowas, die man von API-Funktionen zurückkriegt auszulesen, aber sonst?
Wie gesgagt echt nicht böse gemeint.

Und ist das bei den Integern genauso? Also das es letztlich damit zu tun hat wie die gespeichert werden?
Ralph
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 10:13
Das Problem beim Integer ist anders gelagert. Er war eigentlich ein "wachsender" Typ; also ein Typ, der sich an die Plattform anpasst ( 16-Bit-Exe: 16Bit; 32-Bit-Exe: 32Bit) Für diesen Zweck haben ihn Viele verwendet. Mit Einführung des 64-Bit Compilers wurde der Typ aber auf 32Bit festgeschrieben und ein neuer virtueller Typ NativeInt eingeführt, der wächst. Alle die sich darauf verlassen haben, das ein Integer immer die Breite der Plattform hat, mussten dann ihren Code ändern.
Markus Kinzler
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#10

AW: Alle Jahre (Monate) wieder... Zukunft von Delphi

  Alt 9. Jan 2014, 13:02
Das Problem beim Integer ist anders gelagert. Er war eigentlich ein "wachsender" Typ; also ein Typ, der sich an die Plattform anpasst ( 16-Bit-Exe: 16Bit; 32-Bit-Exe: 32Bit) Für diesen Zweck haben ihn Viele verwendet. Mit Einführung des 64-Bit Compilers wurde der Typ aber auf 32Bit festgeschrieben und ein neuer virtueller Typ NativeInt eingeführt, der wächst. Alle die sich darauf verlassen haben, das ein Integer immer die Breite der Plattform hat, mussten dann ihren Code ändern.
Ist es mit Cardinal nicht genauso?

Ich kann mich erinnern, das früher schon moniert zu haben, daß eine festgelegte - scheinbar für alle Ewigkeiten gültige - Marschrichtung schon beim nächsten Wechsel der Bitanzahl wieder fallengelassen wurde.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:37 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-2025 by Thomas Breitkreuz