Форум: "Начинающим";
Текущий архив: 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