Прислали однажды текст написанный на русском но немного закодированный
на входе текст
CПOPУ НET, ФУНКЦИЯ НAПИCAНA ПO ВCEM ПPAВИЛAM И OНA КOPPEКTНO PAБOTAET, НO ВO3НИКAET OДНO "НO" - НO КAКOE ВPEMЯ 3AЙMET ЧИCTКA HTML-ДOКУMEНTA OT TEГOВ И ПPИ TOM ЧTEНИE OПPEДEЛEННOГO НAБOPA ATPИБУTOВ И3 ЭTИХ TEГOВ? TEM БOЛEE, ЧTO ФУНКЦИЯ НE ПPEДУCMATPИВAET ЧTEНИЯ ATPИБУTOВ, КCTATИ CКA3ATЬ. OCTAЛЬНЫE METOДЫ PAБOTЫ C HTML-ДOКУMEНTAMИ, В ПPИНЦИПE TOЖE НEДOCTATOЧНO КOPPEКTНO PAБOTAЛИ C TEMИ ДOКУMEНTAMИ, КOTOPЫE Я ИM ДAВAЛ НA PA3БOP. В ЧИCЛE ПPOЧИХ НEДOCTATКOВ MOЖНO ВЫДEЛИTЬ CЛEДУЮЩИE:
на выходе
СП0РУ НЕТ ФУНКЦNЯ Н4ПNС4Н4 П0 8СЕМ ПР48NЛ4М N 0Н4 К0РРЕКТН0 Р460Т4ЕТ Н0 80ЗНNК4ЕТ 09Н0 Н0 Н0 К4К0Е 8РЕМЯ З4ЙМЕТ ЧNСТК4 790КУМЕНТ4 0Т ТЕГ08 N ПРN Т0М ЧТЕНNЕ 0ПРЕ9ЕЛЕНН0Г0 Н460Р4 4ТРN6УТ08 NЗ ЭТNХ ТЕГ08 ТЕМ 60ЛЕЕ ЧТ0 ФУНКЦNЯ НЕ ПРЕ9УСМ4ТРN84ЕТ ЧТЕНNЯ 4ТРN6УТ08 КСТ4ТN СК4З4ТЬ0СТ4ЛЬНЫЕ МЕТ09Ы Р460ТЫ С 790КУМЕНТ4МN 8 ПРNНЦNПЕ Т0ЖЕ НЕ90СТ4Т0ЧН0 К0РРЕКТН0 Р460Т4ЛN С ТЕМN 90КУМЕНТ4МN К0Т0РЫЕ Я NМ 9484Л Н4 Р4З60Р 8 ЧNСЛЕ ПР0ЧNХ НЕ90СТ4ТК08 М0ЖН0 8Ы9ЕЛNТЬ СЛЕ9УЮЩNЕ
и обратно
кроме того заметил что в Delphi 7 при работе в Windows 7 не корректно работает вставка - заместо нормальной вставки выдает не читаемый текст
на сайте программистов нашел функцию для решения этой проблемы
procedure TextToClipboard(const sSrt:string); var N:Integer; mem:Cardinal; ptr:Pointer; begin with Clipboard do try Open; if IsClipboardFormatAvailable(CF_UNICODETEXT) then begin N:=(Length(sSrt)+1)*2; mem:=GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE,N); ptr:=GlobalLock(mem); Move(PWideChar(widestring(sSrt))^, ptr^,N); GlobalUnlock(mem); SetAsHandle(CF_UNICODETEXT,mem); end; AsText:=sSrt; mem:=GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE,SizeOf(dword)); ptr:=GlobalLock(mem); dword(ptr^):=(SUBLANG_NEUTRAL shl 10) or LANG_RUSSIAN; GlobalUnLock(mem); SetAsHandle(CF_LOCALE,mem); finally Close; end; end;
пример программы /kodirovka_soobshhenija_cherez_simvoly_dlja_mozga.zip
|