Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.09.2014, 11:10   #41
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Лично я не знаю как решить твою проблему быстро без некоего компонента. который будет отрисовывать смайлы.
их и не нужно отрисовывать, достаточно выводить их код... мне главное чтобы декодировало с xml нормально...
FleXik вне форума
Старый 07.09.2014, 12:40   #42
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

посоветовали грузить в TMemoryStream а уже из него парсить, помогите реализовать пожалуйста... для отправки запросов юзаю функцию синапс а она типа string...
FleXik вне форума
Старый 07.09.2014, 15:26   #43
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,844
По умолчанию

Цитата:
Сообщение от FleXik Посмотреть сообщение
можно ли как-то решить эту проблему в Delphi 7?
Если проблема только в раскодировании 4-байтных последовательностей UTF-8, нужно взять более современную реализацию вместо штатной Utf8Decode из модуля System Delphi 7.
В разработке: воспроизводственный контур ИТ
Vapaamies вне форума
Старый 07.09.2014, 17:21   #44
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Если проблема только в раскодировании 4-байтных последовательностей UTF-8, нужно взять более современную реализацию вместо штатной Utf8Decode из модуля System Delphi 7.
конкретные примеры пожалуйста.
FleXik вне форума
Старый 07.09.2014, 18:36   #45
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,844
По умолчанию

Рабочую реализацию можно выдрать у меня из CoreStrings:
Код:
function FromUTF8(var Info: TStringInfo; Source: PLegacyChar; Count: Integer;
  Dest: PWideChar; DestOptions: TEncodeUTF16; ThresholdBytes: Integer): TNextLegacyChar;
Прозрачно поддерживает как 4-байтные последовательности UTF-8, так и CESU-8.

Можно и из исходников RTL Delphi XE+ взять, но оттуда тоже выдирать придется, т. к. там несколько функций, вызывающих друг друга.
В разработке: воспроизводственный контур ИТ
Vapaamies вне форума
Старый 08.09.2014, 00:47   #46
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

я конечно извиняюсь за наглость, но я понятия не имею как с этой функцией работать....
FleXik вне форума
Старый 08.09.2014, 00:53   #47
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

хотел бы получить пример... тем более подобных примеров в интернете нет, авось кому-то и пригодилось бы...
FleXik вне форума
Старый 08.09.2014, 01:24   #48
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,844
По умолчанию

А что если попробовать встроенный декодер Windows?
Код:
function DecodeLegacy(Source: AnsiString; CodePage: Word): WideString;
var
  Len: Integer;
begin
  Len := Length(Source);
  SetLength(Result, Len);
  SetLength(Result, MultiByteToWideChar(CodePage, 0, Pointer(Source), Len, Pointer(Result), Len));
end;

procedure TMainForm.Button3Click(Sender: TObject);
const
  Wink = #$F0#$AF#$98#$89;
begin
  MessageBoxW(Handle, Pointer(DecodeLegacy(Wink, CP_UTF8)), Pointer(WideString(Caption)), MB_ICONINFORMATION);
end;
Под XP работает.
В разработке: воспроизводственный контур ИТ
Vapaamies вне форума
Старый 08.09.2014, 02:44   #49
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Вот .xml документ, попробуйте декодировать, отпишите пожалуйста о результатах
Вложения
Тип файла: rar example.rar (306 байт, 6 просмотров)
FleXik вне форума
Старый 08.09.2014, 03:28   #50
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,844
По умолчанию

Цитата:
Сообщение от FleXik Посмотреть сообщение
Вот .xml документ, попробуйте декодировать
Самое удивительное, но:
Код:
procedure TMainForm.btFileClick(Sender: TObject);
var
  Doc: IXMLDocument;
begin
  Doc := TXMLDocument.Create(nil);
  Doc.LoadFromFile('example.xml');
  Memo1.Text := Doc.DocumentElement.ChildNodes['center'].ChildNodes['b'].NodeValue;
end;
Выводит в Memo1:
Цитата:
Вот пример этого квадратика который надо вывести в виде кода в Memo или записать в переменную типа string -> ??
Так и должно быть, поскольку "квадратик" нельзя представить в кодировке ANSI. То есть, штатный XML-парсер отрабатывает без глюков даже без дополнительных выкрутасов. Проверено под Delphi 6 SP3, Windows XP SP3. В системе стоит также обновление KB927977 (MSXML 6.0 Parser), но не знаю, влияет ли оно.
В разработке: воспроизводственный контур ИТ
Vapaamies вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача: есть БД с 2 файлами в которые записываются данные о квартирах, выбрать нужные данные lexa_7up Помощь студентам 4 11.01.2014 19:37
Memo - Enter в виде квадратика.. kta87 Общие вопросы Delphi 2 10.04.2012 14:19
Как упорядочить данные (перевести данные из стольбцов в строки)? opeck Microsoft Office Excel 3 21.11.2011 01:43
Не парсятся куки bulldog5293 Работа с сетью в Delphi 2 01.02.2011 20:15
Движение квадратика artemavd Общие вопросы Delphi 20 03.05.2010 08:49