|
Как сконвертировать строку в требуемый вид Documents%20and%20Settings/%C4%E8%EC%E0/%D0...
|
|||
---|---|---|---|
#18+
Есть путь к файлу: C:\Documents and Settings\Дима\Рабочий стол\sanctuary.wav Правильная строка для IVR должна быть (это из лога, когда я подаю на вход только имя файла с путем, а конструируется все в C++ dll): "ivr:<?xml version="1.0"?><vxml version="1.0"><form id="PlayFile"><audio src="file:///C|/Documents%20and%20Settings/%C4%E8%EC%E0/%D0%E0%E1%EE%F7%E8%E9%20%F1%F2%EE%EB/sanctuary.wav"/><goto next="#PlayFile"/></form></vxml>" Но мне надо в нек. случаях сконструировать подобное выражение в VB6 и подать ivrXml целиком. Ну накатал ф-цию наспех: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ну и естественно накололся с приведенным вверху примером russian path: Код: c# 1. 2. 3. 4.
XML русский язык в чистом виде не ест, хочет хексы с процентами. Как эту абракодабру получить как он хочет? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 17:31 |
|
Как сконвертировать строку в требуемый вид Documents%20and%20Settings/%C4%E8%EC%E0/%D0...
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 17:48 |
|
Как сконвертировать строку в требуемый вид Documents%20and%20Settings/%C4%E8%EC%E0/%D0...
|
|||
---|---|---|---|
#18+
Дмитрий77, Данная функция приводит только к URL пути, ещё есть UrlEscape функция, но необходимую конверсию она не дала. Есть способ через ScriptControl вызывать JavaScript функцию encodeURIComponent , но она кодирует в UTF-8. По простому, можно как основу такую функцию взять и под себя делать. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 18:48 |
|
Как сконвертировать строку в требуемый вид Documents%20and%20Settings/%C4%E8%EC%E0/%D0...
|
|||
---|---|---|---|
#18+
VSVLAD, Я вашу идею понял, но ваш вариант для приведенного примера пути C:\Documents and Settings\Дима\Рабочий стол\sanctuary.wav выдаст Код: vbnet 1.
что не совсем соответствует нарисованному выше. Т.е. отсебятина еще та. Можно конечно допилить: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
и тогда получим то же самое, но если файл например называется intro_wav_out.wav то надо добавлять еще и _ в набор символов. Т.е. надо точно понимать механизм, иначе обязательно где-нибудь выстрелит. С другой стороны лишняя конвертация упомянутого _ в hex к ошибки не приводит, т.е. xml файл все одно найдет требуемый файл. Но не хотелось бы рассчитывать на авось. Хорошо бы воспроизвести именно то что делает ptlib. Но я смотрел эти цепочки кодов и ни фига пока не понял. Можно конечно подцепиться/дописать Opal API (все равно прога на этот environment завязана и мне это не сложно хотя и чуть громоздко) и вернуть напрямую Код: plaintext 1.
-тогда точно будет "что нады" без понимания что именно оно делает, но сдается мне это оч.дурной тон -перегружать телефонные API подобной фигней. Оно конечно не мультимедиа API, где я фактически дублирую опаловские C-шные коды чистыми VB6 кодами, но все же. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 19:52 |
|
Как сконвертировать строку в требуемый вид Documents%20and%20Settings/%C4%E8%EC%E0/%D0...
|
|||
---|---|---|---|
#18+
Нашел в каком месте C-шная библиотека это делает: Код: 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.
Не совсем правда понял какой case: используется в данном конкретном случае. По логике case PathTranslation : , но ; с-шный код тоже пропускает без изменений. Думаю безошибочный, избыточно полный вариант такой (lowalpha, upalpha дублировать смысла нет, т.к. Instr в данном виде регистр пофиг): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Во всяком случае файл с таким именем/путем (буквально): Код: plaintext 1.
съелся и проигрался без затруднений. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 21:00 |
|
|
start [/forum/topic.php?fid=60&fpage=68&tid=2157374]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 294ms |
total: | 428ms |
0 / 0 |