Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преобразование строки типа PChar в строку типа String [D5, Win95/98]


Tolstomordik ©   (2002-03-14 14:43:00) 

Привет, МАСТЕРА!
В Дельфи имееются встроенные стредства для преобразования из String в PChar. А вот наооборот....... Если можете чем-либо помочь - буду искренне благодарен!


Anatoly Podgoretsky   (2002-03-14 21:46:00) [1]

Это и есть извращеный метод, ддя S := P не требуется никаких дополнительный усилий, а вот если наоборот то да, но для этого существует UniqueString procedure, в описание процедуры прямо указана обрасть применения.


Song   (2002-03-14 21:23:00) [2]

Какие-то изощерённые у Вас способы. Есть стандартные же:
Var P:PChar;
S:String;
...

SetString(S,P,StrLen(P));


Alx2   (2002-03-14 16:10:00) [3]

Кстати, вот при таком подходе они ссылаются на разные области памяти :))
Var
A : PChar;
S : String;
Begin
A := PChar(String(Pchar(S)));
end;

PS
А глючить все-таки не будет, так как преобразование из PChar в String не требует выделения памяти PChar, так как она уже была выделена...


Alx2   (2002-03-14 16:04:00) [4]

>Просто S и A ссылаются на одну и ту же область памяти.
До поры до времени :)
Потом манагер памяти их разлучит после переприсваивания S


Alx2   (2002-03-14 15:59:00) [5]

>Может глючить,
Вряд ли. Хотя, смотря что назвать глюком.
>так как для Pchar не выделяется память в данном примере...
Да, в этом случае память не выделяется. Просто S и A ссылаются на одну и ту же область памяти.


Malder   (2002-03-14 15:52:00) [6]

Имхо, тема не снята.
Может глючить, так как для Pchar не выделяется память в данном примере...


Tolstomordik   (2002-03-14 14:53:00) [7]

Спасибо всем!!! Тема снята!!!


Alx2   (2002-03-14 14:45:00) [8]

Наоборот -
S := A;


Alx2   (2002-03-14 14:44:00) [9]

Var
A : PChar;
S : String;
Begin
A := Pchar(S);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо