2010-12-14 7 views
12

Ich möchte den Inhalt in der Zeichenfolge in Char-Array kopieren.Kopieren von Zeichenfolge Inhalt in Char-Array

Kann ich diesen Code StrLCopy(C, pChar(@S[1]), high(C));

Ich bin derzeit mit Delphi 2006. Wird es irgendwelche Probleme, wenn ich in neueren Versionen zur Verfügung gestellt, weil der Unicode-Unterstützung meine Delphi-Version aktualisieren?

Wenn nicht, was kann der Code für diese Konvertierung sein?

Antwort

14

Wenn Sie eine Zeichenfolge in ein Array sind kopieren, bevorzugen StrPLCopy.

StrPLCopy(C, S, High(C)); 

Das funktioniert in allen Versionen von Delphi, auch wenn Unicode in Kraft ist. Die Zeichentypen C und S sollten identisch sein. Versuchen Sie nicht, diese Funktion zu verwenden, um zwischen Ansi und Unicode-Zeichen zu konvertieren.

Aber StrLCopy ist auch in Ordnung. Sie müssen jedoch nicht so viel Zeigercode haben. Delphi bereits weiß, wie man einen String in einen PChar umwandeln:

StrLCopy(C, PChar(S), High(C)); 
+0

Danke Rob sich die Zeit nehmen – Bharat

6

Dies funktioniert, in einem Schnelltest:

var 
    ch: array[0..10] of Char; 
    c: Char; 
    x: Integer; 
    st: string; 
begin 
    s := 'Testing'; 
    StrLCopy(PChar(@ch[0]), PChar(s), High(ch)); 
    x := 100; 
    for c in ch do 
    begin 
    Canvas.TextOut(x, 100, c); 
    Inc(c, Canvas.TextWidth(c) + 3); 
    end; 
end; 
+0

Können Sie mir bitte sagen, den Unterschied zwischen den beiden StrLCopy Aussagen – Bharat

+0

Danke Ken sich die Zeit nehmen – Bharat

Verwandte Themen