|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
Хочу получить имена всех файлов с FTP. Когда запускаю код на Windows 7 x32 Excel 2010, то все работает корректно, как только запускаю Windows 10 x64 Excel 2016, то получаю имя файла без первых 4 символов. Например на ftp файл физкультура.txt, на Windows 7 x32 Excel 2010 - результат "физкультура.txt", на Windows 10 x64 Excel 2016 -результат "ультура.txt". В чем может быть дело, подскажите. Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2019, 00:11 |
|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
м.б. InstrB, InstrW следует применять (т.к. разрядность систем различная, то и соотношение симоволов:байт будет другое)? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2019, 09:21 |
|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
ldfanate, Вам в принципе стоит добавить еще условного компилирования для 32/64 битности, в идеале получится 4 случая. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2019, 10:52 |
|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
На 64 разрядной системе при поэтапном просмотре выполнения кода, я вижу, что имя файла я получаю после выполнения кода Код: vbnet 1.
но почему не полное имя, не понятно. ldfanateм.б. InstrB, InstrW следует применять (т.к. разрядность систем различная, то и соотношение симоволов:байт будет другое)? Можете подсказать, где именно на моем примере можно использовать данные операторы. Честно, про InstrW вообще не нашел информации. iMrTidyldfanate, Вам в принципе стоит добавить еще условного компилирования для 32/64 битности, в идеале получится 4 случая. А можно поподробнее или ссылку? Если у кого-то есть еще какие-то варианты решения проблемы, напишите пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2019, 00:23 |
|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2019, 21:43 |
|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
ещё м.б. потому что из API-структуры в Private Function TrimNulls(buffer As String) строку передаёте не как ByVal (т.е. lpstr) а как ByRef, т.е. в формате bstr - там какраз первые 4 байта в 64-битных должен занять счётчик количества символов в строке, вот его наверное и отрезает, т.к. процедура не понимает, что ей на вход строка без счётчика передаётся из API. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 09:06 |
|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
Переделал немного код, нашел открытый ftp, чтобы было наглядно видно как работает код, может кто-то попробует решить эту проблему, перепробовал всё, что знал, ни чего не помогает. Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2019, 03:40 |
|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
ldfanateещё м.б. потому что из API-структуры в Private Function TrimNulls(buffer As String) строку передаёте не как ByVal (т.е. lpstr) а как ByRef, т.е. в формате bstr - там какраз первые 4 байта в 64-битных должен занять счётчик количества символов в строке, вот его наверное и отрезает, т.к. процедура не понимает, что ей на вход строка без счётчика передаётся из API. А как-то это можно подправить в коде? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2019, 03:43 |
|
Некорректное получение имен файлов с FTP
|
|||
---|---|---|---|
#18+
Bobax012, для 64-битного варианта просто откусите 4 недостающих байта из структуры, например, за счет dwReserved1. И везде вместо #If VBA7 нужно #If Win64 Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2019, 04:44 |
|
|
start [/forum/topic.php?fid=60&msg=39759615&tid=2154951]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 426ms |
0 / 0 |