AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Explode Unicode Änderung

Ein Thema von Grolle · begonnen am 22. Dez 2009 · letzter Beitrag vom 23. Dez 2009
Antwort Antwort
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#1

Explode Unicode Änderung

  Alt 22. Dez 2009, 22:32
Hallo,

ich nutze bisher folgende Explode-Funktion aus dem Forum:
Delphi-Quellcode:
function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray;
var
  SepLen: Integer;
  F, P: PChar;
  ALen, Index: Integer;
begin
  SetLength(Result, 0);
  if (S = '') or (Limit < 0) then Exit;
  if Separator = 'then
  begin
    SetLength(Result, 1);
    Result[0] := S;
    Exit;
  end;
  SepLen := Length(Separator);
  ALen := Limit;
  SetLength(Result, ALen);

  Index := 0;
  P := PChar(S);
  while P^ <> #0 do
  begin
    F := P;
    P := AnsiStrPos(P, PChar(Separator));
    if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F);
    if Index >= ALen then
    begin
      Inc(ALen, 5);
      SetLength(Result, ALen);
    end;
    SetString(Result[Index], F, P - F);
    Inc(Index);
    if P^ <> #0 then Inc(P, SepLen);
  end;
  if Index < ALen then SetLength(Result, Index);
end;
Wie muss ich die anpassen, damit ich Sie unter D2010 nutzen kann?

Viele Grüße ....

  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Explode Unicode Änderung

  Alt 23. Dez 2009, 10:58
Hab jetzt mal grob drübergeguckt und würde erstmal vermuten, daß diese Funktion schon Unicodefähig ist,
also daß sie ab D2009 problemlos funktioniert.

AnsiStringPos dürfte als Unicode verfügbar sein (liegt an der kranken Umsetzung, wo es zwar ansi heißt, aber Unicode drin ist) ... ich vermute einfach mal, daß es ab D2009 als Unicode definiert ist.

Insgesamt muß man anscheinend nur an 2 Stellen aufpassen:
AnsiStrPos und StrEnd (gibt es da eventuell auch ein AnsiStrEnd?)

Wenn diese beiden Funktionen in D2009/D2010 mit PWideChar arbeiten, sollte es keine Probleme geben, ansonsten muß man nur passende unicodefähige Ersatzfunktionen dafür verwenden.
Ansonsten seh ich keinerlei Probleme.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Explode Unicode Änderung

  Alt 23. Dez 2009, 11:46
Hi,

danke für deine Antwort. Gibts eigentlich generell eine Anleitung, auf was man achten muss, wenn man Projekte von <2009 auf eine neue Version umzieht (im Bezug auf Unicode und Strings)?

Viele Grüße ....

  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Explode Unicode Änderung

  Alt 23. Dez 2009, 11:49
Gibt es. Nick Hodges hat auf dn.codegear.com einige Beiträge zur Unicode-Umstellung bereitgestellt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Explode Unicode Änderung

  Alt 23. Dez 2009, 11:58
Wenn vorher nur PChar und String verwendet wurde, dann gibt es kaum probleme, da Delphi so umgestellt wurde, daß dann alles gleich paßt.

Probleme gibt es vorallem dann, wenn String mit AnsiString und PChar mit PAnsiChar vermischt wurde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 10:15 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