Показать сообщение отдельно
  #2  
Старый 27.03.2014, 01:24
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от maxfox123
в D7 в sListData (если объявлено как ANSIString) считываются знаки вопроса.
Такого быть не должно. Знаки вопроса говорят о том, что в системе нерусская кодовая страница по умолчанию для программ, не использующих Юникод. Не 1251, короче. Возможно, стоит диверсия с подменой кодовых страниц (1252=с_1251.nls), и она как-то влияет на Excel через SxS, -- это уж совсем в порядке общего бреда.

Цитата:
Сообщение от maxfox123
НО как проверить на принадлежность если тип у sListData WIDEString?
Возможны такие выкрутасы а-ля FastCode:
Код:
var
  wChar: WideChar;
begin
  ...
  if (Word(wChar) and $FF00 = $0400) and (Byte(wChar) in [Byte(WideChar('а'))..Byte(WideChar('я'))]) then
  begin
  end;
  if (Word(wChar) and $FF00 = 0) and (Byte(wChar) in [Byte('a')..Byte('z')]) then
  begin
  end;
end;
Но можно написать и что-то более стандартное, вроде:
Код:
begin
  ...
  if (wChar >= WideChar('а')) and (wChar <= WideChar('я')) then
  begin
  end;
  if (wChar >= WideChar('a')) and (wChar <= WideChar('z')) then
  begin
  end;
end;
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием