| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Работа со строками |
| Автор: a.S.d 7.3.2005, 01:07 |
| Имеется строка 'some string123' (вместо "some string" может быть что угодно, но "123" постоянно). Как из этой строки сделать строку 'some string'? |
| Автор: December 7.3.2005, 01:13 | ||
|
| Автор: a.S.d 7.3.2005, 01:23 | ||
| December Надо так:
Иначе result='some string1'. |
| Автор: Poseidon 7.3.2005, 03:07 | ||
Это верно! А все из-за того, что роs определяет положение подстроки '123' в строке, а сору позволяет выделить фрагмент строки, длинной как раз токи до первого символа подстроки '123'(в данном случае), т.е. до 1. |
| Автор: ~FoX~ 7.3.2005, 10:58 | ||
ИМХО проще:
|
| Автор: Pakshin A. S. 7.3.2005, 11:54 | ||
а что будет быстрее работаеть? |
| Автор: Poseidon 8.3.2005, 04:05 | ||||||
~FoX~
будет выдавать то, что ожидается только если 123 в конце строки. А если строка 'some string123abc'? Ведь по предложенному a.S.d условию это не исключается. Поэтому лучше все таки использовать
PS. Это касается и предложения Pakshin A. S. удалять последние три символа
|
| Автор: Alex 8.3.2005, 07:47 |
| a.S.d, а если в строке к примеру два раза встречается 123, то нужно все удалить или нет? |
| Автор: December 8.3.2005, 16:16 | ||
Угу, лень было думать и проверять |
| Автор: ~FoX~ 9.3.2005, 11:05 | ||
Poseidon
|
| Автор: Poseidon 10.3.2005, 02:34 | ||||||
~FoX~, то, что "123" постоянно, это я видел. Но все равно, предложенное тобой
Pakshin A. S.
Поэтому эти варианты не приемлемы. |
| Автор: SlaUr 10.3.2005, 09:21 | ||
Может так
|
| Автор: ~FoX~ 10.3.2005, 09:40 |
| Poseidon Сори, я предыдущий пост не прочитал.......туплю. Тогда как a.S.d предложил |
| Автор: Poseidon 11.3.2005, 04:25 | ||||
| Все, я думаю тема исчерпана. Выводы:
Если в строке "123" встречается один и более раз, и от этих "123" нужно избавится, то тогда код SlaUr
a.S.d, думаю мы тебе тут всем кагалом помогли |
| Автор: Alex 11.3.2005, 09:18 | ||||
Я обычно пишу:
|
| Автор: Poseidon 12.3.2005, 05:18 |
| Alex, раз человек задает такой вопрос, то, я думаю он еще толком не тазобрался со тем, что Delphi предлагает по умолчанию. И что бы еще разбираться, что там за функции есть в StrUtils просто не до этого. |
| Автор: Alex 12.3.2005, 10:18 |
| Poseidon, в этом и дело, что я сейчас показал ему, что перед тем как задавать вопрос или пытаться самому реализовывать какую-то функцию нужно потратить немного времени и посмотреть, а что Delphi предлагает. Дело в том, что достаточно грамотные и знающие программиста порой не знают о существовании таких нужных и полезных функций. Но их можно понять, эти функции появились в Delphi не так давно, по-моему, начиная с 5 версии. А я в душе человек ленивый и ужасно не люблю изобретать велосипеды я ищу уже написанное стандартное и им пользуюсь (хотя иногда на поиски уходит не один месяц PS: А все разговоры, что мы сначала покажем человеку не совсем правильно, но то, что писать легче (эта тема к счастью не этот случай) я ненавижу. Если уж учить так, учить и если показывать пример то самый правильный и может быть самый навороченный, но в нем учтены все подводные камни, о которых вам известно. Дело в том, что, показав один раз человеку легкий, но не совсем правильный код вы делаете этому человеку и еще тем людям, которым этот человек будет теперь уже сам отвечать на подобный вопрос большую гадость. Не совсем правильный код расползается по сети, попадает в FAQ и народ считает его верным. Доказать потом, что этот код не верный и переучить человека писать правильно очень сложно. Поэтому лучше в самом начале дать нормальный качественный пример может быть не совсем простой. Я знаю множество примеров, когда везде в сети лежит один и тот же пример и он не рабочий, но при задании вопроса все упорно копируют его в качестве ответа. |
| Автор: Poseidon 12.3.2005, 20:14 | ||||
Alex
Но я думаю, что мы с тобой не будем начинать дискуссию по этому поводу (по крайней мере здесь), т.к. это уже можно опредилить как PS. А насчет твоего посскриптума, так это ты прав. Это и меня очень раздражает. Я, к примеру, всегда даю код, каторый либо мною написан, либо проверен на ошибки перед этим. Ведь многие только начинают. И напиши в примере кода хотя бы FloadToStr (реальный пример описки в предложенном коде), начинают тебе говорить, что код с ошибкой и не компилируется. А что бы исправить ошибку опыта (пока) не хватает. Поэтому таким людям нужно давать все проверенное, да и еще с //описанием. |