powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / комрады, не поскажите как почистить гарбич (Invalid characters) ... ?
6 сообщений из 6, страница 1 из 1
комрады, не поскажите как почистить гарбич (Invalid characters) ... ?
    #36329282
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток.

Имеетса возврат в виде string отформатированный в .xml

........
<Table diffgr:id="Table717" msdata:rowOrder="716">
<MemberId>754647</MemberId>
<Address>15553 Portland Drive</Address>
<City>Westfield</City>
</Table>
....

обратите внимание на <Address> ...

dw.importstring(xml!, ...) ругаетса именно там.

почистить дату перед возвратом из дб не возможно, нужно чистить непосредсвенно в скрипте пб.

как бы это поэлегантнее решить ??? буду признателен за любую наводку ...

спасибо
...
Рейтинг: 0 / 0
комрады, не поскажите как почистить гарбич (Invalid characters) ... ?
    #36329295
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после Portland Drive "& # x 2 ;" без пробелов и кавычек
...
Рейтинг: 0 / 0
комрады, не поскажите как почистить гарбич (Invalid characters) ... ?
    #36329971
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через файл или через строку вестимо
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
комрады, не поскажите как почистить гарбич (Invalid characters) ... ?
    #36330365
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
char lc_chars[]
string ls_output = ""
long ll_prev, ll_pos
// копирум строку посимвольно в массив для быстрого доступа к отдельным символам
lc_chars = as_input
// переносим в конечную строку не каждый символ, а блоками валидных символов,
// т.к. посимвольно - будет тормозить. Конец предыдущего блока = Начало блока -  1 .
ll_prev =  0 
For ll_pos =  1  To Len(as_input)
  // проверяем каждый символ
  If lc_chars[ll_pos] is garbage Then
    // если символ невалидный - завершаем блок 
    // и копируем его в результат (не включая текущий символ)
    ls_output += Mid(as_input, ll_prev, ll_pos - ll_prev -  1 ) 
    ll_prev = ll_pos
  End If
Next
ls_output = Mid (as_input, ll_prev, Len(as_input) - ll_prev)
Проверка на валидность может выглядеть так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Choose Case Asc(lc_chars[i])
Case Is >=  32 
   // valid
Case  10 ,  13  /* ну может еще 9 - табуляция, 12 - перевод страницы*/
   // valid
Case Else
  // invalid
End Choose
...
Рейтинг: 0 / 0
комрады, не поскажите как почистить гарбич (Invalid characters) ... ?
    #36331442
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voronk,

Народ на php во как элегантно делает, думаю и у нас можно:

Код: plaintext
1.
2.
Я прогоняю эту переменную через регулярку, дабы всякие шалуны не вздумали пихать туда что попало, такс, на всякий пожарный.

$q = preg_replace("/[^а-яА-Я\d\w\s]/iu", "", $q);

А вот и ссылка на всю статью, кому интересно: http://habrahabr.ru/blogs/php/76311/
...
Рейтинг: 0 / 0
комрады, не поскажите как почистить гарбич (Invalid characters) ... ?
    #36332151
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята большое спасибо, в частности комраду из Тамбова.

Проблема похоже не решаемая, так как анализировать по одному не совсем, если не сказать совсем не подходит, сами по себе каждый из предоставленных: # x 2 ; являютса valid, например 4566 Broad st. # 5

Вообщем пока тупо вылавливаю через дебагер строку с гавнецом и чиню её при помощи pos и replace

l_pos = Pos(s_post_str, "Nuñez") // "" "Nuñez" "Treviño" "Peña"

if l_pos > 0 then
s_post_str = Replace(s_post_str, l_pos, 5, "Nunez")
end if

i_rc = dw.ImportString(xml!, s_post_str, 1)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / комрады, не поскажите как почистить гарбич (Invalid characters) ... ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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