![]() |
Delphi 2009/2010 Stringhandling
Hallo,
beim Portieren einige meiner alten Projekte nach Delphi 2010 ist mir eine Sache übel aufgestoßen. Früher funktionierte die Umwandlung eines Array of Char in einen String problemlos:
Delphi-Quellcode:
Das geht leider nicht mehr und ich musste auf folgendes Hilfskonstrukt umschwenken:
var
Arr: Array[0..12] of char; str: string; ... Arr := str;
Delphi-Quellcode:
Kennt ihr eventuell eine elegantere Lösung zum Umfahren dieses Problems?
procedure StringToArray(const S: AnsiString; out Arr: Array of AnsiChar);overload;
begin fillchar(Arr, sizeof(Arr), 0); move(S[1], Arr, min(length(S),sizeof(arr))); end; procedure StringToArray(const S: String; out Arr: Array of Char);overload; begin fillchar(Arr, sizeof(Arr), 0); move(S[1], Arr, min(length(S),sizeof(arr))); end; Peter |
Re: Delphi 2009/2010 Stringhandling
Muss das denn ein Array sein? Eigentlich kann man auf einen String doch ohnehin wie auf ein Array zugreifen. :gruebel:
|
Re: Delphi 2009/2010 Stringhandling
Zitat:
Zitat:
|
Re: Delphi 2009/2010 Stringhandling
Danke, stimmt das Problem war eigentlich ein anderes. Ich war zu faul die mehreren MB großen Projektdaten anzupassen und habe dann ein eigenes Skript zum Updaten geschrieben. Das hat aus
Datensatz: string[63] automatisch ein Datensatz: Array[0..62] of AnsiChar kreiiert, da AnsiString[63] nicht funktioniert. Nun gibt es in etlichen Klassen Probleme, da just die festen Datensätze, die aus der verwendeten Pluginschnittstelle resultieren, nicht mehr passen. Ich kann da leider auch nicht Widestring verwenden, da ansonsten die Abwärtskompatibilität leidet. Peter |
Re: Delphi 2009/2010 Stringhandling
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 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 by Thomas Breitkreuz