2010-12-14 12 views
12

Chcę skopiować zawartość ciągu znaków do tablicy char.Kopiowanie zawartości ciągów do tablicy znaków

Czy mogę użyć tego kodu StrLCopy(C, pChar(@S[1]), high(C));

Obecnie używam Delphi 2006. Czy będą jakieś problemy, jeśli mogę zaktualizować wersję Delphi, ponieważ wsparcie Unicode przewidzianego w nowszych wersjach?

Jeśli nie, jaki może być kod tej konwersji?

Odpowiedz

14

Podczas kopiowania ciąg do tablicy, wolą StrPLCopy.

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

To będzie działać we wszystkich wersjach Delphi, nawet jeśli działa kod Unicode. Typy znaków C i S powinny być takie same; nie próbuj używać tej funkcji do konwersji między znakami Ansi i Unicode.

Ale też StrLCopy jest w porządku. Jednak nie musisz mieć tak wiele kodu wskaźnika. Delphi już wie jak przekonwertować ciąg do PChar:

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

Dziękuję za poświęcenie czasu Roba – Bharat

6

działa to w szybkim teście:

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

Czy możesz mi powiedzieć różnicę między tymi dwoma STrlCopy sprawozdania – Bharat

+0

Dziękuję Ken za poświęcenie czasu – Bharat

Powiązane problemy