powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проверка строки на невидимые/непечатающае символы
13 сообщений из 13, страница 1 из 1
Проверка строки на невидимые/непечатающае символы
    #38844078
den_first
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Така проблема, в общем после долгой отладки есть длинная строка, из за которой проблемы в гриде при отображении.
Есть версия, что в этой строке есть невидимые/непечатающае символы.
Подскажите, есть ли метод, проверить (foreach) пробежаться по строке и найти эти невидимые/непечатающае символы?
Заранее спасибо!
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38844099
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
char.IsWhiteSpace, char.IsSeparator, метод Trim класса String (у экземпляра).
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38844133
den_first
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81char.IsWhiteSpace, char.IsSeparator, метод Trim класса String (у экземпляра).
я правильно понял, проверять
foreach (char c in MyString)
{
if (char.IsWhiteSpace(c) && char.IsSeparator(c))
{
// есть непечатный символ
}
}
и с Trim можна пояснить?
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38844335
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81char.IsWhiteSpace ... метод Trim класса String (у экземпляра).
Неудачный совет. Пробельные символы трудно назвать непечатаемыми.

Ilya81char.IsSeparator
Спорно. Он поймает LineSeparator и ParagraphSeparator, но одновременно поймает и пробел. Я бы скорее попробовал char.IsControl()

den_firstесть длинная строка, из за которой проблемы в гриде при отображении.
Выложи скриншот.

den_firstЕсть версия, что в этой строке есть невидимые/непечатающае символы.
Почему ты так решил? Откуда эта строка приходит? Строка читается в правильной кодировке?
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38844381
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что такое непечатный ещё определиться нужно

для начала убедиться, что Char.IsControl для каждого - ложь,
Char.IsSurrogate -ложь

если управляющих и суррогатных пар не окажется - смотреть дальше
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38844610
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
den_first,

Задача для регулярных выражений

В данном примере из строки удаляются все управляющие символы

Код: c#
1.
string s = Regex.Replace("Стро\r\nка 12_+ 343&;*&^", @"[^\P{Cc}]+", "");



Можно сконструировать любое множество символов из стандартных классов

http://msdn.microsoft.com/ru-ru/library/20bw873z(v=vs.110).aspx#NegativeCategoryOrBlock
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38845384
den_first
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо все, попробовал char.IsControl, было пару, убирал, не помогло.
Потом начал методом исключения, уменьшать строку, до тех пор пока будет корректна, нашел это место и символы последующие, при котором перестает отображаться строка, символы ничем не отличаются, притом, что я и свои набирал, проверил длину в нескольких случаях, строка валидна при 32000 символов, свыше стает невалидной , не отображается в гриде и при наведении на ячейку падает с error. Хотя когда тект из книги вставил, там 54000, то строка также валидна, а вот когда идет тест с символами ( Например:
(123456789012345678901234567890123456789012345678901234567890ffff); Bbbbbbbbbbbbbb [Company]; Bed, %34lookss (Watson & H111); BeeCont_________ (sklarArxCompanydd); belyi [Company]; belyi 21 (123456789012345678901234567890123456789012345678901234567890ffff); BFR [Company]; blast, D (Company 1387); bvv [Company]; C1228403850796 [Company]; C5 [Company]; Cain, Dean (Company 1387); Carey, Drew (Company 1387); Carol, Luis (Company 1387); C-C (D-D); Ccc [Company]; CGftMV7s, NYLijii8 (Company 1387); comm [Company]; commmm1 [Company]; .......)
и т.д., то падает при длине больше 32000

Есть ли огриничение по строке символов?
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38845569
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
den_first,

Вы серьезно думаете, что кому-то надо грид, где в ячейках текст по 32 000 символов, то есть. примерно 16 страниц текста?
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38845607
den_first
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2den_first,

Вы серьезно думаете, что кому-то надо грид, где в ячейках текст по 32 000 символов, то есть. примерно 16 страниц текста?

да, в этой ячейке содержаться приасаненные контакты, компании через запятую, есть другая формачка, где все это красиво разлаживается, но вот в таком виде тоже есть и что интересно, воспроизводится в Windows 8, в Windows 7 это все нормально отображается. У тестеров воспроизвелся на win 8, когда к митингу приасанино 1190 контактов и в гриде формируется строка через запятую названий этих контактов, процедура вытягивает эту строку, я ее вижу, в сорс передается, а вот в гриде не отображается и при наведении на эту ячейку падает с ошибкой

EXCEPTION MESSAGE: A generic error occurred in GDI+.

EXCEPTION TYPE: System.Runtime.InteropServices.ExternalException

EXCEPTION SOURCE: System.Drawing

STACK TRACE:
at System.Drawing.Graphics.MeasureString(String text, Font font, SizeF layoutArea, StringFormat stringFormat)
at Infragistics.Win.DrawUtility.MeasureStringHelper(Graphics gr, String text, Font font, Size layoutArea, StringFormat stringFormat, Int32& charactersFitted, Int32& linesFilled, Boolean returnElementsFitted, GdiDrawStringFlags drawStringFlags)
at Infragistics.Win.DrawUtility.MeasureString(Graphics gr, String text, Font font, Int32 width, GdiDrawStringFlags drawStringFlags)
at Infragistics.Win.DrawUtility.MeasureString(Graphics gr, String text, Font font, Int32 width, EmbeddableEditorOwnerBase owner, Object ownerContext)
at Infragistics.Win.EditorWithTextUIElement.IsDataFullyVisibleHelperCLR2(Boolean checkClipRect)
at Infragistics.Win.EditorWithTextUIElement.IsDataFullyVisibleHelper(Boolean checkClipRect)
at Infragistics.Win.EditorWithTextUIElement.get_IsDataFullyVisible()
at Infragistics.Win.UltraWinGrid.CellUIElementBase.CellToolTipHelper(ToolTipInfo& toolTipInfo)
at Infragistics.Win.UltraWinGrid.CellUIElementBase.CellElementToolTipItem.Infragistics.Win.IToolTipItem.GetToolTipInfo(Point mousePosition, UIElement element, UIElement previousToolTipElement, ToolTipInfo toolTipInfoDefault)
at Infragistics.Win.ControlUIElementBase.WillDisplayTooltipViaToolTipItem(UIElement elem)
at Infragistics.Win.UIElement.OnMouseHover()
at Infragistics.Win.ControlUIElementBase.NotifyMouseHover(UIElement element)
at Infragistics.Win.ControlUIElementBase.OnHoverTimer_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38845717
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
den_firstда, в этой ячейке содержаться приасаненные контакты, компании через запятую, есть другая формачка,
ну так прибиндить к формочке урезанное поле
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38845746
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Изопропилden_firstда, в этой ячейке содержаться приасаненные контакты, компании через запятую, есть другая формачка,
ну так прибиндить к формочке урезанное поле
+1.
Хотя вообще непонятно зачем пользователю то, что он не может нормально посмотреть?

" в этой ячейке содержаться приасаненные контакты, компании через запятую" - это в таком виде в базе хранится?
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38845769
den_first
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилden_firstда, в этой ячейке содержаться приасаненные контакты, компании через запятую, есть другая формачка,
ну так прибиндить к формочке урезанное поле


возможно, если бы знать, что эт из за длины, сейчас получился сценарий, когда я эту строку уменьшил, те убрал ряд контактов, получилась строка больше 32000 и нормально сохранилась. Те сценарий со строкой в 32000 не стабилен.
Поэтому вернусь к самому первому своему сообщению на то, что вероятно в этой строке какие то не валидные символы, из-за которых падает грид и как найти эти символы?
...
Рейтинг: 0 / 0
Проверка строки на невидимые/непечатающае символы
    #38845782
den_first
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Изопропилпропущено...

ну так прибиндить к формочке урезанное поле
+1.
Хотя вообще непонятно зачем пользователю то, что он не может нормально посмотреть?

" в этой ячейке содержаться приасаненные контакты, компании через запятую" - это в таком виде в базе хранится?

это в таком виде в базе хранится? в базе они нормально хранятся , один ко многим, один митинг- много контактов, а вот потом программно формируется строка через точку запятой
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проверка строки на невидимые/непечатающае символы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]