Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];

Вниз

D2009: PAnsiChar to AnsiString   Найти похожие ветки 

 
istok   (2009-04-08 01:33) [0]

ранее для конвертации pchar->string использовался setstring,
а как преобразовать PAnsiChar в AnsiString ? (т.е. как если б это был SetStringA)


 
Германн ©   (2009-04-08 01:38) [1]


> istok   (08.04.09 01:33)  

А что говорит хэлп?


 
istok   (2009-04-08 01:41) [2]

Sets the contents and length of the given string.

In Delphi code, SetString sets the contents and length of the given string variable to the block of characters given by the Buffer and Len parameters.

For a short string variable, SetString sets the length indicator character (the character at S[0]) to the value given by Len and then, if the Buffer parameter is not nil, copies Len characters from Buffer into the string starting at S[1]. For a short string variable, the Len parameter must be a value between 0 and 255.

For a long string variable, SetString sets S to reference a newly allocated string of the given length. If the Buffer parameter is not nil, SetString then copies Len characters from Buffer into the string; otherwise, the contents of the new string is left uninitialized. If there is not enough memory available to create the string, an EOutOfMemory exception is raised. Following a call to SetString, S is guaranteed to reference a unique string, that is a string with a reference count of one.

пока мне на ум приходит только посимвольное копирование в цикле...


 
istok   (2009-04-08 01:54) [3]

обошел задачу через array[] of ansichar + strpas,  вместо pchar


 
Eraser ©   (2009-04-08 04:20) [4]

var
 s: AnsiString;
 p: PAnsiChar;
begin
 s := p;

?


 
Slym ©   (2009-04-08 05:14) [5]

Eraser ©   (08.04.09 4:20) [4]
а если в буфере нулики имеются? а они нужны...


 
Anatoly Podgoretsky ©   (2009-04-08 09:17) [6]

> istok  (08.04.2009 1:54:03)  [3]

SetString не для конвертации, а для создания уникальных строк.
S := P должен работать нормально.


 
Eraser ©   (2009-04-08 13:14) [7]

> [5] Slym ©   (08.04.09 05:14)

хранить данные в строках изначально идея так себе.


 
Slym ©   (2009-04-08 14:22) [8]

Anatoly Podgoretsky ©   (08.04.09 9:17) [6]
уникальных

не путаешь с UniqueString
Eraser ©   (08.04.09 13:14) [7]
удобненько иногда иметь самоликвидирующееся хранилище


 
Anatoly Podgoretsky ©   (2009-04-08 14:31) [9]

> Slym  (08.04.2009 14:22:08)  [8]

Не путаю, именно это и имелось в видут, мне лень было переключаться на ангийский, отделался переводом.
UniqueString = уникальная строка


 
Sapersky   (2009-04-08 16:00) [10]

как преобразовать PAnsiChar в AnsiString ? (т.е. как если б это был SetStringA)

Точно так же. Компилятор сам определяет "правильную" функцию в зависимости от того, что ты подсовываешь в качестве аргумента (т.н. compiler magic). AnsiString -> _LStrFromPCharLen, UnicodeString -> _UStrFromPWCharLen.


 
Eraser ©   (2009-04-08 17:16) [11]

> [8] Slym ©   (08.04.09 14:22)


> удобненько иногда иметь самоликвидирующееся хранилище

чем TBytes не устраивает?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
2-1239120004
tony
2009-04-07 20:00
2009.05.24
аналог EOMSG в Delphi


3-1221223824
KirillRepin
2008-09-12 16:50
2009.05.24
Загрузка рисунка из БД в TImage


15-1237464519
vajo
2009-03-19 15:08
2009.05.24
Помогите выбрать HDD


4-1203581655
Начинающий
2008-02-21 11:14
2009.05.24
Кто обрабатывает нажатие на кнопку в MessageBox ?


2-1239604935
ganda
2009-04-13 10:42
2009.05.24
Корректно убить поток в самом потоке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский