Einzelnen Beitrag anzeigen

musicman56
(Gast)

n/a Beiträge
 
#6

AW: String / AnsiString Mischbetrieb

  Alt 9. Jan 2013, 12:20
Hallo,

ich hab meine Projekte im Zuge der Umstellung von 2007 auf XE2 auch noch nicht vollständig angepasst, und bin natürlich schon mehrfach über dieses Problem / diese Frage gestolpert. Ist es nicht generell so, dass eine Prozedur/Funktion mit string als Parameter auch mit AnsiString klar kommt?

Beispiel:

Delphi-Quellcode:
procedure WriteStringToStream( const AStr : string; AStream : TStream );
begin
  AStream.Write(PChar(Astr)^, Length(AStr));
end;
...was meiner bescheidenen Meinung nach die richtige Implementation wäre, weil

AStream.Write( AStr[0] ....

sowieso nicht mehr geht. (Zugriff auf Element 0 nicht möglich oder so ähnlich)

Außerdem hab ich in solchen ähnlichen Fällen bisher die Proceduren mit overload 2x deklariert...beispielsweise also

Delphi-Quellcode:
procedure WriteStringToStream( const AStr : AnsiString; AStream : TStream );
begin
  AStream.Write(PAnsiChar(Astr)^, Length(AStr));
end;
Dann ist es egal was ich in AStr übergebe. Bitte korrigiert mich wenn ich falsch liege...so genau kenn ich mich auch nicht aus.
  Mit Zitat antworten Zitat