2010-12-14 17 views
12

Dizgedeki içeriği char dizisine kopyalamak istiyorum.Dizgi içeriğinin char dizisine kopyalanması

Bu kodu StrLCopy(C, pChar(@S[1]), high(C));

Şu anda ben çünkü yeni sürümlerinde sağlanan Unicode desteği benim Delphi sürümünü yükseltme eğer herhangi bir sorun olacak mı Delphi 2006 kullanıyorum kullanabilir miyim?

Değilse, bu dönüşümün kodu ne olabilir?

cevap

14

, StrPLCopy tercih ederim.

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

Bu, Unicode etkin olsa bile, Delphi'nin tüm sürümlerinde çalışır. C ve S karakter tipleri aynı olmalıdır; Ansi ve Unicode karakterler arasında dönüştürmek için bu işlevi kullanmaya çalışmayın. Ayrıca, StrLCopy da iyi. Yine de çok fazla işaret koduna sahip olmanıza gerek yok.

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

ayırdığınız için size Ken ederiz bana iki STrlCopy tablolar – Bharat

6

Bu hızlı testte, çalışır:

Bir diziye bir dize kopyalıyorsun
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

zaman ayırdığınız için size Rob ederiz zaman – Bharat

+0

arasındaki farkı söyleyebilir: Delphi zaten PChar bir dize dönüştürmek bilir – Bharat

İlgili konular