![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 08.06.2007
Сообщений: 6
|
![]()
Есть строка слов (одна строка), эта строка вводится в memo, так вот, нужно исключить из этой строки слова в которых одновременно присутствуют символы русского и латинского алфавита. Заранее спасибо.
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
создаешь два массива букв.
Идешь по строке, разделяя её на слова по разделителям потом проверяешь и все.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#3 |
Студент
Форумчанин
Регистрация: 10.11.2006
Сообщений: 196
|
![]()
Подсказка:
Рус-алф: 192-255 (если для ДОСа, то 128-175), где a: Char Лат-алф: 65-90 + 97-122, это ord(a), где a: Char З.Ы. Для всего остального у тебя есть, надеюсь прямые, руки! =)
Visita Interiorem Terrae Rectificando Operae Lapidem...
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 08.06.2007
Сообщений: 6
|
![]()
Зачем так глубоко копать ведь можно как нить
str:=memo1.text. ch:=length(str); i:=0; while i<=ch do begin if str[i]=' ' then begin for j:=0 to i-1 do begin if str[j] in ['A'..'Z','a'..'z'] then flag:=true; if flag then begin if str[j-1] in ['А'..'Я','а'..'я'] then {если это лабуда не смейтесь} Ну вот в таком напрвлении, ведь наверняка можно? У меня не получается до конца реализовать это. Выручайте. |
![]() |
![]() |
![]() |
#5 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Ввести неще одну переменную K, и j брать не от нуль, а от К
for j:=K to i-1 do begin ..{проверяешь условие} {и вот оно} Delete(str,k,i-1);{удаление}
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 486
|
![]()
Кстати, выделять отдельные слова можно и другим способом (особенно если слов предполагается много и потом их нужно обрабатывать). Это не только к этой задаче, а вообще.
1. Заменить в строке все пробелы на запятую (заменить можно любым способом или просто хранить в таком виде) for I := 1 to <длина_строки> do if S[I] = ' ' then S[I] := ',' а потом передать строку в список SL.CommaText := S; Здесь SL переменная типа TStringList, можно вместо SL использовать свойства Memo.Lines или ListBox.Items и др. В результате в каждом элементе списка будет отдельное слово. А дальше обрабатывать список слов как хочешь. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
ну тогда уж писать:
for I := 1 to <длина_строки> do if (S[i] < 'A') then S[i] := #13 т.е. все символы, до латинского алфавита меняем на энтер (цифры правда тоже) |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 486
|
![]()
А какой смысл, что дальше делать с такой строкой?
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
ну если я не ошибаюсь, то если в свойство Text записать это, то одна строка = 1 слово, т.к. там будет символ энтера. Ну или можно так же на запятую твою менять, но просто вдруг слова отделены точкой или скобкой какой...
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 486
|
![]()
Просто не так выразился. Я имел ввиду, что строка в таком виде будет "побитая", а вдруг там цифры и другие "убитые" символы важны?
А про то, чтоб записать в Text и получить список слов я конечно сразу понял. Собственно, вариантов разных уже достаточно. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
И опять мэйлы.. Опять... | Pusher | PHP | 6 | 28.06.2008 03:08 |
Опять автозагрузка | RealSHELS | Общие вопросы Delphi | 7 | 16.06.2008 01:32 |
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй | gotex | Помощь студентам | 4 | 08.05.2008 02:27 |
Опять Word | krem | Общие вопросы Delphi | 3 | 08.05.2007 16:27 |
Опять graph | nikleb | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 16.04.2007 22:58 |