Главная страница
    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.007 c
1-22165
grab
2001-12-20 20:18
2002.01.08
создание и размещение эмблемы программе на форме


1-22058
$Hic0
2001-12-16 11:49
2002.01.08
TTreeView and TListView


1-22189
bestix
2001-12-14 19:54
2002.01.08
Метафайлы


3-21917
Termik
2001-12-04 11:43
2002.01.08
Обращение к таблице по имени, записнному в переменной


14-22407
KL
2001-11-03 00:47
2002.01.08
Бета тестинг!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский