AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

0-Based Strings ab XE4

Ein Thema von Bernhard Geyer · begonnen am 22. Apr 2013 · letzter Beitrag vom 23. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: 0-Based Strings ab XE4

  Alt 22. Apr 2013, 15:58
Ein Wizard müsste von Emba her der einen bei der Umstellung hilft.
Oder GExperts/CnPack nehmen sich der Sache an.

Unicode würde ich nicht als vergleich her nehmen. Hier hat man einen großen Mehrwert (jedenfalls würde uns ohne ein wichtiges Merkmal fehlen und großkunden uns nicht mehr nehmen).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.307 Beiträge
 
Delphi 12 Athens
 
#2

AW: 0-Based Strings ab XE4

  Alt 22. Apr 2013, 16:08
0-Basierte Strings gibt's z.Z. nur für iOS.

Im Win-Compiler bleibt es erst mal so. Wird aber früher oder später wohl angepasst werden.

Das heist: z.Z. müssen "nur" Unit's angepasst werden die du für IOS benötigst.

Wenn du diese für Win und IOS benötigst muss du entweder den Compilerswitch verwenden oder eine Logik einbauen.

Gilt übrigens nur für den Index-Basierten Zugriff. Copy, Insert etc. bleiben wohl 1-Basiert.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: 0-Based Strings ab XE4

  Alt 22. Apr 2013, 16:10
Das klingt irgendwie total nach halbfertig und nicht bis zum Ende durchdacht...
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: 0-Based Strings ab XE4

  Alt 22. Apr 2013, 16:11
Gilt übrigens nur für den Index-Basierten Zugriff. Copy, Insert etc. bleiben wohl 1-Basiert.
Die alten Funktionen bleiben 1-Basiert, die neuen Methoden an der String-Klasse sind 0-Basiert.
Siehe auch http://docwiki.embarcadero.com/RADSt...d_Desktop_Apps
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.307 Beiträge
 
Delphi 12 Athens
 
#5

AW: 0-Based Strings ab XE4

  Alt 22. Apr 2013, 16:30
Die alten Funktionen bleiben 1-Basiert, die neuen Methoden an der String-Klasse sind 0-Basiert.
Siehe auch http://docwiki.embarcadero.com/RADSt...d_Desktop_Apps
Stimmt. Die waren aber auch schon in XE3 0-Basiert. Ändert sich also nix.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.682 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: 0-Based Strings ab XE4

  Alt 23. Apr 2013, 05:50
Die alten Funktionen bleiben 1-Basiert, die neuen Methoden an der String-Klasse sind 0-Basiert.
Siehe auch http://docwiki.embarcadero.com/RADSt...d_Desktop_Apps
Stimmt. Die waren aber auch schon in XE3 0-Basiert. Ändert sich also nix.
bloss gut das ich das gelesen habe.

d.h. wenn ich jetzt die StringHelper bei String verwende, muss ich 1 draufaddieren? Und mir alle Quellcodestellen markieren um dann bei der Umstellung die 1 wieder weg zu machen? Oder per IFDEF?
Sven Harazim
--
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: 0-Based Strings ab XE4

  Alt 23. Apr 2013, 06:48
Addieren und abziehen musst Du nur, wenn Du die alten und die neuen Funktionen mischst. Möchtest Du über einen kompletten String laufen, kannst Du die for...in - Schleife nutzen. Oder Du lässt Dir Dir low() und high() die jeweils korrekten Grenzen eines Strings liefern.
Wenn Du häufig auf die erste, dritte oder zwölfte Stelle eines Strings zugreifen müsst. Kannst Du Dir auch Konstanten definieren, die Dir den korrekten Index liefern: FIRST = low(s) oder THIRD = low(s)+2. Auch damit entbindest Du Dich von der Pflicht, manuell die Eins zu addieren.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

AW: 0-Based Strings ab XE4

  Alt 22. Apr 2013, 16:12
Ich finde die Diskussion ja recht interessant und es sind ja sicherlich auch ein paar Argumente zusammen gekommen. Ich habe zwar nur mehrere kleinere Projekte und ein Projekt was so ca. 10000 Zeilen umfasst, aber sind wir doch mal ehrlich, wie viele Stellen hat ein normales Programm (Keine Verschlüsselungsprogramm, Serialgenerator oder ähnliches), wo es einen String zerlegen muss ?

Da die 0-Based Strings in XE4 nur für den Bereich gilt, wo der LLVM-Compiler zum Einsatz kommt. Das heißt, für die reinen VCL-Programme ändert sich hier gar nichts bei XE4. Ich bin der Meinung, dass man hier warten sollte, bis es für die VCL auch soweit ist. Vielleicht baut ja Emba noch irgendwas ein, was die Diskussion in Luft auflöst und wenn Emba nichts macht, dann haben wir doch alle soviel Know-How, dass wir uns gerade einen Parser bauen können, der unsere Units durchgeht.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: 0-Based Strings ab XE4

  Alt 22. Apr 2013, 16:26
aber sind wir doch mal ehrlich, wie viele Stellen hat ein normales Programm (Keine Verschlüsselungsprogramm, Serialgenerator oder ähnliches), wo es einen String zerlegen muss ?
Bei uns waren es sehr viele (Kassensoftware).

Vielleicht baut ja Emba noch irgendwas ein, was die Diskussion in Luft auflöst und wenn Emba nichts macht, dann haben wir doch alle soviel Know-How, dass wir uns gerade einen Parser bauen können, der unsere Units durchgeht.
Hier sieht es so aus, dass bei neuem Code die expliziten nullbasierten Funktionen benutzt werden. Das macht vieles im Code auch einfacher, da man nicht ständig zwischen null- (Array) und einsbasiert (Strings bisher) wechseln muss.

So ist das ganze auch unabhängig von der Compilereinstellung immer nullbasiert und zukunftssicher.

Kann sich noch jemand daran erinnern, wie ewig lange es damals beider Unicode Umstellung gedauert hat, bis alle Projekte, Komponenten und auch Delphi selbst wieder konsistent waren?
Nicht lange. Es gab danach noch ein paar Probleme, aber das waren alles vorher nicht sauber geschriebene Codestellen.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (22. Apr 2013 um 16:28 Uhr)
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#10

AW: 0-Based Strings ab XE4

  Alt 22. Apr 2013, 16:28
Ein Wizard müsste von Emba her der einen bei der Umstellung hilft.
Sag ich doch. Den Teil hast Du nur nicht in diesen Thread kopiert.
Egal. Manuell darf so eine Umstellung allerdings nicht mehr erfolgen. Die Zeit bezahl einem kein Mensch ...

Unicode würde ich nicht als vergleich her nehmen. Hier hat man einen großen Mehrwert (jedenfalls würde uns ohne ein wichtiges Merkmal fehlen und großkunden uns nicht mehr nehmen).
Auch richtig. Unicode ist ein Muss. Aber der Aufwand für die Umstellung auf 0-based Strings ist vermutlich vergleichbar ... und diese Umstellung gibt es eigentlich nur, weil eine robuste klassische Win32 Programmiersprache langsam aber sicher vergewaltigt wird um eine von vorn herein grenzenbehaftete Cross-Platformunterstützung zu bieten. Das ist zumindest meine Meinung.

Zitat von RWarnecke:
wie viele Stellen hat ein normales Programm (Keine Verschlüsselungsprogramm, Serialgenerator oder ähnliches), wo es einen String zerlegen muss ?
Aber gerade das ist doch die Gefahr. Lauf doch mal alle Units der letzten 10 Jahre durch und versuche alle indizierten String-Zugriffe präzise zu ersetzen. Fehlerchance 50% weil "aString[1]" auch XE"5?" funktionieren wird. Nur eben mit dem fahschen Ergebnis.
Dann Wenn dann irgendwann die klasischen Stringfunktionen sie Pos und Copy auf zerobased Strings umgebaut werden, dann wird wegwerfen und neuschreiben einfacher!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:12 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