Cześć
Czy idzie zdefiniować wartość WideString lubAnsiString tak jak zwykłych np. String[255]?????
Jeśli tak to jak????
[browar]
var
value : AnsiString;
begin
value := StrAlloc(64*SizeOf(Char)); // przydzielenie pamięci
// value wskazuje na 63 znakowy łańcuch
....
...
....
StrDispose(value); // zwolnienie przydzielonej pamięci
end;
Czy o to chodziło?
Pozdrawiam [cya]
Cześć
Czy idzie zdefiniować wartość WideString lubAnsiString tak jak zwykłych np. String[255]?????
Jeśli tak to jak????
[browar]
Nie jestem pewien, czy rozumiem o co ci chodzi.
Tzw długie łańcuchy (AnsiString, string) jak i WideString są dynamiczne, tzn pamięć jest na nie przydzielana w trakcie działania programu i jej wielkość może się zmieniać. Łańcuchy krótkie (ShortString, string[liczba]) są statyczne, pamięć jest przydzielana "z góry" i nie może się zmieniać.
Ustawienie długości łańcucha długiego zachodzi na dwa sposoby:
-
niejawny w momencie przypisania:
var
s: string;
begin
s:='burak'; //lancuch ma teraz dlugosc 5 -
jawny
var
s: string
begin
SetLength(s, 8); //lancuch s ma teraz dlugosc 8, zawartosc nieokreslona
t:='burak';
SetLength(t,2); //lancuch t ma teraz dlugosc 2, zawartosc 'bu'