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

Вниз

нечитабельные символы.   Найти похожие ветки 

 
again   (2006-11-09 17:34) [0]

Как корректно проверить строку на нечитабельные символы? Интересует не сам процесс, я и сам догадаюсь: проверить в цикле все символы строки на наличие таких символов; но как проверить?

for...  if myString[i] in ["a".."Z", "а".."Я", "0".."9"]  -- но это же далеко не все значения читабельных символов, как быть с теми например которые физически отсутствуют на клавиатуре, но могут быть вставлены например через таблицу сиволов. Значит наверное нужно указать диапазон ascii таблицы читабельных символов, какой он?

Спасибо!


 
Jeer ©   (2006-11-09 17:36) [1]

#0..#31
А про это ты не в курсе ?


 
Percent   (2006-11-09 17:36) [2]

Что значит "нечитабельные"?
Пробел - нечитабельный или где?
Или ты имеешь в виду контрольные символы, те, у которых коды от 0 до 31?


 
Jeer ©   (2006-11-09 17:41) [3]

Если человек не знает английский для него "нечитабельные" латинские символы, наверное так:)


 
Desdechado ©   (2006-11-09 17:56) [4]

араб китайца не услышит, индеец руса не поймет


 
Ketmar ©   (2006-11-09 17:56) [5]

а #127 -- это "читабельный"? а как "прочесть" #255 в CP866?


 
again   (2006-11-09 18:00) [6]

нечитабельные - это те, которые не имеют собственного графического образа при выводе на экран (Например #10,#13). Пробел - читаем.

Вот такой код не пропускает вообще любые символы. Я идиот?
 for i := 0 to Length(FirstName.Text) - 1 do
   if FirstName.Text[i] in [ #0..#31] then
   begin
     ShowMessage("Invalid!");
     Exit;
   end;


 
Jeer ©   (2006-11-09 18:01) [7]

Ketmar ©   (09.11.06 17:56) [5]

> а как "прочесть" #255 в CP866?


EOF


 
Desdechado ©   (2006-11-09 18:02) [8]

> Я идиот?
Ты Exit;)


 
RWolf ©   (2006-11-09 18:02) [9]


> нечитабельные - это те, которые не имеют собственного графического
> образа при выводе на экран (Например #10,#13).

это смотря как выводить.


 
again   (2006-11-09 18:04) [10]

выводить в TEdit, не многострочный. Вот тут уже увидел что и #127 тоже ничитаем, хотя и не входит в правило 0..31.


 
again   (2006-11-09 18:10) [11]

Ну а есть другое правило, под которое можно собрать все такие символы 0..31, 127, ещё какие-то?


 
Ketmar ©   (2006-11-09 18:17) [12]

>[6] again 9-Nov-2006, 18:00
>нечитабельные - это те, которые не имеют собственного
>графического образа при выводе на экран (Например #10,#13).
>Пробел - читаем.
да? у пробела нет образа. он пустое место. а вот #10, #13 -- они, например, у меня в CDM выглядят как вполне себе с образом. один -- квадратик с кружком, второй -- нотка.


 
again   (2006-11-09 18:34) [13]

Ну т.е. исходя из этого утверждения, можно сказать, что нечитабельных символов не существует. Так что ли получается?


 
Anatoly Podgoretsky ©   (2006-11-09 18:44) [14]

> again  (09.11.2006 17:34:00)  [0]

Диапазон Char


 
Anatoly Podgoretsky ©   (2006-11-09 18:45) [15]

> again  (09.11.2006 18:00:06)  [6]

В таком случае и #10,#13 читаемы.
Тебе придется делать кучу таблиц, по одной на кодовую таблицу и шрифт.


 
Anatoly Podgoretsky ©   (2006-11-09 18:47) [16]

> again  (09.11.2006 18:34:13)  [13]

Вывод неверный, точнее ложный, если ты понял про что


 
Ketmar ©   (2006-11-09 18:53) [17]

ты чётко определи диапазон "нечитабельных". кому, как не тебе лучше знать, что именно твоя программа должна таковыми считать?


 
again   (2006-11-09 18:54) [18]

Хорошо, ограничу только эти символы:  a..Z, 0..9, а..Я, *!"№;%..., но как быть с например #$%!&(_. Их в множество можно задать? ~..+

Каков числовой кодовый дипапазон только этих символов, что бы можно было сделать так?: if Ord(..[i]) > ? or ? < Ord(..[i])...


 
guav ©   (2006-11-09 18:58) [19]

> for i := 0 to Length(FirstName.Text) - 1 do

строки индексируются с единицы (и, соответственно, длина строки равна индексу последнего символа).


 
Anatoly Podgoretsky ©   (2006-11-09 18:59) [20]


> Каков числовой кодовый дипапазон только этих символов,

Ты что не читатель? Диапазон Char


 
again   (2006-11-09 19:05) [21]


> Диапазон Char

Ну так можно сказать и вся таблица ascii. Char = может принимать 256 значений. Я же ограничил критерий нечитабельности.


 
Ketmar ©   (2006-11-09 19:06) [22]

>[18] again 9-Nov-2006, 18:54
>Хорошо, ограничу только эти символы:  a..Z, 0..9, а..Я, *!"
>№;%..., но как быть с например #$%!&(_. Их в множество
>можно задать? ~..+
любой AnsiChar можно запихать в set. так и пихать, в кавычках, друг за дружкой. сами кавычки -- кодом (#39). в чём проблема-то?


 
Percent   (2006-11-09 19:08) [23]

А как там дела обстоят с MBCS? Какие коды символов там считаются "нечитабельными"?


 
again   (2006-11-09 19:09) [24]

Проблемы нет, можно конечно и запихать, но почему бы тогда вместо a..z, не запихать a, b, c, d, .. z. Если есть код символов отвечающий скажем с ! до & в диапазоне скажем 60-67 (пример). Зачем запихивать когда можно указать в условии этот диапазон.


 
Percent   (2006-11-09 19:11) [25]

Лень-матушка обуяла.
Напиши один раз функцию и не парь мозги себе и форуму.


 
Anatoly Podgoretsky ©   (2006-11-09 19:24) [26]

> again  (09.11.2006 19:09:24)  [24]

F1 + Set


 
Ketmar ©   (2006-11-09 19:54) [27]

>[24] again 9-Nov-2006, 19:09
даю эксклюзивную подсказку: charmap.exe.



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

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

Наверх




Память: 0.53 MB
Время: 0.053 c
15-1162658830
ProgRAMmer Dimonych
2006-11-04 19:47
2006.11.26
Создатели веб-сайтов - хуже спамеров?


6-1151921416
flaxe
2006-07-03 14:10
2006.11.26
Печенюшки... в Twebbrowser


15-1163051134
pavel_guzhanov
2006-11-09 08:45
2006.11.26
Подскажите, как лучше поступить в такой ситуации


15-1163141822
StriderMan
2006-11-10 09:57
2006.11.26
Наследование в БД


3-1159078435
Urvin
2006-09-24 10:13
2006.11.26
Нет записи в бд с Firebird