AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Pos() oder AnsiPos()?

Ein Thema von blackdrake · begonnen am 14. Dez 2008 · letzter Beitrag vom 2. Jul 2009
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Pos() oder AnsiPos()?

  Alt 15. Dez 2008, 19:05
Zitat von jbg:
UTF16 hat nun mal den Vorteil, dass man sich durch die Char-Sequenz angeln kann ohne dass man Probleme bekommt, wenn man auf ein High oder Low Surogate Zeichen stößt.
UTF-16 hat auch Low/High-Surrogates, um Zeichen jenseits der BMP zu codieren (wird von Windows XP und Office unterstützt).

edit: Ich wollte nur darauf hinweisen, dass die Funktionen UCS-2 anstatt UTF-16 implementieren. Egal.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#12

Re: Pos() oder AnsiPos()?

  Alt 15. Dez 2008, 19:25
Zitat von nicodex:
UTF-16[/url] hat auch Low/High-Surrogates, um Zeichen jenseits der BMP zu codieren (wird von Windows XP und Office unterstützt).
Hab ich denn was anderes behauptet? Bei UTF16 kann man aber beim Durchparsen des Strings die Surrogates ignorieren, da sie es keine Überschneidung mit der BMP gibt. Bei ANSI gibt es jedoch Überschneidungen bei den Tail-Bytes. Auf mehr wollte ich (und bin ich nicht) hinaus.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#13

Re: Pos() oder AnsiPos()?

  Alt 2. Jul 2009, 10:53
Zitat von mkinzler:
Aber String (ab D2009) = UnicodeString <> WideString
Ich muss das hier mal wieder aufwärmen, weil ich bei der Umstellung auf 2009 drüber stolpere:
der Compiler wirft mir vor: doppeldeutiger überladener Aufruf von 'Pos'. Die Codezeile:Pos(WideText,ComboBox1.Items.Strings[i]) Ich fühle mich nicht schuldig.
WideText ist deklariert als WideText = WideString('Hello World'), was mir in der IDE als string angegeben wird, Die ComboBox ist eine TTntComboBox, die auch echte Widestrings liefert(IDE: "Returns System.string").
Offensichtlich macht 2009 einen falschen Redirect (ein cast ist das ja nicht wirklich) auf string, denn Pos(WideText,WideString(ComboBox1.Items.Strings[i])) funktioniert

Wie ist denn der Umgang für D2009 korrekt? Kommt man da ohne Änderungen dran? Denn ich habe das in meinen Quellen oft verwendet.


Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.125 Beiträge
 
Delphi 12 Athens
 
#14

Re: Pos() oder AnsiPos()?

  Alt 2. Jul 2009, 11:33
als was ist denn WideText definiert?
ist das eine Konstante?

dann laß mal in D2009 das WideString() dort weg
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#15

Re: Pos() oder AnsiPos()?

  Alt 2. Jul 2009, 12:13
Zitat von himitsu:
dann laß mal in D2009 das WideString() dort weg
Nee, das ist schon da und zwar seit Jahren.

Delphi-Quellcode:
const
  WideText = WideString('Hallo');
Als als typunabhängige Konstante. Und dabei scheint was schief zu gehen, denn
Delphi-Quellcode:
const
  WideText : WideString = WideString('Hallo');
scheint zu klappen.

Grüße, Messie
  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 08:56 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