Страница: 1 |
Страница: 1 |
Вопрос: Как заставить TextBox нормально отображать данные?
Добавлено: 24.05.05 01:33
Автор вопроса: BV | ICQ: 302392161
Есть одна интересная проблема с TextBox’ом VB – если загрузить в него не простой текст, а бинарные данные (напр., содержимое рисунка), то отобразится лишь несколько символов, в то время как если открыть этот же рисунок в Notepad’е Windows, отобразятся все данные в файле! Подскажите, можно ли как-то сделать загрузку в TextBox всех бинарных данных?
Что характерно – если использовать RichTextBox, проблема исчезает.
НО! Мне нужен ИМЕННО TextBox.
А кодом для загрузки данных я пользуюсь этим:
Open strFileName For Binary Access Read As #n
Get #n, ,strData
Close #n
txtMain.Text = strData
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #1
Добавлено: 24.05.05 06:29
Чуть не по теме, но все равно:
Open strFileName For Binary Access Read Block WriteAs #n
Номер ответа: 2
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 24.05.05 10:50
TextBox обрезает NTS. Можешь разве что считать файл сначала в строку, затем пробежаться по ней Replace.
Номер ответа: 3
Автор ответа:
BV
ICQ: 302392161
Вопросов: 2
Ответов: 28
Профиль | | #3
Добавлено: 24.05.05 12:12
Спасибо за ответы.
NTS - это какие символы? Мне говорили про непечатные символы, которые TextBox заменяет квадратиками.
Можешь привести код такой замены, скажем, при чтении данных в TextBox из рисунка?
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 24.05.05 20:12
NTS - Non-typing symbols мб
Номер ответа: 5
Автор ответа:
Black Dragon
ICQ: 321186096
Вопросов: 30
Ответов: 347
Web-сайт:
Профиль | | #5
Добавлено: 24.05.05 21:07
TextBox не отображает Chr(0)
Номер ответа: 6
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #6
Добавлено: 25.05.05 10:49
Вообще я имел ввиду Null-Terminated Strings Но идея Sharp тоже неплоха.
Просто заменяй vbNullChar на какую-нибудь лабуду. Можешь вообще заменить все символы с кодами ниже 32. Только смысл? Обратно ведь не восстановишь.
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 25.05.05 22:16
Нетривиально, особенно если учесть, что они называются zero-terminated
Номер ответа: 8
Автор ответа:
BV
ICQ: 302392161
Вопросов: 2
Ответов: 28
Профиль | | #8
Добавлено: 26.05.05 00:17
2 LamerOnLine
Верно, я решил всё делать через замену символов с кодом меньше 32 (исключая 9, 10 и 13) на Chr$(26) (тоже квадратик, но TextBox не против... ).
Всем спасибо, вопрос закрыт.
Номер ответа: 9
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #9
Добавлено: 26.05.05 10:34
2Sharp
Разумеется, ты прав. Я просто над Microsoft прикалываюсь, это они их называют Null-Terminated )
Вообще все остальные тоже, но это к делу не относится. Будем все называть как ты