Страница: 1 |
Вопрос: Проблема с передачей строки TextBox'у | Добавлено: 27.05.03 12:36 |
Автор вопроса: ![]() |
Написал на Vb.NET функцию по конвертированию текста в другую кодировку. Вообщем работает она достаточно быстро. Вот. Я беру текст из TextBox1 передаю его в строковую переменную strText, передаю strText в функцию по конвертированию, т.е. strText= ReCodePage(strText, OldCP, NewCP). Пока все нормально, все это действо занимает меньше секунды. ТЕПЕРЬ САМОЕ ГЛАВНОЕ TextBox1.Text = strText... все висюки секунд на 10 - 15 (текст передается очень медленно). Как это профиксить? Народ, ПЛЗЗЗЗЗЗ, помогите!!!!!!!!!! |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 11 Ответов: 61 |
Профиль | Цитата | #1 | Добавлено: 27.05.03 13:25 |
Не совсем понятен твой трабл ..... Однако смутные сомнения, что с преобразованием не всё чисто ..... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 554200 Вопросов: 101 Ответов: 343 |
Профиль | Цитата | #2 | Добавлено: 27.05.03 18:11 |
Ок. Может и с преобразованием. Вот код, если есть ошибка плз. сообщи. ' Функция по конвертированию текста, у меня в отдельном модуле Public Enum Code As Integer win = 1251 Dos = 866 koi = 20866 End Enum Public Function ReCodePage(ByVal strText As String, ByVal OldCP As Integer, ByVal NewCp As Integer) As String Dim targetEncoding As Encoding Dim encodedChars() As Byte Dim enChars() As Char encodedChars = Encoding.Convert(Encoding.GetEncoding(OldCP), Encoding.GetEncoding(NewCp), Encoding.GetEncoding(1251).GetBytes(strText)) enChars = Encoding.GetEncoding(1251).GetChars(encodedChars) Dim sb As New System.Text.StringBuilder(enChars) Return sb.ToString End Function 'Вот сама перекодировка текста, происходит при нажатии на кнопку Private Sub cmdReCode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdReCode.Click Dim OldCP, NewCP As Integer Select Case cboOldCP.SelectedIndex Case 0 ' cp866 OldCP = 866 Case 1 ' cp1251 OldCP = 1251 Case 2 ' KOI8-R OldCP = 20866 End Select '==================================================== Select Case cboNewCP.SelectedIndex Case 0 ' cp866 NewCP = 866 Case 1 ' cp1251 NewCP = 1251 Case 2 ' KOI8-R NewCP = 20866 End Select '==================================================== strBuildText = ReCodePage(strBuildText, OldCP, NewCP) f1.txtFile.Text = strBuildText Me.Hide() End Sub |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 184 |
Профиль | Цитата | #3 | Добавлено: 28.05.03 06:29 |
Может в функцию конвертера передать ссылку на TextBox.Text, это ведь такая же строковая переменная, уже инициализированная, и память для новой выделять не надо. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 554200 Вопросов: 101 Ответов: 343 |
Профиль | Цитата | #4 | Добавлено: 28.05.03 15:52 |
Нет, к сожалению, так тоже не получается, уже пробовал =(( |
Страница: 1 |
|