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

Вниз

Удалить определенные символы в строке   Найти похожие ветки 

 
dEN   (2011-09-08 15:04) [0]

Есть строка такого вида:

слово1 слово2 слово3 (слово4) слово5 (слово6)
Каким образом можно удалить только первую открывающую скобку и перву закрывающую, .т.е. те скобки в которых распологается слово4, а скобки в которых слово 6 - оставить? Спасибо


 
dEN   (2011-09-08 15:05) [1]

Нашел в RX lib функцию DelChars но она удаляет все заданные символы в строке, а мне последние скобки нужно оставить


 
MBo ©   (2011-09-08 15:06) [2]

Pos + Delete


 
pasha_golub ©   (2011-09-08 15:07) [3]

StringReplace?


 
Anatoly Podgoretsky ©   (2011-09-08 15:23) [4]

В данном случае Pos + Delete эффективнее.


 
dEN   (2011-09-08 15:30) [5]

Ага спасибо, с этим я разобрался. Еще вопрос:

строка вида:

АхатовМаксим

Написано как видим одной строкой без пробелов. Как можно вставить пробел после фамилии?


 
dEN   (2011-09-08 15:30) [6]

Удалено модератором


 
dEN   (2011-09-08 15:30) [7]

Удалено модератором


 
MBo ©   (2011-09-08 15:36) [8]

Задать формальное правило, по которому определяется конец фамилии, и написать соотв. код для проверки, есть ли пробел, и вставки, если нужно.


 
Ega23 ©   (2011-09-08 15:37) [9]


> строка вида:
>
> АхатовМаксим
>
> Написано как видим одной строкой без пробелов. Как можно
> вставить пробел после фамилии?


Result := "Ахатов Максим";

А если серьёзно, то сначала формализовать задачу надо.
Что такое "Фамилия". Что такое "Имя". Что такое "Всё остальное".
И после этого уже парсить текст.


 
Inovet ©   (2011-09-08 15:38) [10]

> [6] dEN   (08.09.11 15:30)
> строка вида:
>
> АхатовМаксим

Проверяй функцией IsUpper в вставляй пробел перед найденным.


 
Anatoly Podgoretsky ©   (2011-09-08 16:25) [11]

> dEN  (08.09.2011 15:30:05)  [5]

Ты специально не хочешь читать справку?


 
Anatoly Podgoretsky ©   (2011-09-08 16:26) [12]


> Inovet ©   (08.09.11 15:38) [10]

Ляпис-Трубецкой
Д"Артаньян


 
Медвежонок Пятачок ©   (2011-09-08 16:39) [13]

Наверное так:

Ахатовмак Сим
Сим - имя, Ахматовмак - фамилия.


 
Омлет ©   (2011-09-08 17:17) [14]

А надо с конца искать, коли там имя.


 
OW ©   (2011-09-08 17:20) [15]


> Сим - имя, Ахматовмак - фамилия.


сам виноват :)


 
RDen ©   (2011-09-08 19:49) [16]

ещё хуже: АхаТовМаКсИм


 
RDen ©   (2011-09-08 19:54) [17]

было изначально
>АхатовМаксим

откуда взялось

>OW ©   (08.09.11 17:20) [15]

> Сим - имя, Ахматовмак - фамилия.

?? буква "М"

запутаете ТС


 
Дмитрий Белькевич   (2011-09-08 20:26) [18]


> Написано как видим одной строкой без пробелов. Как можно
> вставить пробел после фамилии?


В общем случае - никак. В частном - искать вторую большую букву.


 
Inovet ©   (2011-09-08 22:38) [19]

> [12] Anatoly Podgoretsky ©   (08.09.11 16:26)
> Ляпис-Трубецкой
> Д"Артаньян

Предыдущий символ на IsAlpha пусть проверит. А так Ега уже сказал про формализацию.


 
han_malign   (2011-09-09 10:05) [20]

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


 
Inovet ©   (2011-09-09 10:10) [21]

> [20] han_malign   (09.09.11 10:05)
> CamelCase

СиСи - в смысле множественное число, две выпуклости.


 
han_malign   (2011-09-09 10:11) [22]


> слово1 слово2 слово3 (слово4) слово5 (слово6)

- зуб даю - препод в первую очередь вобьет ((слово1) слово2) ...


 
Inovet ©   (2011-09-09 10:15) [23]

> [22] han_malign   (09.09.11 10:11)
> препод в первую очередь вобьет ((слово1) слово2)

Тогда парсить.


 
han_malign   (2011-09-09 10:19) [24]


> СиСи

lowerCamelCase
slyFATperfidiousPROFESSOR


 
han_malign   (2011-09-09 10:35) [25]

хотя с другой стороны ABet, а словарный анализ для лабы - это уже перебор...


 
Inovet ©   (2011-09-09 12:02) [26]

> [24] han_malign   (09.09.11 10:19)
> slyFATperfidiousPROFESSOR

- Череззаборногузадерищенко?
- Я!
- Издуплаглазатаращенко?
- Я!
- НифигаСебеФамилии.
- Я!


 
aleko ©   (2011-09-13 18:05) [27]

Удалено модератором
Примечание: Калокод. Не стоит советовать ерунды.


 
Servy ©   (2011-09-14 04:06) [28]


> [27]


Пожалуйста, не учите людей плохому.

var в процедуре лишний и потенциально сбивающий с толку (переменной List никто ничего присваивать по логике процедуры не собирается), совет про использование глобальных переменных - контрпродуктивный. Непонятно, зачем ParCode не string, это не дает "парсить" по разделителю, состоящему из более, чем одного символа. Двойной вызов Pos подряд с одинаковыми параметрами в условии цикла и внутри цикла - очевидно не оптимален. Ну про стандарты оформления кода я пожалуй умолчу, тут уж на вкус и цвет.


 
aleko ©   (2011-09-14 21:00) [29]


> Непонятно, зачем ParCode не string, это не дает "парсить"
> по разделителю, состоящему из более, чем одного символа.
>

Я  с Вами немного не согласен. Разбор строк с использованием разделителей больше одного(т.е. String, а не byte) на мой взгляд это частный, или академический случай. Разобрать Дж.Хедли Чейза на предложения, фразы и т.п. эта процедура вполне позволяет. Если задача требует разбор с количеством символов-определителей больше 1-го, тогда нужна другая процедура. А насчет лишней Var-не ругайте. Мобыть поторопился, не продумал


 
Игорь Шевченко ©   (2011-09-14 21:20) [30]

зачем изобретать TStrings.DelimitedText ?


 
aleko ©   (2011-09-14 21:46) [31]


> зачем изобретать TStrings.DelimitedText ?

Здравтвуйте Игорь! Я изобретал под себя. Важно было время исполнения. Вали валом-там разберем. Кстати, я по моему не совсем ту процедуру привел, каюсь. Сейчас уточню.


 
aleko ©   (2011-09-15 15:06) [32]


> совет про использование глобальных переменных - контрпродуктивный.

А как передать данные между двумя процедурами (в пределах модуля)? Ведь в списке листа оказываются те же строки, которые можно парсить хоть до одного символа. А вот насчет >1, это в АН России. У меня не стояло такой задачи.


 
Плохиш ©   (2011-09-15 16:30) [33]


> А как передать данные между двумя процедурами

Это описано в любой книжке из серии "делфи за 21 секунду для полных идиотов".


 
имя   (2011-09-15 17:09) [34]

Удалено модератором


 
Jeer ©   (2011-09-15 17:20) [35]


> aleko ©   (15.09.11 17:09) [34]


Тут нет твоих врагов, тут есть советчики по делу и немного в сторону :)
Пока, что враг ты себе сам, поскольку Delphi-книжек не читаешь.

P.S.
Данные между процедурами в пределах модуля передаются через переменные модуля, между модулями  - можно использовать public.переменные (свойства) модулей, либо глобалные переменные, описанные в глобальном-же модуле.


 
Palladin ©   (2011-09-15 17:32) [36]


> Данные между процедурами в пределах модуля передаются через
> переменные модуля,

Не надо передавать переменные между процедурами в пределах модуля через   переменные модуля. Для этого придуманы параметры у процедур которые передаются через стек.


 
Jeer ©   (2011-09-15 18:06) [37]


> Для этого придуманы параметры у процедур которые передаются
> через стек.
>


Это очевидно. Я рассказал о неочевидных вариантах :)


 
aleko ©   (2011-09-15 20:20) [38]

Удалено модератором


 
Inovet ©   (2011-09-15 20:26) [39]

Удалено модератором


 
aleko ©   (2011-09-15 20:37) [40]


> > Данные между процедурами в пределах модуля передаются
> через > переменные модуля,Не надо передавать переменные
> между процедурами в пределах модуля через   переменные модуля.
>  Для этого придуманы параметры у процедур которые передаются
> через стек.

Господа! Вы мыслите категориям, настолько отдаленными от "Начинающих". Вам нужно сделать отдельную ветку-"Для профессионалов", где Вы сможете бахвалится перед собой Вашими ДОСТИЖЕНИЯМИ!
Модератор! Выкинь меня отсюда!
С Уважением Крапивин Олег Викторович.



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

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

Наверх





Память: 0.54 MB
Время: 0.004 c
2-1315895287
KIR@PRO
2011-09-13 10:28
2011.12.25
TComboBox vs PStrings


15-1315308256
Scott Storch
2011-09-06 15:24
2011.12.25
как повысить восприятие английского на слух.


15-1315402684
Jeer
2011-09-07 17:38
2011.12.25
Зачетный HTML 5


15-1315168547
Германн
2011-09-05 00:35
2011.12.25
Ещё один глупый вопрос.


2-1316200336
Аня
2011-09-16 23:12
2011.12.25
Помогите пожалуйста!





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