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

Вниз

Как копировать содежимое переменной типа Pointer -->String ?   Найти похожие ветки 

 
San1712   (2007-12-09 17:27) [0]

Как присвоить содержимое переменной Pointer переменной типа String? Или как можно преобразовть к типу переменную Pointer ?


 
Anatoly Podgoretsky ©   (2007-12-09 17:28) [1]

Запросто, только толку мало.


 
DrPass ©   (2007-12-09 17:58) [2]

Сперва хотелось бы уточнить - тебе надо именно содержимое переменной Pointer, или все-таки данные в динамической памяти, на которые она указывает?


 
Leonid Troyanovsky ©   (2007-12-09 19:04) [3]


> DrPass ©   (09.12.07 17:58) [2]

>> Как присвоить содержимое переменной Pointer

> Сперва хотелось бы уточнить - тебе надо именно содержимое

Так уж и хотелось?

--
Regards, LVT.


 
San1712   (2007-12-09 19:06) [4]

DrPass
Да меня интересуют данные в памяти на которые указывает переменная Pointer.


 
Leonid Troyanovsky ©   (2007-12-09 19:20) [5]


> San1712   (09.12.07 19:06) [4]

> Да меня интересуют данные в памяти на которые указывает

Докажи.

--
Regards, LVT.


 
DrPass ©   (2007-12-09 21:17) [6]


> Leonid Troyanovsky ©   (09.12.07 19:04) [3]

Это было политкорректное обращение :-Р


> San1712   (09.12.07 19:06) [4]
> DrPass
> Да меня интересуют данные в памяти на которые указывает
> переменная Pointer.

Тогда SetLength(твоя строка, сколько надо) и Move(твоя переменная^, твоя строка[1], сколько надо)


 
Германн ©   (2007-12-09 21:24) [7]


> Тогда SetLength(твоя строка, сколько надо) и Move(твоя переменная^,
>  твоя строка[1], сколько надо)

А сколько надо знает Александр Сергеевич, имхо.
:)


 
oxffff ©   (2007-12-09 22:05) [8]

var p:pointer;
   b:string;
...
b:=string(pchar(p));


 
Leonid Troyanovsky ©   (2007-12-09 22:10) [9]


> DrPass ©   (09.12.07 21:17) [6]

> Это было политкорректное обращение :-Р

Да, да.
Автору не стоило утруждать себя формулировкой для основной,
и, в результате, от него не потребовалось даже "извините".

--
Regards, LVT.


 
Германн ©   (2007-12-09 22:11) [10]


> b:=string(pchar(p));
>

Супер!


 
Efir   (2007-12-09 22:13) [11]


> Германн ©   (09.12.07 22:11) [10]


Почему?


 
oxffff ©   (2007-12-09 22:13) [12]


> Германн ©   (09.12.07 22:11) [10]


Ну естественно с допущением о содержании Null terminated string.
:)


 
Германн ©   (2007-12-09 22:16) [13]


> Efir   (09.12.07 22:13) [11]
>
>

Потому что автор так и не удосужился сказать на что указывает его Пойнтер. И в чем собственно суть вопроса.


 
Anatoly Podgoretsky ©   (2007-12-09 22:16) [14]

> oxffff  (09.12.2007 22:13:12)  [12]

А откуда такое допущение?
Автор ничего не говорил про ASCIIZ


 
oxffff ©   (2007-12-09 22:21) [15]


> Anatoly Podgoretsky ©   (09.12.07 22:16) [14]


Тут вы меня ставите в тупик, своим этим каверзным вопросом.
Сдаюсь. Не телепат я. :)


 
oxffff ©   (2007-12-09 22:23) [16]


> Германн ©   (09.12.07 22:16) [13]
>
> > Efir   (09.12.07 22:13) [11]
> >
> >
>
> Потому что автор так и не удосужился сказать на что указывает
> его Пойнтер. И в чем собственно суть вопроса.


Тогда возможно стоит заморозить тему со статусом.

"Pending more info"


 
Leonid Troyanovsky ©   (2007-12-09 22:33) [17]


> Германн ©   (09.12.07 22:11) [10]

> Супер!

Хе-хе. SetString и не надо никаких предположений.
Почти сразу стало ясно, что это клиент BadTips,
а там и про это есть.

--
Regards, LVT.


 
oxffff ©   (2007-12-09 22:44) [18]


> Leonid Troyanovsky ©   (09.12.07 22:33) [17]


А можно разъяснение вашего IMHO о bad tip?


 
Leonid Troyanovsky ©   (2007-12-09 22:51) [19]


> oxffff ©   (09.12.07 22:44) [18]

http://www.podgoretsky.com/DM/BadTips.html

--
Regards, LVT.


 
oxffff ©   (2007-12-09 22:57) [20]


> Leonid Troyanovsky ©   (09.12.07 22:51) [19]


и что конкретно вам не нравиться в моем совете?


 
Leonid Troyanovsky ©   (2007-12-09 23:03) [21]


> oxffff ©   (09.12.07 22:57) [20]

> и что конкретно вам не нравиться в моем совете?

Я, IMHO, его никак не комментировал, бо моя реплика
адресовалась уважаемому Германну.

Давай, подождем его мнения, правильно ли я понял его.

--
Regards, LVT.


 
palva ©   (2007-12-09 23:32) [22]


San1712   (09.12.07 17:27) [0]
> Как присвоить содержимое переменной Pointer переменной типа String?

Присвоить непосредственно нельзя. Эти типы несовместимы

> Или как можно преобразовть к типу переменную Pointer ?

Можно преобразовать тип Pointer к целому, а затем в строковое десятичное или шестнадцатиричное представление целого числа.
{$APPTYPE CONSOLE}
uses SysUtils;
var
 s: String;
 p: Pointer;
begin
 p := @s;
 s := IntToStr(Integer(p));
 WriteLn(s); // 4237208
 s := IntToHex(Integer(p), 8);
 WriteLn(s); // 0040A798
end.


 
Anatoly Podgoretsky ©   (2007-12-09 23:33) [23]

> palva  (09.12.2007 23:32:22)  [22]

А разве так нельзя

pointer(StrVar) := pointer;


 
palva ©   (2007-12-09 23:43) [24]


> Anatoly Podgoretsky ©   (09.12.07 23:33) [23]
> > palva  (09.12.2007 23:32:22)  [22]
> А разве так нельзя

И в самом деле. Кто бы мог подумать, что такое работает.
{$APPTYPE CONSOLE}
uses SysUtils;
var
 s: String;
 p: Pointer;
begin
 s := "test";
 p := Pointer(s);
 Pointer(s) := p;
 Writeln(s); // test
end.


 
Anatoly Podgoretsky ©   (2007-12-09 23:45) [25]

> palva  (09.12.2007 23:43:24)  [24]

Говорила же мама - учи язык.


 
oxffff ©   (2007-12-09 23:48) [26]


> Anatoly Podgoretsky ©   (09.12.07 23:33) [23]


Так нельзя делать!!!


 
palva ©   (2007-12-09 23:48) [27]


> Говорила же мама - учи язык.

Alma Mater говорила - учи алгол. (1970 г.)


 
palva ©   (2007-12-09 23:52) [28]


> oxffff ©   (09.12.07 23:48) [26]
> > Anatoly Podgoretsky ©   (09.12.07 23:33) [23]
> Так нельзя делать!!!

А так можно ?

type
 trrr = function: Integer;
var
 rrr: trrr;
 h: THandle;
begin
 h := LoadLibrary("testdll.dll");
 @rrr := GetProcAddress(h, "rrr");


 
oxffff ©   (2007-12-10 00:10) [29]


> palva ©   (09.12.07 23:52) [28]


const  ACONST:array[1..10] of byte=(1,0,0,0,0,0,0,0,0,0);

procedure TForm1.Button1Click(Sender: TObject);
var p:pointer;
   s:string;
begin
p:=@ACONST[9];
pointer(s):=p;
s:="";  //Принимайте AV
end;


 
Anatoly Podgoretsky ©   (2007-12-10 00:15) [30]

> oxffff  (10.12.2007 00:10:29)  [29]

А это отношения к вопросу не имеет.
Вопрос про присвоение переменной типа Pointer к переменной типа string.
Ясно, что желание странное, но выполнимое.


 
oxffff ©   (2007-12-10 00:16) [31]


> palva ©   (09.12.07 23:52) [28]


Приведите calling convention.


 
Германн ©   (2007-12-10 00:31) [32]


> Leonid Troyanovsky ©   (09.12.07 23:03) [21]
>
...
> Давай, подождем его мнения, правильно ли я понял его.
>

Шурик -  "Я угадал?"
Лида (шепотом)  - "Почти".
(с) Операция Ы и другие приключения Шурика. Часть 2. Наваждение.


 
Leonid Troyanovsky ©   (2007-12-10 01:36) [33]


> Германн ©   (10.12.07 00:31) [32]

> Лида (шепотом)  - "Почти".

А часовню тоже я разрушил?

--
Regards, LVT.


 
Германн ©   (2007-12-10 01:48) [34]


> Leonid Troyanovsky ©   (10.12.07 01:36) [33]
>
...
> А часовню тоже я разрушил?
>

Нет. Это было до вас. В хх-м веке.
:)


 
Германн ©   (2007-12-10 01:53) [35]


> Leonid Troyanovsky ©   (10.12.07 01:36) [33]

Оффтоп.
Леонид, не напомнишь комбинацию клавиш, которая сдвигает выделенный блок в тексте кода вправо/влево. Склероз, блин. (Правлю с добавлениями чужую программу. Замучился уже читать сообщения компилятора...


 
Leonid Troyanovsky ©   (2007-12-10 13:06) [36]


> Германн ©   (10.12.07 01:53) [35]

> Леонид, не напомнишь комбинацию клавиш, которая сдвигает
> выделенный блок в тексте кода вправо/влево.

Ctrl+K+I Ctrl+K+U
А, во-ще-то, тема - Default keystroke mapping.

--
Regards, LVT.



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

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

Наверх




Память: 0.53 MB
Время: 0.005 c
3-1188290958
ANB
2007-08-28 12:49
2008.01.06
Самый быстрый способ разобрать XML в оракл ?


2-1197042910
Zheksik
2007-12-07 18:55
2008.01.06
Почему 0.20 <= 0.20 ложь???


15-1196712934
Ega23
2007-12-03 23:15
2008.01.06
А вот посоветуйте какую-нибудь статью


5-1164302911
Hollander
2006-11-23 20:28
2008.01.06
Вставить в свой компонент другой


15-1196511475
helpme
2007-12-01 15:17
2008.01.06
Странная повестка, помогите разобраться.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский