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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2010, 02:37   #1
user666
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 39
Радость указатели дельфи

давно не писал на дельфи...и вот пришло время...а все забылось...

проблема вот в чем... есть указатель на строку... как вывести всю строку по этому указателю,а ни 1 символ... или же по указателю можно вывести 1 символ(ни как в с++) ...помогите _)
user666 вне форума Ответить с цитированием
Старый 19.08.2010, 02:40   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
есть указатель на строку...
PChar чтоль?
Цитата:
всю строку по этому указателю,а ни 1 символ...
Количество символов известно?

И кстати куда вывести-то?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 19.08.2010, 02:45   #3
user666
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 39
По умолчанию

возможно даже ни в этом проблема...в общем вот есть строка - знаем что в этой строке есть символ '\' - задача прсвоить строке строку которая идет после символа '\' ...вот

Цитата:
Сообщение от DomiNick Посмотреть сообщение
PChar чтоль?

Количество символов известно?

И кстати куда вывести-то?
обычный указатель ptr:^string;
а вывести неважно куда..просто присвоить чему-нить любой другой строке

Последний раз редактировалось Stilet; 19.08.2010 в 09:38.
user666 вне форума Ответить с цитированием
Старый 19.08.2010, 06:33   #4
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

Разименуй указатель
form1.caption := ptr^;
r9m вне форума Ответить с цитированием
Старый 19.08.2010, 12:56   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от user666 Посмотреть сообщение
обычный указатель ptr:^string;
Обычный указатель? В каком месте он обычный?

String - это и есть, сам по себе, указатель.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 19.08.2010, 13:37   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
общем вот есть строка - знаем что в этой строке есть символ '\' - задача прсвоить строке строку которая идет после символа '\'
Вот как-то так думается:
Код:
NewS:=AnsiRightStr(S,Length(S)-LastDelimiter('\',S)+1)
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 19.08.2010, 23:05   #7
user666
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 39
По умолчанию

а AnsiRightStr в каком модуле лежит? а то дельфи 7 не находит такой процедуры со стандартным набором модулей
user666 вне форума Ответить с цитированием
Старый 19.08.2010, 23:51   #8
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Код:
S := Copy(ptr^, Pos('\', ptr^)+1, 1000);
Скандербег вне форума Ответить с цитированием
Старый 20.08.2010, 00:56   #9
user666
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Скандербег Посмотреть сообщение
Код:
S := Copy(ptr^, Pos('\', ptr^)+1, 1000);
ошибка во время компиляции EAccessViolation
user666 вне форума Ответить с цитированием
Старый 20.08.2010, 01:01   #10
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

У меня ошибки не было.
Тестовый код такой:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  ptr : ^string;
  S : string;
begin
  S := '123\456';
  ptr := Addr(S);
  Edit1.Text := Copy(Ptr^, Pos('\', ptr^)+1, 1000);
end;
И EAccessViolation не может быть во время компиляции. Вернее так, может, конечно, но это если сама среда Дельфи глюкавая и ломается. Прога здесь ни причем.

Последний раз редактировалось Скандербег; 20.08.2010 в 01:15. Причина: EAccessViolation
Скандербег вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
указатели в С++ Aleksa_ks Помощь студентам 3 27.04.2010 19:31
Указатели AquaticSoul Общие вопросы C/C++ 5 22.12.2009 15:13
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39
Указатели spirit0k Общие вопросы C/C++ 2 26.03.2009 15:16
Указатели Mango Помощь студентам 2 09.12.2008 12:15