![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Char [D5, WinXP]
Hammer1 © (2002-11-11 10:46:00)Мастера помогите. Как загнать строку в char масив.
Dimka Maslov (2002-11-11 12:51:00) [1]Можно приведение типов не использовать. Если аргумент функции имеет тип PChar, то к нему можно обращаться как к массиву символов, начальным индексом которого является 0.
procedure SomeProc(Arr: PChar);
begin
Arr[1]:=....
end;
var
S: string;
begin
SomeProc(PChar(Arr));
end;
Hammer1 (2002-11-11 12:06:00) [2]Alx2 и Skier, а также всем остальным, спосибо за помощь.
Reindeer Moss Eater (2002-11-11 12:01:00) [3]StrPLCopy
Alx2 (2002-11-11 11:54:00) [4]>Hammer1 © (11.11.02 11:17)
Использовать приведение типов.
Так например:
type
TInputArray = array [1..100] of char;
procedure SomeFunc(Const Arr : TInputArray); // То, куда надо передать
begin
..............
end;
procedure test;
Var S : String;
begin
SomeFunc(TInputArray((@S[1])^)); // Передаем как char-массив
end;
Skier (2002-11-11 11:18:00) [5]>Hammer1
Move(...) ?
Hammer1 (2002-11-11 11:17:00) [6]Мне необходимо использовать функцию, входным элементом которой является не строка а масив char
Smithson (2002-11-11 11:00:00) [7]А зачем? Строка и так является массивом символов(с индексами от 1 до length(string)).
e-mike (2002-11-11 10:58:00) [8]Преобразовать к PChar и работать с ним, как с массивом:
var
s:string;
a:pchar;
begin
s:="asdfghj";
a:=pchar(s);
showmessage(a[4]);
end;
Skyle (2002-11-11 10:54:00) [9]А чем тебе она как строка не нравится в этом смысле?