Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];




Вниз

Конвентирование String в PChar 


VS   (2001-10-08 13:23) [0]

Здраствуйте.
Подскажите пожалуйста, как мне конвентировать String в PChar.
Очень нужно!!!!
Если можно примерчик пожалуйста!



поручик Пулковский   (2001-10-08 14:02) [1]

Очень просто

var
S: string;
P: PChar;
begin
...
P:=PChar(S); // сработает всегда
или
P:=@S[1]; // может возинкнуть исключение



Anatoly Podgoretsky   (2001-10-08 21:27) [2]

P:=@S[1]; // может возинкнуть исключение

Конечно, так писать нельзя, если волнует надежность



pasha676   (2001-10-09 10:42) [3]

StrPCopy - еще есть такая функция



anatoly   (2001-10-09 11:11) [4]

начиная с 4-ой (а может и раньше) версии тип string и pchar является одним и тем-же типом (при условии, что в опциях отмечена галочка "Huge strings") по-этому можно обойтись приведением типов.

т.е.
var s: string;
p: pchar;
begin
s := string(p);
p := pchar(s);
end;


с уважением.



Dimka Maslov   (2001-10-09 12:02) [5]

>anatoly
Типы string и PChar - не одно и то-же. String - это фактически объект, перед первым символом такой строки располагается информация о длине строки, колическтве ссылок на неё и количество выделенной памяти, кроме того такие строки могут содержать и нулевые символы, а память под строки выделяется автоматически. PChar - же это всего лишь указатель на первый символ строки, оканчивающейся нулевым символом и о выделении памяти здесь должен заботиться сам программист. Для преобразования этих типов допустимы следующие вызовы:
<pre>
var
s: string;
p: PChar;
begin
...
s:=p; //и всё
p:=PChar(S);
...

// всё остальное компилятор сделает сам.
<pre>
А теперь про Huge strings. Если эта опция выключена, то под типом string подразумевается ShortString, то есть строка из Turbo Pascalя, в противном случае - AnsiString - новый тип строк.




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.052 c
1-75587           Foy                   2002-01-06 14:43  2002.01.24  
Сохранение и вызов файла


14-75685          lel                   2001-11-28 10:54  2002.01.24  
Никто не знает ресурсов, где выложены, спрайты, текстуры к разным и грам и не только????


1-75559           Vygantas              2001-12-29 00:22  2002.01.24  
Как впихать форму в DLL и как потом ее от туда взять ??


3-75490           Mistr                 2001-12-20 14:12  2002.01.24  
Сервер-интервейс


1-75604           ~Alice~               2002-01-07 20:38  2002.01.24  
еще раз про iniФайлы