|
|
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
свалилось как снег на голову в середине лета, подскажите пжл. нужно сделать сравнение функциями delphi часть текстовой строки известна, часть нет типа так (словоХХХХХХ = словопроверки) = true главное для проверки - слово продолжение после слово не важно pos('слово', строка) - не то. (словоХХХХХХслово2 = словопроверкислово2) = true главное для проверки - слово в начале и слово2 в конца, середина не важно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 17:21 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
yemets63, достаточно цикла с Copy или цикла с Copy и Delete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 17:39 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
Есть же строковые хелперы (System.SysUtils.TStringHelper) , типа compare, Contains Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. http://docwiki.embarcadero.com/Libraries/Rio/en/System.SysUtils.TStringHelper.Contains ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 19:41 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 20:18 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
X11, А я подумал чем это отличается от POS, в итоге ничем Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 20:23 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
В Delphi7 был Unit masks c типом TMask, попробуйте загнать туда ваши слово1*слово2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 20:27 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
bk0010, А банально сравнить строку в начале, и потом с конца : Строка[(Длина строки - длина слова проверки)] = слова Вообще не вариант? Без всяких copy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 20:36 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный А я подумал чем это отличается от POS, в итоге ничем Нужно читать справку, т.к. у некоторых хелперов есть зависимость от регистра и от кодировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 21:46 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
X11, Да это обычная обвязка стандартных функций. Как не малюй, а все вызовы будут аналогичны к чистому API в зависимости от типа. Вообще, в принципе очень скудный и примитивный механизм, не предназначенный для многофункциональности. Ну если хочется по фантазировать Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. CompareStringW Не учитывает регистр, умеет сравнивать однобайтовые символы с двухбайтовыми. Ой много чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2020, 22:56 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
X11 ВсеРазумный А я подумал чем это отличается от POS, в итоге ничем Нужно читать справку, т.к. у некоторых хелперов есть зависимость от регистра и от кодировки. UpperCase/LowerCase не проканает? зы. я бы тоже использовал старый добрый Pos() :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 11:54 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
Док, Это всё хорошо, если бы не одно Но. ТЗ - "Слово" должно находится либо в начале, либо в конце текста. А вот pos ты не отрегулируешь длину поиска (Потому что авторы, не додумались что можно было бы и добавить пункт maxlen) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 12:21 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный> Потому что авторы, не додумались что можно было бы и добавить пункт maxlen) Зачем maxlen? Наоборот, startfrom. И для этого есть другие функции. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 12:30 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам И для этого есть другие функции. PosEx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 12:32 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
wadman PosEx А тебя не смущает что это всё та же Pos ? Да даже по аргументам, тебя это должно было натолкнуть. Я даже вот с сорцы не буду лезть и проверять это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 12:52 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Зачем maxlen? Наоборот, startfrom. И для этого есть другие функции. Затем, что бы иметь возможность искать текст, в определённом участке текста. xxx03034035xxxx То есть, offset = 3 и maxlen = 8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 12:54 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный А тебя не смущает что это всё та же Pos ? Читай чуть выше: Гаджимурадов Рустам Зачем maxlen? Наоборот, startfrom. И для этого есть другие функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 12:57 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
wadman ВсеРазумный А тебя не смущает что это всё та же Pos ? Читай чуть выше: Гаджимурадов Рустам Зачем maxlen? Наоборот, startfrom. И для этого есть другие функции. Затем, что ты startFrom можешь указать и через @str[3] А вот MaxLen ты никак не укажешь. Какие другие функции CompareStringW ? И цитирую - ВсеРазумныйЗатем, что бы иметь возможность искать текст, в определённом участке текста. xxx03034035xxxx То есть, offset = 3 и maxlen = 8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 13:00 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
Я же говорю, весь стоковый функционал - дубовый. Он вам даёт ровно - то, что вы можете сделать и без него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 13:00 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
wadman> PosEx Да их тьма, от требований и используемых либ зависит. *StrPos опять же. ВсеРазумный> Затем, что бы иметь возможность искать ВсеРазумный> текст, в определённом участке текста. Это довольно редкая необходимость, к сабжу не относится. Но да, в условном StringFundamentals должно быть четвёртым необязательным параметром. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 13:08 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Затем, что ты startFrom можешь указать и через @str[3] А вот MaxLen ты никак не укажешь. С таким подходом подойдет и Copy. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 13:19 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
Ну он тебе ответит, что Copy неэффективен по скорости и памяти. В условно-идеальной функции должны быть (s, template, from, to, options), последние три - необязательные, пятый может быть множеством или набором параметров - case/ai, charset/locale/collate и пр. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 13:47 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
yemets63 (словоХХХХХХслово2 = словопроверкислово2) = true главное для проверки - слово в начале и слово2 в конца, середина не важно Насколько длинные части в начале и в конце должны совпадать, чтобы результат подходил? 1 символ, 2, 5?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 14:05 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
alekcvp> Насколько длинные части в начале и в конце должны совпадать Насколько я понял, они должны не совпадать, а просто присутствовать. Например, для 'qwertyXXXXXabcdYYYYYYY' - слово1 и слово2 это qwerty и abcd. Тут скорее нужно уточнять префикс-суффикс - если их не должно быть, то никаких Pos и copy вообще не нужно, достаточно одного (или двух) циклов с посимвольным сравнением. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 14:18 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
yemets63 свалилось как снег на голову в середине лета, подскажите пжл. нужно сделать сравнение функциями delphi часть текстовой строки известна, часть нет типа так (словоХХХХХХ = словопроверки) = true главное для проверки - слово продолжение после слово не важно pos('слово', строка) - не то. (словоХХХХХХслово2 = словопроверкислово2) = true главное для проверки - слово в начале и слово2 в конца, середина не важно Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 15:09 |
|
||
|
хочу просто списать, как проверить строку
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, Облазил Delphi и выяснил что из всего набора, на это способны функции из SysUtils WinAPI - CompareString function AnsiStrLComp\AnsiStrLIComp(S1, S2: PAnsiChar\PWideChar; MaxLen: Cardinal): Integer; Встроенные в Delphi function StrLComp\StrLIComp(const Str1, Str2: PAnsiChar\PWideChar; MaxLen: Cardinal): Integer; Ещё есть StrPosLen которая использует StrLComp Но не доступной для пользователя Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В общем то на этом и всё. Скорее где то ещё есть похожий функционал в модулях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2020, 15:24 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39949968&tid=2038385]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 407ms |

| 0 / 0 |
