![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CharPrev
niel © (2009-08-05 10:58:00)Задача в том, чтобы пробежать строку с начала в конец и с конца в начало. С CharNext проблем нет, делаю так:
procedure ToEof(const S: string);
var
P: PChar;
begin
P := PChar(S);
while P^ <> #0 do
begin
ShowMessage(P^);
P := CharNext(P);
end;
end;
А вот с CharPrev никак не разберусь, примеров тоже не нашел.
niel (2009-08-05 11:27:00) [1]
> пардон, наоборот: repeat P := CharPrev(P); //на символ
> назад к началу строки ShowMessage(P^); until P = PChar(s);
> //выход из цикла, если добежали до начала строки
не компилится, CharPrev требует указания 2-х параметров,
LPTSTR CharPrev(
LPCTSTR lpszStart, // pointer to first character
LPCTSTR lpszCurrent // pointer to current character
);
Сергей М. (2009-08-05 11:21:00) [2]пардон, наоборот:
repeat
P := CharPrev(P); //на символ назад к началу строки
ShowMessage(P^);
until P = PChar(s); //выход из цикла, если добежали до начала строки
Сергей М. (2009-08-05 11:19:00) [3]
> пробежать строку с начала в конец и с конца в начало
Проще пареной репы:
var;
P: PChar;
begin
P := PChar(S);
// с начала в конец
while P^ <> #0 do
begin
ShowMessage(P^);
P := CharNext(P);
end;
// с конца в начало
repeat
ShowMessage(P^);
P := CharPrev(P);
until P = PChar(s)
Palladin (2009-08-05 11:17:00) [4]PChar, кстати говоря, точно также легко индексируется как и String
Нафига этот выпендреж нужен?
Palladin (2009-08-05 11:13:00) [5]и нафига это спрашивается?
для того что бы сделать CharPrev нужно сначала добратся до индекса для которого его нужно применить.
niel (2009-08-05 11:08:00) [6]
> учите основы, еклмн
For i:=1 to Length(s) Do
ShowMessage(s[i]);
Так-то все ясно..., меня интересует возможность сделать данное, испольльзуя CharPrev.
Palladin (2009-08-05 11:05:00) [7]учите основы, еклмн
For i:=1 to Length(s) Do
ShowMessage(s[i]);