|
|
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
Нужна функция которая бы возвращала true или false в зависимости от присутствия искомой подстроки в строке, но с учетом маски, т.е. усовершенствованная функция pos. Т.е. символ [*] - заменяет несколько любых символов. Есть ли в делфи готовая функция или может кто уже сталкивался с подобной задачкой и написал уже такую функцию ? Так как пока идея разложить искомую подстроку на строки до встречи * и запихнуть их в массив и циклом проверять двигаясь с 1 по последний символ в строке вызывая поочередно pos для каждой подстроки и обрезая начало строки до найденной текущей подстроки. Но ведь мой вариант громоздкий, не оптимизированный, может можно как то красивее сделать это ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2003, 15:49 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
могу дать на клиппере старое творение. переписывать влом. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2003, 15:54 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
JEDI code library ,JslStrings.pas Код: plaintext 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. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. Оттуда же, но не проверял: Код: plaintext 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. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2003, 17:47 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за задержку с ответом, интернета не было. Я вроде перевел с клипера на делфи правильно ли я cделал ничего не упустил и не перепутал с elseif-ми ? Код: plaintext 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. >>Rostyk Код на асемблере в 5 делфи не компилируется, говорит неизвестный идентификатор AnsiStrRecSize,AnsiCaseMap,AnsiReOffset Может какой uses прописать нужно ? Код на паскале вроде работает, но как то когда тестировал с [?] и [*], то не срабатывал ни код переведенный с клипера ни этот паскалевский, хотя потом вроде на похожих примерах срабатывал. Вот и не знаю я, что то с тестовыми данными перепутал или код не до конца рабочий. Нужно погонять еще в разных сочетаниях, потестировать, может я просто с шаблоном ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 03:08 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
AnsiStrRecSize,AnsiCaseMap,AnsiReOffset - константы. Дай мыло, перешлю весь файл JslString.pas, разберёшся. А лучше скачай себе Jedi library http://projectjedi.sourceforge.net/ Есть всё на все случаи жизни (с исходниками), хотя много компонентов дублируются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 12:20 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
>>Rostyk Спасибо, JslString.pas уже есть, разобрался. Но почему то асемблерный вариант пробуксовывает на некоторых комбинациях, а паскалевский и клиперовский на тех же нет, вот пример: строка: abc12345 подстрока: *bc*34* а вот подстроку: *bc*23* находят уже все три процедуры. В общем у асемблерной похоже есть недоработки, надеюсь что у оставшихся двух их все же нет и на всех вариантах они правильно срабатывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 02:14 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
ну... вообще-то клипперная ф-я с 91 года в действующей до сих пор коммерческой программе работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 06:40 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
Автор честно написал: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 11:16 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
Luchkin Dmitry, Поясните пожалуйста что делает процедура subStr и что такое .F. и .T. (я просто не знаю Delphi а код нужен) нужно решить подобную задачу только мне надо вывести найденную подстроку. P.S. В остальном вроде разобрался. P.P.S. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 21:50 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
HavesubStr и что такое .F. и .T.substr - это SubString - copy. .t. и .f. - это True/False на клиппере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 22:38 |
|
||
|
Поиск в строке по маске ?
|
|||
|---|---|---|---|
|
#18+
вообще в Дельфи есть готовая функция, правда слегка поломатая, как говорят http://pages.cs.wisc.edu/~rkennedy/mask http://www.delphigroups.info/2/76/416835.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2019, 11:30 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32255343&tid=2039690]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 493ms |

| 0 / 0 |
