Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> У меня компонент возврощает указатель pointer, как мне его прочитать хотя бы строкой 
:(
    Опции темы
Bes
Дата 6.7.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



MyStrinr:=Pchar(MyPointer) не подходит т.к. видимо что-то связано с завершающим нулем и результирующая строка выводит только первые несколько символов
PM MAIL   Вверх
Akella
Дата 6.7.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



попробуй так


MyStrinr := ^MyPointer
PM MAIL   Вверх
Rrader
Дата 6.7.2005, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



dsergey
Не пройдет.
Код

MyStrinr := MyPointer^;



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Akella
Дата 6.7.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Код

procedure TForm1.FormCreate(Sender: TObject);
var
 s:string;
 p:pointer;
begin
 s:=p^;
end;

не компилится
"Incompadible types String and Procedure..."
PM MAIL   Вверх
Quadr0
Дата 6.7.2005, 15:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 22:37
  Вверх
p0s0l
Дата 6.7.2005, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата(Bes @ 6.7.2005, 14:15)
MyStrinr:=Pchar(MyPointer) не подходит т.к. видимо что-то связано с завершающим нулем и результирующая строка выводит только первые несколько символов
Если есть в строке нулевые символы, PChar не поможет. В этом случае нужно знать длину строки и делать так:
Код
SetLength(MyString, MyStringLen); // MyStringLen тоже должна вовзращаться компонентом
Move(MyPointer^, MyString[1], MyStringLen);




--------------------
С уважением, г-н Посол.
PM   Вверх
Bes
Дата 7.7.2005, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



2Посол: попробовал так - все равно только первые несколько символов выводится.
Может как-то перегнать в массив байтов и потом в стринг?
PM MAIL   Вверх
Girder
Дата 7.7.2005, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 31
Всего: 155



Bes если ты знаеш длину данных - то просто пройдись по всему массиву и замени енти байты на пробелы.


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Bes
Дата 7.7.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



2Girder:
так и сделал. спасибо - проблема решена.
2p0s0l: спасибо за синтаксис работы с указателями.
Рабочий код:
Код

Var
     S:string;
     i:integer;
     P:Pchar;
     par:array of byte;
begin
     
     P:=Buffer;
     SetLength(par, BufLen);
     Move(P^, par[0], BufLen);
     S:='';
     for i:=0 to BufLen-1 do
     if par[i]=0 then S:=s+' ' else S:=S+chr(par[i]);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1210 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.