Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
Хочу «опубликовать» функцию, являющуюся примером обращения со строками как массивами. За основу взята функция dhTranslate из русского издания "VBA Developer's Handbook" by Ken Getz and Mike Gilbert, Copyright 1997; Sybex, Inc. All rights reserved. В исходном (почти) виде она лежит в приложенном архиве dhTranslate_old, там же (в ней) описание интерфейса и примеры вызова. Там же лежит ее «оптимизированный» без использования массивов вариант (dhTranslate). Он почти вдвое быстрее исходного. Вариант, работающий на массивах, назван dhTranslate_B. Интерфейс изменен в связи с отсутствием режима текстового сравнения строк – только binary. В p-коде он сравним с оптимизированным VBA вариантом, ожидаю, что проиграет ему на «длинных строках», и наверно на вырожденных сильно коротких – 10-ок символов. В native должен быть строго лучшим на всех объемах, кроме, может быть упомянутых коротких. Не могу утверждать, что «публикуется впервые», поскольку идеи широко известны, но прямо в таком варианте не встречал. Сильно не бейте – охота пуще неволи. Здесь (в форуме VB) ее «публикую» по причине того, что, хотя и удалось добиться времени исполнения, сопоставимого с временем исполнения «стандартного» VBA написания для режима p-кода - подобные манипуляции гораздо лучше (должны) смотреться в режиме native компиляции, и, желательно с отключенной проверкой границ массивов. Кстати, «окончательных» замеров пока не проводил. Поэтому, может, кто возьмется замерить скорость на VB – буду благодарен. Надеюсь на конструктивную критику. Если кто из «акцессного» форума сюда заглянет – к ним отдельный вопрос. Акцесс с этой функцией не сильно дружит (хотя и готов исполнить «много раз»), и с регулярностью интересуется – не надо ли «отправить отчет по домашнему адресу»? Может, будут какие идеи по «стабилизации». Вот код. - Код: 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. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 19:20 |
|
||
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
2 Victosha Я что-то не понял :( Зачем так извращаться? Разве split уже отменили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 08:48 |
|
||
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
2 paparome видимо, не понял. функция выполняет посимвольный поиск и замену. Может бать использована (в исходном "чистом VBA" варианте) в vbs-скриптах, например для конвертации текста и дос кодировки в вин. dhTranslate(someString, _ ' "АБВГДЕЖабвгдежИЙКЛийклМНОПмнопСсТУФХЦтуфхцШшЩЪЫЬщъыьЭэяЯР", _ ' "AAAAAAAaaaaaaaEEEEeeeeIIIIiiiiNnOOOOOoooooOoUUUUuuuuYyysD") я не знаю, как здесь split применить. авторЗачем ... извращаться Мне извращаться НУЖНО, например затем, чтобы узнать границы собственного применения. .... И то, что в данном случае представлено чистое эпигонство, меня вовсе не смущает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 09:46 |
|
||
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
Вопрос. Есть некоторые русские буквы, которые передаются в латиницу сочетаниями из 3 и больше. Например: я -> ya ч -> ch щ -> sch (shch) Через какие параметры это задается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 19:53 |
|
||
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
Т.е. 2 и больше, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 19:56 |
|
||
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
2 Саныч - это как раз то, что я бы назвал "с правилами" - тут "другой" подход нужен. Эта ф-ция не более того, что заявлено - ПОСИМВОЛЬНАЯ замена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 20:03 |
|
||
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
а что? надо написать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 20:05 |
|
||
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
Я думаю, что это было бы несложно. Параметры я бы передавал в таком виде: абвгд abvgd жцч zhtsch щ sch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 20:11 |
|
||
|
функция для работы со строкой как массивом (интов)
|
|||
|---|---|---|---|
|
#18+
в общем, несложно - в виде метода класса - просто. Потом экземпляр класса обвернуть функцией. если "задаться построением" именно функции и никаких классов, придется РАЗРАБОТАТЬ ФОРМАТ строки передачи параметров. если не упьюся к вечеру - дым сойдет - может чего калякну - задачка - хороша, да и у меня, кажется применение ей, по крайней мере потенциальное, может найтись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 20:17 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32553468&tid=2169400]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 340ms |

| 0 / 0 |
