Home
Top.Mail.Ru Yandeks.Metrika
Forum: "Main";
Current archive: 2002.01.08;
Download: [xml.tar.bz2];

Down

Good day Find similar branches


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 применять, а homes так как тип 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;
was
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]

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



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

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



Pages: 1 whole branch

Forum: "Main";
Current archive: 2002.01.08;
Download: [xml.tar.bz2];

Top









Memory: 0.85 MB
Time: 0.034 c
1-22081
Andrewv
2001-12-18 14:14
2002.01.08
How to cause a system error.


1-22047
handra
2001-12-17 13:12
2002.01.08
Help creation


4-22457
Zabl
2001-11-01 13:15
2002.01.08
Problem with Dll


3-21972
Wetnose
2001-12-06 08:30
2002.01.08
FIBs + & Generators


1-22202
T2
2001-12-16 07:12
2002.01.08
On the issue of small executable files





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 Español 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
English French German Italian Portuguese Russian Spanish