![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
нечитабельные символы.
again © (2006-11-09 17:34:00)Как корректнопроверить строку на нечитабельные символы? Интересует не сам процесс, я и сам догадаюсь: проверить в цикле все символы строки на наличие таких символов; но как проверить?
for... if myString[i] in ['a'..'Z', 'а'..'Я', '0'..'9'] -- но это же далеко не все значения читабельных символов, как быть с теми например которые физически отсутствуют на клавиатуре, но могут быть вставлены например через таблицу сиволов. Значит наверное нужно указать диапазон ascii таблицы читабельных символов, какой он?
Спасибо!
Ketmar (2006-11-09 19:54:00) [1]>[24] again 9-Nov-2006, 19:09
даю эксклюзивную подсказку:charmap.exe.
Anatoly Podgoretsky (2006-11-09 19:24:00) [2]> again (09.11.2006 19:09:24) [24]
F1 + Set
Percent (2006-11-09 19:11:00) [3]Лень-матушка обуяла.
Напиши один разфункцию и не парь мозги себе и форуму.
again (2006-11-09 19:09:00) [4]Проблемы нет, можно конечно и запихать, но почему бы тогда вместо a..z, не запихать a, b, c, d, .. z. Если есть код символов отвечающий скажем с ! до & в диапазоне скажем 60-67 (пример). Зачем запихивать когда можно указать в условии этот диапазон.
Percent (2006-11-09 19:08:00) [5]А как там дела обстоят с MBCS? Какие коды символов тамсчитаются "нечитабельными"?
Ketmar (2006-11-09 19:06:00) [6]>[18] again 9-Nov-2006, 18:54
>Хорошо, ограничу только эти символы: a..Z, 0..9, а..Я, *!"
>№;%..., но как быть с например #$%!&(_. Их в множество
>можно задать? ~..+
любой AnsiChar можно запихать в set. так и пихать, в кавычках, друг за дружкой. сами кавычки -- кодом (#39). в чём проблема-то?
again (2006-11-09 19:05:00) [7]
> Диапазон Char
Ну так можно сказать и вся таблица ascii. Char = может принимать 256 значений. Я же ограничил критерий нечитабельности.
Anatoly Podgoretsky (2006-11-09 18:59:00) [8]
> Каков числовой кодовый дипапазон только этих символов,
Ты что не читатель? Диапазон Char
guav (2006-11-09 18:58:00) [9]> for i := 0 to Length(FirstName.Text) - 1 do
строки индексируются с единицы (и, соответственно, длина строки равна индексу последнего символа).
again (2006-11-09 18:54:00) [10]Хорошо, ограничу только эти символы: a..Z, 0..9, а..Я, *!"№;%..., но как быть с например #$%!&(_. Их в множество можно задать? ~..+
Каков числовой кодовый дипапазон только этих символов, что бы можно было сделать так?: if Ord(..[i]) > ? or ? < Ord(..[i])...
Ketmar (2006-11-09 18:53:00) [11]ты чёткоопредели диапазон "нечитабельных". кому, как не тебе лучше знать, что именно твоя программа должна таковыми считать?
Anatoly Podgoretsky (2006-11-09 18:47:00) [12]> again (09.11.2006 18:34:13) [13]
Вывод неверный, точнее ложный, если ты понял про что
Anatoly Podgoretsky (2006-11-09 18:45:00) [13]> again (09.11.2006 18:00:06) [6]
В таком случае и #10,#13 читаемы.
Тебе придется делать кучу таблиц, по одной на кодовую таблицу и шрифт.
Anatoly Podgoretsky (2006-11-09 18:44:00) [14]> again (09.11.2006 17:34:00) [0]
Диапазон Char
again (2006-11-09 18:34:00) [15]Ну т.е. исходя из этого утверждения, можно сказать, что нечитабельных символов не существует. Так что ли получается?
Ketmar (2006-11-09 18:17:00) [16]>[6] again 9-Nov-2006, 18:00
>нечитабельные - это те, которые не имеют собственного
>графического образа при выводе на экран (Например #10,#13).
>Пробел - читаем.
да? у пробела нет образа. он пустое место. а вот #10, #13 -- они, например, у меня в CDM выглядят как вполне себе с образом. один -- квадратик с кружком, второй -- нотка.
again (2006-11-09 18:10:00) [17]Ну а есть другое правило, под которое можно собрать все такие символы 0..31, 127, ещё какие-то?
again (2006-11-09 18:04:00) [18]выводить в TEdit, не многострочный. Вот тут уже увидел что и #127 тоже ничитаем, хотя и не входит в правило 0..31.
RWolf (2006-11-09 18:02:00) [19]
> нечитабельные - это те, которые не имеют собственного графического
> образа при выводе на экран (Например #10,#13).
это смотря как выводить.
Desdechado (2006-11-09 18:02:00) [20]> Я идиот?
Ты Exit;)