Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Вниз

Доброго времени суток   Найти похожие ветки 

 
Dmitry1   (2001-12-14 16:53) [0]

как определить есть ли в стоке символы кирилицей?
можно немного преобразовать вопрос:
как определить что в строке есть только: латинские буквы и служебные знаки


 
Mick   (2001-12-14 16:56) [1]

Сравнивать символы этой строки с символами кириллицы не пробовал?


 
Dmitry1   (2001-12-14 17:01) [2]

это можно конечно сделать но я боЮсь что работать будет это долго. у меня более 2000 строк которые необходимо обработать. :((


 
Mick   (2001-12-14 17:05) [3]

Процессор 8086? Так и ему это вполне по силам.


 
Dmitry1   (2001-12-14 17:11) [4]

а какой нибудь функции специальной нет?


 
Mick   (2001-12-14 17:15) [5]

Есть такая функция!
Фамилия у нее If


 
Dmitry1   (2001-12-14 19:42) [6]

я же про API функции спрашивал. :(( А в твоем варианте решения задачи лучше не if применять, а case так как тип char- перечисляемый.
а Api функция мне нужна для того чтобы правильно работать с кодировками.


 
Tonie   (2001-12-14 19:46) [7]

у строки нет признака кодировки, так что действительно тебе надо просто по строке идти и код символа на принадлежность латинскому алфавиту проверять типа: "A".."Z", "a".."z" : Result := inLatin


 
Mick   (2001-12-14 19:48) [8]

И чем например такое:
if MyString[i] in ["A".."я"] then ...
хуже чем case ?

И где именно был вопрос по API функциям, я что-то не заметил сразу?


 
Вадим   (2001-12-14 19:53) [9]

case? Приплыли, всю ночь гребли, а лодку отвязать забыли...

function IsRus(s: string): boolean;
var
i: integer;
const
RusChars = ["А".."Я", "а".."я"];
begin
Result := False;
for i := 1 to Length(s) do
if s[i] in RusChars then
begin
Result := True;
Break;
end;


 
Mick   (2001-12-14 19:55) [10]

Лучше так :)

for i := 1 to Length(s) do
begin
Result:=s[i] in RusChars;
if Result then Break;
end;


 
Mbo   (2001-12-15 07:53) [11]

>как определить что в строке есть только: латинские буквы и служебные знаки
onlylat:=true;
for i:=1 to length(s) do if ord(s[i])>127 then begin
onlylat:=false;
break;
end;


 
Anatoly Podgoretsky   (2001-12-15 12:07) [12]

Лучше все таки not (s[i] in LatinAndSpecialChars) иначе отсекаются некоторые знаки, например денежные символы и некоторое другое
Так будет более гибко


 
Dmitry1   (2001-12-17 15:08) [13]

Спасибо всем кто окликнулся.



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

Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
14-22390
Ежик
2001-11-08 12:54
2002.01.08
Слушай Мерлин, ты когда нибудь спишь? В смысле, отдыхаешь?


1-22206
T2
2001-12-16 07:11
2002.01.08
Align field


1-22098
Alexander
2001-12-19 14:58
2002.01.08
Кто знает как вытащить виндовый редактор IP адреса или компонент какой?


1-22192
Dreamer
2001-12-15 19:34
2002.01.08
Как из Time вытаскивать только секунды и переводить


3-21926
Oleon
2001-12-04 15:14
2002.01.08
Создание таблицы из Delphi.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский