Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Проблема с передачей строки TextBox'у Добавлено: 27.05.03 12:36  

Автор вопроса:  Chill | ICQ: 554200 

Написал на Vb.NET функцию по конвертированию текста в другую кодировку. Вообщем работает она достаточно быстро. Вот.

Я беру текст из TextBox1 передаю его в строковую переменную strText, передаю strText в функцию по конвертированию, т.е.

strText= ReCodePage(strText, OldCP, NewCP).

Пока все нормально, все это действо занимает меньше секунды. ТЕПЕРЬ САМОЕ ГЛАВНОЕ TextBox1.Text = strText... все висюки секунд на 10 - 15 (текст передается очень медленно). Как это профиксить?

Народ, ПЛЗЗЗЗЗЗ, помогите!!!!!!!!!!

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
  Creator



Вопросов: 11
Ответов: 61
 Профиль | | #1 Добавлено: 27.05.03 13:25

Не совсем понятен твой трабл .....

Однако смутные сомнения, что с преобразованием не всё чисто .....

Ответить

Номер ответа: 2
Автор ответа:
 Chill



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
Автор ответа:
 USA



Вопросов: 1
Ответов: 184
 Профиль | | #3 Добавлено: 28.05.03 06:29

Может в функцию конвертера передать ссылку на TextBox.Text, это ведь такая же строковая переменная, уже инициализированная, и память для новой выделять не надо.

Ответить

Номер ответа: 4
Автор ответа:
 Chill



ICQ: 554200 

Вопросов: 101
Ответов: 343
 Профиль | | #4 Добавлено: 28.05.03 15:52

Нет, к сожалению, так тоже не получается, уже пробовал =((

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам