AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ZeroBasedStrings - wie nun am besten?

Ein Thema von Shaun · begonnen am 3. Mär 2021 · letzter Beitrag vom 3. Mär 2021
Antwort Antwort
Shaun

Registriert seit: 27. Feb 2021
Ort: Dortmund
5 Beiträge
 
Delphi XE7 Professional
 
#1

ZeroBasedStrings - wie nun am besten?

  Alt 3. Mär 2021, 20:52
Delphi-Version: 10.3 Rio
Hallo Dres Delphi,
ich hatte eigentlich seit einiger Zeit versucht, mich zwecks Vereinheitlichung innerlich auf Null-basierte Strings einzustellen und immer mit $ZeroBasedStrings ON zu programmieren.
Ist das jetzt noch sinnvoll?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.747 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: ZeroBasedStrings - wie nun am besten?

  Alt 3. Mär 2021, 21:03
Seit vielen Jahren ist es völlig egal ob die darunter liegende Plattform nun bei 0 oder 1 anfängt wenn man denn den StringHelper nutzt: myString.Chars[0] gibt das erste Zeichen des Strings, egal ob Windows, iOS oder sonstwas.

Doku:
http://docwiki.embarcadero.com/Libra...ngHelper.Chars
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.743 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ZeroBasedStrings - wie nun am besten?

  Alt 3. Mär 2021, 22:02
Also "sinnvoll" ist es jetzt erstmal, dass alle Platformen nun gleich sind (seit 10.4.1 oder war's 2).

Windows so und Android anders ... da war es ein unnötiger Krampf X-Platform-Code schreiben zu wollen.
(auch wenn das hier ein Klacks war, gegenüber ARC und NichtARC)


Die 1 ist es natürlich, da der erste String mit 1 begann. (heißt jetzt ShortString)
OK, eigentlich begann er mit 0, aber auf Index 0 wurde das Längenbyte geschrieben.



Aus Gewohnheit bleibe ich aber bei 1, denn dann hab ich mit Fremdcode bei mit keine Probleme,
oder wenn ich mal in fremde Projekte schaue, denn meißtens ist es 1 und so muß man nicht aufpassen, dass man hier oder da dann das Richtige macht.


Aber ja, realistisch wäre 0 bestimmt besser, da es ein paar CPU-Takte spart, wenn der Compiler den Index nicht intern auf 0 runterrechnen muß, da das erste Char wirklich bei Addresse 0 gespeichert ist.
Und mit Blick auf andere Programmiersprachen wäre es auch nett, wenn dein Code genauso rechnet, wie viele Andere.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 3. Mär 2021 um 22:08 Uhr)
  Mit Zitat antworten Zitat
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 00:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf