Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2011, 17:42   #1
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию разобраться с указателем

создал процедуру

Код:
pars(p:pointer);
передаю ей параметр

Код:
pars(@Response.DataString);
Response.DataString - это html код
в самой процедуре pars написал так

Код:
list:=TstringList.Create;
list.Text:=^p;
кстати так пробовал тоже string(^p)
задумано это для того что бы не передавать string что бы сократить объем выделяемой памяти, т.к. в Response.DataString может содержаться несколько тысяч строк.

но у меня такой вариант не работает, в отладчике смотрел в list.Text записывается несколько символов типа #$10#$D#$A я так понимаю это адрес по которому и находится нужный мне текст, а как его от туда прочитать?
fate вне форума Ответить с цитированием
Старый 19.01.2011, 17:48   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

procedure pars(p:PChar);
begin
..
list.Text := p;
..
end;

вызов:

pars(PChar(Response.DataString)); // где DataString объавлен как String;


И всех делов)
mss вне форума Ответить с цитированием
Старый 19.01.2011, 17:51   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

string итак передается по указателю
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.01.2011, 18:12   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Мат-часть.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 19.01.2011, 18:23   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от fate Посмотреть сообщение
задумано это для того что бы не передавать string
procedure pars(const p: string);

Цитата:
string итак передается по указателю
это да, но без const там добавляется LStrAddRef/LStrCrl + try/finally, как описано у Гансмокера.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 19.01.2011, 22:06   #6
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

что-то я о Pchar и не подумал, а ведь тоже вариант.
Ну рас уж это тема про указатели, может скажите почему не работает мой вариант и вообще можно сделать задуманное через указатели?
fate вне форума Ответить с цитированием
Старый 19.01.2011, 22:19   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от fate Посмотреть сообщение
что-то я о Pchar и не подумал, а ведь тоже вариант.
:wall:

Цитата:
Сообщение от fate Посмотреть сообщение
Ну рас уж это тема про указатели, может скажите почему не работает мой вариант?
Хотя бы потому что разыменование указателя - это p^, а не ^p. Тока это не единственная проблема.

Цитата:
Сообщение от fate Посмотреть сообщение
и вообще можно сделать задуманное через указатели
Можно:

Код:
procedure pars(const p: string);
Это и есть через указатели.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив с указателем Seferus Общие вопросы C/C++ 2 13.11.2010 17:57
Работа с указателем на структуру. kir_rik Помощь студентам 2 29.03.2010 13:40
проблема с указателем на массив Sergey.Voloxov Общие вопросы C/C++ 7 14.03.2010 17:47
ошибка при работе с указателем Vladss Общие вопросы C/C++ 22 29.07.2009 03:58
Ошибка с указателем nusik Общие вопросы C/C++ 3 15.07.2009 14:14