Einzelnen Beitrag anzeigen

Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#1

PChar nach String schneidet Zeichen ab

  Alt 26. Feb 2006, 16:01
Hi!

Ein seltsames Problem, das ich da habe. Wollte eines meiner Programme etwas umbauen und habe nun PChars mit dabei. Da andere Programmteile Strings verwenden, muss ich die PChars in Strings umwandeln - soweit kein Problem. StrPas schreibt mir die Delphihilfe ist veraltet - ich solle doch eine Direktzuweisung verwenden. Ich habe folgende Möglichkeiten ausprobiert (auskommentiert):

Delphi-Quellcode:
      HR_REQUIRES_STATUS_CHANGE: begin
                                   if AnOutput.DataFormat = DF_STATUS_INFORMATION then
// FState := AnOutput.AdditionalData;
// FState := String(AnOutput.AdditionalData);
// FState := Copy(AnOutput.AdditionalData, 1, Length(AnOutput.AdditionalData));
                                     FState := StrPas(AnOutput.AdditionalData);
                                 end;
Das Problem ist folgendes: AdditionalData ist ein PChar, z.B. mit dem Inhalt "F:\Bilder"; vor der Zuweisung ist das auch noch ok; nach der Zuweisung allerdings ist der Inhalt "F:\Bilde"#0 (laut Debugger) - und so wird es dann auch ausgegeben. Interessanterweise passiert das nur, sobald irgendwann einmal "F:\" in AdditionalData steht bzw. gestanden ist (d.h. sobald ich <= 3 Zeichen bin). Davor ist alles normal - danach fehlt immer genau das letzte Zeichen... weiß jemand, wie ich das beheben kann?

Dust Signs

PS. Crossposting DF
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat