Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
2-1249939881
makz
2009-08-11 01:31
2009.10.11
Черный список с обменом


15-1249641398
Cyrax
2009-08-07 14:36
2009.10.11
Почему многие интернет-магазины не принимают электронные деньги ?


2-1249812910
Дмитрий
2009-08-09 14:15
2009.10.11
Рандомное слово


1-1218984923
demon
2008-08-17 18:55
2009.10.11
Детектор полноэкранных окон


15-1249457425
@!!ex
2009-08-05 11:30
2009.10.11
Напишите прокси за денежку.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский