![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
KuZyagroup |
|
||||||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
В старом добром паскале можно так
Шарп разумеется не поддерживает аналогичную конструкцию
Вопрос: Как реализовать такую выборку и есть ли какие то способы легче и практичней реализовать мою задачу. Задача: Есть запись из букв и цыфр - перевсти в запись только из цыфр выкинув буквы.
Это сообщение отредактировал(а) Дрон - 5.6.2007, 09:05 |
||||||
|
|||||||
SpaceSpace |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 2 Всего: 10 |
подключи пространство
используй регулярные выражения
-------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
||||
|
|||||
darkness |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
А не проще ли регуляками реализовать? Что-то наподобие:
(код писал без студии в синтаксисе возможны ошибки) Добавлено через 1 минуту и 43 секунды SpaceSpace, ![]() чего-то я слегка припоздал ![]() Добавлено через 6 минут и 39 секунд Ещё отмечу что код SpaceSpace является более правильным с точки зрения экономии памяти и вского такого, так как задействован StringBuilder, который в отличие от string не создает новый экземпляр при добавленни строк, а добавляет у же к существущей строки
--------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
||||||
|
|||||||
SpaceSpace |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 2 Всего: 10 |
можно еще упростить(одной строчкой меньше), если использовать статический метод Regex.Matches
Это сообщение отредактировал(а) SpaceSpace - 5.6.2007, 09:24 -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
Gelis |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 26.10.2006 Где: Брест Репутация: 2 Всего: 4 |
|
|||
|
||||
KuZyagroup |
|
||||||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
Вот метод который я использовал
П.С. Всем, спаситбо за помощь, сейчас буду думать какой из них оставить (свой или ваш) Добавлено через 5 минут и 35 секунд 2Gelis, Спасибо
как раз то что доктор прописал. Теперь кода 4 строчки и он вполне читабелел ))))
|
||||||
|
|||||||
SpaceSpace |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 2 Всего: 10 |
по примеру Gelis
Даже не думай так делать, это ОЧЕНЬ плохой код, он, если честно, просто ужасен у тебя на каждый символ - 10 циклов проверки, самый быстрый способ - регулярные выражения (при небольших текстах) -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
||||
|
|||||
KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
Всё проблема решена
![]() дальше ![]() Добавлено через 2 минуты и 41 секунду
Я уже проверяю char.IsDigit См. выше ;) |
|||
|
||||
SpaceSpace |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 2 Всего: 10 |
ну а тут на каждый символ абсолютно левая операция
и соответствененая ей проверка
НЕ ДЕЛАЙ ТАК! -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
||||||
|
|||||||
darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
ИМХО, регулярки надёжнее
--------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
KuZyagroup |
|
||||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
А ты код регулярок видел, мне очень кажеться что они кажды символ тоже проверяют Вот листинг с убиением одной левой операции
|
||||
|
|||||
SpaceSpace |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 2 Всего: 10 |
видел, сам делал Регулярки суть есть конечный автомат, машина тьюринга, учи матчасть для каждого выражения создается конечный автомат, он пробегает твою строку и находит все вхождения, после чего ты можешь пользоваться результатами
у тебя используется прямая конкатенация строк string1+string2, если ты не знаеш, то это сильно засирает память, т.к. для каждой операции сложения строки создается НОВАЯ строка, вместо
используй StringBuilder, как было показано выше Это сообщение отредактировал(а) SpaceSpace - 5.6.2007, 10:08 -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
||||||
|
|||||||
KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
SpaceSpace,
Хочешь сказать - вот так я сэкономлю памяти - если так спасиб огромное. У меня эта ф-ция до 5-тысяч раз вызывается. |
|||
|
||||
SpaceSpace |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 2 Всего: 10 |
использовать StringBuilder
НАДО всегда, если строка будет изменяться в твоем случае - в любом случае Добавлено через 3 минуты и 34 секунды если не хочешь юзать регулярки, все-равно мой пример лучше
т.к. у тебя происходит дополнительная обработка строки
на каждом шаге -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
||||
|
|||||
KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
SpaceSpace
А foteach-eм точно порядок не нарушиться - а то обибно будет - я как ни какак телефоные номера копирую |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |