Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает Pos


Iriss ©   (2013-11-26 11:22:00) 

Решил я попробовать FireMonkey (Delphi XE3) и начал писать простенькую программку, столкнулся с такой проблемой, что не понятно почему функция Pos не видит в строке 'I' из 1/2 І р.
причем AnsiPos('1/2 ', Razrad) отрабатывает нормально.
Может кто видит, где я ошибся?
 ConvertRazradToStandartFormat('1/2 І р.');
 ConvertRazradToStandartFormat('ІІ р. ');

function TRazradSyncGUIForm.ConvertRazradToStandartFormat(
 Razrad: string): string;
var
 sv: string;
 IsJunior: Boolean;
 st2: Integer;
begin
 sv := '-';
//  Razrad := AnsiUpperCase(Razrad);
 st2 := AnsiPos('I', Razrad);
//  Delete(Razrad, AnsiPos('1/2 ', Razrad), Length('1/2 ') );
//  Delete(Razrad, AnsiPos('1/2', Razrad), Length('1/2') );
//  Razrad := StringReplace(Razrad, '3', 'III', [rfReplaceAll, rfIgnoreCase]);
//  Razrad := StringReplace(Razrad, '2', 'II', [rfReplaceAll, rfIgnoreCase]);
//  Razrad := StringReplace(Razrad, '1', 'I', [rfReplaceAll, rfIgnoreCase]);
//  IsJunior := (AnsiPos('юн', Razrad) <> 0) or (AnsiPos('ю', Razrad) <> 0);
//  if IsJunior
//  then begin
//    if AnsiPos('III', Razrad) <> 0
//    then sv := TEXT_III_JUNIOR
//    else if AnsiPos('II', Razrad) <> 0
//         then sv := TEXT_II_JUNIOR
//         else if AnsiPos('I', Razrad) <> 0
//              then sv := TEXT_I_JUNIOR;
//  end;
//  if not IsJunior
//  then begin
//    if AnsiPos('III', Razrad) <> 0
//    then sv := TEXT_III
//    else if (AnsiPos('II', Razrad) <> 0)
//         then sv := TEXT_II
//         else if AnsiPos('I', Razrad) <> 0
//              then sv := TEXT_I;
//    if AnsiPos('КМС', Razrad) <> 0
//    then sv := TEXT_KMS;
//  end;
//
//  sv := Trim(sv);
 Result := sv;
end;


Iriss   (2013-11-26 12:29:00) [1]

спасибо


RWolf   (2013-11-26 12:03:00) [2]

В этой строке кириллическая І, а не латинская I.


Iriss   (2013-11-26 11:23:00) [3]

st2 выдает 0, а вроде как должно 1


Наверх

Титульная страница Поиск, карта сайта Написать письмо