Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.06;
Скачать: CL | DM;

Вниз

Как копировать содежимое переменной типа 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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.013 c
1-1192260730
031178
2007-10-13 11:32
2008.01.06
TReeView


2-1197356647
dumka
2007-12-11 10:04
2008.01.06
Строки


8-1172385577
GrayFace
2007-02-25 09:39
2008.01.06
Оптимальная палитра с менее чем 256 цветами


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


9-1163873357
Masterok
2006-11-18 21:09
2008.01.06
delphix - undeclared identifier angle