Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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]

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




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




Наверх





Память: 0.73 MB
Время: 0.03 c
14-22343          Merlin                2001-11-02 14:17  2002.01.08  
Со смеху чуть не упал на пол!


4-22488           Arick                 2001-10-31 09:20  2002.01.08  
как узнать имя загруженной Dll


1-22127           Delphimun             2001-12-15 13:43  2002.01.08  
Как курсор загруженный из ресурса в переменную сохранить в файле(cur)?


14-22347          roman001              2001-11-06 18:09  2002.01.08  
Хостинг


1-22176           Serg5                 2001-12-20 14:57  2002.01.08  
Опять проблема с текстом: вывожу на экран Image1.Canvas.TextOut, но под самим текстом белый беграунд. Можно ли если не убрать(просто наложить буквы), то хотя бы беграунд сделать чёрным.