Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pointer/Typ Problem mit SetString (https://www.delphipraxis.net/105371-pointer-typ-problem-mit-setstring.html)

richard_boderich 20. Dez 2007 16:30


Pointer/Typ Problem mit SetString
 
Hi

Ich habe ein "Array of Widechar" als Feld in einer Recordstruktur. Mittels SetString wandele ich das ganze folgendermaßen in einen String um.

Delphi-Quellcode:
      SetString( resultvaluedata,test4.name, test4.namelength);
Das funktioniert auch wunderbar.

Aber: Ich benötige dasselbe nochmal, und zwar nicht vom 1. Zeichen, sondern vom 10. Zeichen im Array. Also quasi soetwas

Delphi-Quellcode:
      SetString( resultvaluedata,test4.name[10], test4.namelength);
Jedoch bekomme ich dabei immer die Compilermeldung "Inkompatible Typen", weis vielleicht jemand wie der Aufruf lauten muss?

mfG Richard

taaktaak 20. Dez 2007 16:37

Re: Pointer/Typ Problem mit SetString
 
Moin, Moin.
Mit ....[10] "holst" du ja nur EIN Zeichen (das 10te) - versuche es mal mit COPY()
:lol:

Muetze1 20. Dez 2007 16:39

Re: Pointer/Typ Problem mit SetString
 
Der indizierte Zugriff ist nur beim PChar Typ als Compilermagic implementiert, alle anderen Pointer-Typen bieten dies nicht an. Von daher: per Hand:

Delphi-Quellcode:
var
  lTempPtr: PWideChar;
begin
  lTempPtr := @test4.name[0];
  Inc(lTempPtr, 10);
 
  SetString( resultvaluedata, lTempPtr, test4.namelength);
end;
@taaktaak: Schau dir mal die Funktion SetString an.

taaktaak 20. Dez 2007 16:44

Re: Pointer/Typ Problem mit SetString
 
Ohhh, Ohhh :oops:
... ich sag' nix mehr - SORRY

richard_boderich 20. Dez 2007 17:05

Re: Pointer/Typ Problem mit SetString
 
Danke Muetze1, funktioniert hervoragend

mfG Richard


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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