2010-12-14 16 views
12

Voglio copiare il contenuto nella stringa su char array.Copia contenuto stringa in char array

Posso usare questo codice StrLCopy(C, pChar(@S[1]), high(C));

Attualmente sto usando Delphi 2006. Ci saranno problemi se aggiorno la mia versione di Delphi a causa del supporto Unicode fornito nelle versioni più recenti?

In caso contrario, quale può essere il codice per questa conversione?

risposta

14

Quando sei la copia di una stringa in un array, preferiscono StrPLCopy.

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

Che funzionerà in tutte le versioni di Delphi, anche quando Unicode è in vigore. I tipi di caratteri di C e S dovrebbero essere uguali; non provare a utilizzare quella funzione per convertire tra caratteri Ansi e Unicode.

Ma anche StrLCopy va bene. Non è necessario avere così tanto codice puntatore, però. Delphi sa già come convertire una stringa in un PChar:

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

Grazie Rob per aver tempo – Bharat

6

Questo funziona, in un test rapido:

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

Può cortesemente dirmi la differenza tra le due affermazioni STrlCopy – Bharat

+0

Grazie Ken per aver tempo – Bharat