Показать сообщение отдельно
  #6  
Старый 07.04.2008, 16:33
Phedor Phedor вне форума
Начинающий
 
Регистрация: 28.02.2008
Сообщения: 118
Репутация: 21
По умолчанию

Цитата:
Сообщение от PashaXP
Столкнулся с проблемой, если добавляю условие s[j]<>'|', т.е. как указано ниже, то в ELSE вообще не попадаю!!! Хотя условие должно выполнится 5-ь раз, если логически рассуждать. Но почему код не работает. Если убираю s[j]<>'|', условие срабатывает 4-е раза.
Строки вида - V3I SE7779AD3U1 SE7779AV1U1 SE7779AD1U1 SE9620AE7U1
Код:
   for j:=Length(Poisk_In_File)+1 to Length(S) do
       begin
          If (s[j]<>'  ')OR(s[j]<>'|') then Iskom_Str:=Iskom_Str+s[j]
          Else
            begin
              .....
            end;
       end;
??? Работает так как еслибы было не OR а AND???


1. Первое условие у тебя никогда не сработает. Если ты из кода скопировал, то обрати внимание что s[j] - это единичный символ, а тут ' ' два символа.
2. Если тебе просто нужно убрать пробелы и знак '|'. Возможно проще сделать так?
Код:
Iskom_Str := StringReplace(copy(s, length(Poisk_In_File), length(s)), ' ', '', [rfReplaceAll]);
Iskom_Str := StringReplace(Iskom_Str, '|', '', [rfReplaceAll]);
Ответить с цитированием