Перейти к содержанию

Вся активность

Лента обновляется автоматически     

  1. Сегодня
  2. Добрый день. Из внешней системы приходит XML файл с кириллицей, но без хедера: <?xml version="1.0" encoding="windows-1251"?> Чтобы дальше всё корректно работало, добавляю хедер в коде самостоятельно: _di_IXMLDocument XMLDocument = NewXMLDocument(); TStringList *StringList = new TStringList(); StringList->LoadFromFile(FileName); // Загружаем сначала файл в StringList String XMLPrefix = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>"; StringList->Insert(0, XMLPrefix); // Добвляем в StringList первой (нулевой) строкой хедер //XMLDocument->LoadFromXML(StringList->Text); // - если делать так, то НЕ РАБОТАЕТ (в XML вставляет левую кодировку) !!! StringList->SaveToFile(FileName); XMLDocument->LoadFromFile(FileName); // - так РАБОТАЕТ и всё читает правильно delete StringList; // ... Собственно вопрос - как сделать так, чтобы XMLDocument->LoadFromXML работала корректно и читала данные в нужной кодировке? Примечание: на русскоязычной версии Windows все вроде бы работает корректно, но на сервере, где установлена англоязычная Windows, - читает не в той кодировке. При этом из файла XMLDocument->LoadFromFile всегда всё читает корректно! P.S. Пробовал устанавливать XMLDocument->Encoding = "windows-1251"; - не помогло
  3. Вчера
  4. Я бы проверил, какой межстрочный разделитель в проблемном pas-файле...
  5. Закрытие (падение) IDE Embarcadero RAD Studio Delphi при открытии конкретного исходного модуля кода Delphi (.pas) как в составе проекта так и просто открытие редактором среды без проекта. Ситуация воспроизведена на IDE: Embarcadero RAD Studio Delphi 10.2.3 Tokyo Embarcadero RAD Studio Delphi 10.3.3 Rio Открытие этого файла в IDE Lazarus не вызывает никаких проблем. Подскажите, пожалуйста, возможные причины и решение проблемы.
  6. Согласен, THTTPClient более удобен в использовании, чем Indy. Еще существенный плюс - поддержка ssl из коробки, не нужно ничего дополнительно ставить. У Indy на андроиде 6+ с этим проблемы
  7. а.. вот еще что: THTTPClient сам кодирует строку запроса, без всякой дополнительной фигни... очень хороший объект... реализованный просто замечательно... Client:=THTTPClient.Create; var Response:=Client.Get('http://fire-monkey.ru/topic/6993-закодировать-строку-в-utf8-для-передачи-в-get-запросе/#comment-40498'); if Response.StatusCode=200 then ... Client.Free;
  8. Последняя неделя
  9. Дык вроде там в примере они и используют TCameraComponent, нет? (сейчас еще раз смотреть буду) По поводу той либы что я нашел и указал выше - Kastri - там нативная поддержка камеры с аппаратным ускорением, но пока либа сырая и при частом запросе кадров на обработку - виснет - хз, как быстро автор её допилит. Про распознавание простых цифр - для простоты используйте OpenCV, можно и обертку java либ сделать и юзать в Андроид, например (я так сделал, хотя есть даже уже готовая обертка на гитхабе, а можно самому запустить утилиту Java2Op и она обернёт)
  10. S:=TNetEncoding.URL.EncodeQuery('http://fire-monkey.ru/topic/6993-закодировать-строку-в-utf8'); ...и вам вполне подойдет THTTPClient для любых запросов...
  11. Переделал только немного под себя, чтобы строку в ответ выдавал function TForm1.Get(const ASession: TIdHTTP; const AUrl: string):string; begin result:=ASession.Get(ASession.URL.URLEncode(AUrl)); end;
  12. А вот это работает корректно!!! Спасибо большое!!!
  13. странно, но почему-то такая конструкция упорно ставит первым символом /. То есть возвращает '/http://firemonkey.ru..... Естественно запрос не отрабатывается
  14. В .ViewportPositionChange поменяйте HScrollBar.SmallChange := MyllWidth; VScrollBar.... Значение постоянно сбрасывается при смене ViewPort, поэтому во ViewportPositionChange
  15. Во здесь неплохо сделано превью с камеры: https://github.com/Spelt/ZXing.Delphi В разы быстрее чем с TCameraComponent (у меня до 30 fps доходит в зависимости от разрешения). Тут конечно речь идет про распознавании штрих-кодов, но в целом там идет обработка битмэпа, поэтому можно заставить находить любой шаблон, если знать как работать графикой. У меня к сожалению обработка графики совсем на начальном уровне. Хотел заставить разбирать простые буквенные сроки (инвентарный номер), но как это сделать не смог нигде найти. Но как сканер штрих-кодов - работает великолепно. P.S. Если есть у кого-то примеры распознавания с битмэпа строки печатных букв и цифр, прошу кинуть ссылкой в ЛС, или здесь (если это не будет считаться офтопом).
  16. вообще запрос с русскими буквами выглядит примерно так: fire-monkey.ru/topic/6993-%D0%B7%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83-%D0%B2-utf8-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B8-%D0%B2-get-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B5/ Используйте это: uses System.NetEncoding; ... S:=TNetEncoding.URL.EncodePath('http://fire-monkey.ru/topic/6993-закодировать-строку-в-utf8');
  17. Олег, не получается. Нельзя при отрисовке перемещаться по DataSet. Вот мой код. Я перемещаюсь по датасету dsList на позицию строки. Хочу закрасить фон ячейки "наименования" значением, полученным из базы данных. Но получается чехарда, курсор начинает перемещаться по гриду хаотично. А точнее "липнет" к низу отрисованной области грида. procedure TListFrame.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates); begin if Column.Header = 'НАИМЕНОВАНИЕ' then begin dsList.RecNo := Row + 1; Canvas.Fill.Color := dsListCOLOR.AsInteger; Canvas.FillRect(Bounds,0,0,AllCorners,1); end; end; У грида есть модель. Я пробовал так: Grid1.Model.GetValue(8, Row, true).AsInteger; Колонка номер 8 в гриде - это цвет, она не видимая. Но значение получить не удается. Хотя я при создании фрейма прописываю: Grid1.Model.DataStored := true; Не понимаю как это должно работать, раньше было проще... P.S. Все-таки удается через модель, но как же это не удобно! По имени колонки нельзя обратиться, так как имен у колонок нет...
  18. попробуй вот так: procedure Get(const ASession: TIdHTTP; const AUrl: string; const AResult: TStringStream); begin ASession.Get(ASession.URL.URLEncode(AUrl), AResult); end; где AUrl - твой урл с параметрами
  19. Делаю программу-сканер. Открывается видео с камерой и идет поиск и распознавание требуемого шаблона на изображении. Использую TCameraComponent, но он довольно медленный (+ у меня идёт работа с OpenCV и всё довольно уныло выглядит). Понимаю, что с нативным компонентом камеры должно быть пошустрее? В сети нашел класс, расширяющий TextureView... (набор компонентов Kastri) Вообще, может кто подскажет куда копать, что делать в этом направлении? Благодарности)
  20. bytes := BytesOf(s1); bytes:=TEncoding.Convert(TEncoding.Default,TEncoding.UTF8,bytes); s2 := StringOf(bytes); Пробовал еще вот так, перебирал кодировки - ничего не помогло(((
  21. Доброго времени суток! Помогите плиз, чет я запарился, не могу найти решение. Мне нужно сделать GET запрос к серверу с параметрами, содержащими русские буквы. Примерно вот такой 'method=update&OrderNum='+ordernum+'&FieldName='+grid.Columns[ACol].Header+'&FieldValue='+ UTF8Encode('русские буквы'); Запрос передаю через idHTTP. UTF8Encode не работает, или я им пользоваться не умею. Подскажите, как правильно сделать?
  22. Здравствуйте. Я сначала становлюсь на нужную строку вот так: ADOQuery1.Locate('Nomer',bsSkinEdit1.Text,[loPartialKey, loCaseInsensitive]); Где Nomer - имя поля а bsSkinEdit1.Text искомое значение поля. С Уважением.
  23. Как в событии DrawColumnCell получить данные из невидимой колонки TGrid? Для оформления ячейки требуются данные из DataSet, связанного с Grid через LiveBinding, но из другого поля. Все дело в том, что DataSet при событии DrawColumnCell не находится на той же позиции, что и рисуемая ячейка.
  24. Приложение не собирается на SDK 14 в IDE. Собирается на SDK 13.7 но летят ацесы, причем на Андроиде все работает отлично. А дебагер не работает на устроствах с SDK 14 и выше. - может вышел патч для IDE, что бы собиралось под последней SDK iOs или хотя бы можно было дебажить ? - какая комбинация SDK, Xcode нужна для сборки и выкладывания в апстор Сегодня?
  25. Нашел ответ, может кому понадобится. VertScrollBox1.AniCalculations.TouchTracking := []; На функцию не перекрытия клавиатурой поля ввода не влияет, для чего он и используется.
  26. Может кому пригодится при переходе. В новом файле info.plist.TemplateiOS.xml добавилась еще одна строчка <%StoryboardInfoPListKey%>
  27. uses iOSapi.Foundation, FMX.Helpers.iOS, iOSapi.UIKit, Macapi.CoreFoundation, Macapi.Helpers; procedure OpenURL(const URL: string); var _NSUrl: NSURL; begin _NSUrl:=TNSUrl.Wrap(TNSUrl.OCClass.URLWithString(NSStr(URL))); SharedApplication.openUrl(_NSUrl); end;
  28. Встал вопрос о запуске внешнего браузера на IOS как внешнее приложение.. на андроид - без проблем, через намерения.. и взяло сомнение - а на IOS как ? нужно просто открыть адрес во внешнем браузере..
  1. Загрузить ещё активность
×
×
  • Создать...