Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.11;
Скачать: CL | DM;

Вниз

CharPrev   Найти похожие ветки 

 
niel ©   (2009-08-05 10:58) [0]

Задача в том, чтобы пробежать строку с начала в конец и с конца в начало. С 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 никак не разберусь, примеров тоже не нашел.


 
Palladin ©   (2009-08-05 11:05) [1]

учите основы, еклмн

For i:=1 to Length(s) Do
ShowMessage(s[i]);


 
niel ©   (2009-08-05 11:08) [2]


> учите основы, еклмн
For i:=1 to Length(s) Do
 ShowMessage(s[i]);


Так-то все ясно..., меня интересует возможность сделать данное, испольльзуя CharPrev.


 
Palladin ©   (2009-08-05 11:13) [3]

и нафига это спрашивается?
для того что бы сделать CharPrev нужно сначала добратся до индекса для которого его нужно применить.


 
Palladin ©   (2009-08-05 11:17) [4]

PChar, кстати говоря, точно также легко индексируется как и String
Нафига этот выпендреж нужен?


 
Сергей М. ©   (2009-08-05 11:19) [5]


> пробежать строку с начала в конец и с конца в начало


Проще пареной репы:

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)
;


 
Сергей М. ©   (2009-08-05 11:21) [6]

пардон, наоборот:
 repeat
   P := CharPrev(P); //на символ назад к началу строки
   ShowMessage(P^);
 until P = PChar(s); //выход из цикла, если добежали до начала строки


 
niel ©   (2009-08-05 11:27) [7]


> пардон, наоборот:  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  
  );



Страницы: 1 вся ветка

Текущий архив: 2009.10.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
2-1249889040
DevilDevil
2009-08-10 11:24
2009.10.11
FindFirst, FindNext... Как быстрее?


1-1219300423
Чих-Пых
2008-08-21 10:33
2009.10.11
Вывод на печать каталога


2-1248613364
_Татьяна_
2009-07-26 17:02
2009.10.11
Какой параметр использовать в функции?


2-1249545112
Dennis I. Komarov
2009-08-06 11:51
2009.10.11
AV


15-1250089672
Дмитрий С
2009-08-12 19:07
2009.10.11
Как подключить сетевой принтер на 64х битной висте.