powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Конвертирование delphi string в javascript string
25 сообщений из 28, страница 1 из 2
Конвертирование delphi string в javascript string
    #39982698
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, как оказалось, javascript удаляет из строки спец. символы вроде косой черты и т.д.
В обще-то, это касается и JSON, т.к. Delphi код передает с помощью JSON данные во JS-фреймворк. Может в Delphi уже есть что-то готовое, т.к. работа с JSON в Delphi уже давно есть.
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982704
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 JS, наверное, ничего не удаляет
2 наверное, вопрос стоит не в конвертировании, а в форматировании данных как строки исходного кода JS или строки JSON
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982715
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я просто передаю виндовый путь а в браузере он отображается без слешей
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982717
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

обратный слэш в javascript используется для "экранирования". Чтобы записать в строке сам обратный слэш, надо перед ним поставить еще один такой. Как в паскале, чтобы одинарную кавычку в строку вставить, тоже две нужно написать.
https://learn.javascript.ru/string
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982718
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я это знаю и читал.
Я понимаю, что могу написать свой лисапет для всех специальных HTML/JS-символов.

НО
X11
Может в Delphi уже есть что-то готовое
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982737
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

не знаю, какая у тебя задача, какие именно символы и куда тебе нужно передавать, но в Дельфи есть вот такое:
http://docwiki.embarcadero.com/Libraries/Sydney/en/System.RegularExpressions.TRegEx.Escape
А в JavaScript есть свои функции/методы для обработки строк, можно ими обрабатывать входящую из Дельфи строку, если скрипт свой.
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982744
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но для пути
X11
я просто передаю виндовый путь а в браузере он отображается без слешей

наверное достаточно
Код: pascal
1.
s := StringReplace(s, '\', '\\', [rfReplaceAll]);
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982750
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так дело ж не только в разделителе пути. Он же не единственный спец. символ.
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982751
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть же стандартный парсер JSON в Delphi
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982753
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне не нужно парсить джейсон. Нужно конвертировать строку.

Ок, если там есть такая функция, то как она называется, не подскажите?

А дело может быть и не в JSON, и не в JS, а в HTML, потому что строка в конченом итоге выводится в какой-то визуальный HTML-компонент. Может быть из-за HTML проблема.
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982756
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
я просто передаю виндовый путь а в браузере он отображается без слешей
Давай код.

1. Что передаешь?
2. Как передаешь?
3. Как отображаешь?

Потому что все должно работать и так
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982766
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще в спеках JSON escape прямо прописан. Если данные корежатся после передачи - значит, энкодер кривой.

Как всегда, решение задачи методом декомпозиции. На каждом этапе "кодировка - передача - прием - раскодировка - отображение" добавить диагностику и смотреть, что за данные идут. Только смотреть средствами без неявных "обработок" спецсимволов, лучше всего в hex редакторе.
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982773
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Давай код.


ок, вот код (для UniGUI)

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
procedure PhotoInfoShow(UnimImage: TUnimImage);
var
  ImgSize: TImgSize;
  txt: string;
begin
  ImgSize.w := UnimImage.Picture.Width;
  ImgSize.h := UnimImage.Picture.Height;
  ImgSize.s := GetFileSize(UnimImage.Hint);

  txt := UnimImage.Hint + constHTMLTagBr +
         ExtractFileName(UnimImage.Hint) + constHTMLTagBr +
         ImgSize.w.ToString + 'x' + ImgSize.h.ToString + constHTMLTagBr +
         FloatToStrF(ImgSize.s / 1024, ffFixed, 8, 2) + ' Kb';


  UnimImage.JSInterface.JSCode(
  '    var sender='#1 + ';' +
  '    if (!sender.htmlTextEl) {' +
  '        sender.htmlTextEl = Ext.DomHelper.append(sender.element.select(''.x-innerhtml'').elements[0], {' +
  '            tag: ''div'',' +
  '            style: ''position:absolute; top:0; width:100%; height:auto; padding:10px; background:rgba(0, 0, 0, 0.3); font-weight:bold; color:white;'',' +
  '            id: sender.id + ''_textEl'',' +
  '            html: sender.htmlText' +
  '        });' +
  '    }' +
  '    sender.htmlTextEl.innerHTML = ' + QuotedStr(txt) + ';');

  UnimImage.Tag := 1;
end;



Проблема может быть в "htmlTextEl"
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982778
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Uses System.NetEncoding;

THTMLEncoding.HTML.Encode()
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982781
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat, не помогло

txt := THTMLEncoding.HTML.Encode(txt);
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982784
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Код: pascal
1.
'    sender.htmlTextEl.innerHTML = ' + QuotedStr(txt) + ';');

Так работать точно не будет.
1. Бекслеши нужно экранировать.
2. Апострофы нужно экранировать, а не удваивать, как это делает QuotedStr
3. Будем считать, что перевода строки txt не содержит

И ты не ответил еще на два вопроса: что передаешь и что отбражается?
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982785
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

ну всё правильно, javascript формирует innerHTML какого-то элемента html (htmlTextEl). В переменной txt есть незаэкранированные обратные слэши из UnimImage.Hint. Там, судя по
Код: pascal
1.
ExtractFileName(UnimImage.Hint)

- полное имя файла с путём. Эти незаэкранированные слэши не отображаются.
Но разве ещё какие-то спецсимволы в строке txt могут встретиться?

Или это один случай и есть еще другие такого типа, где передается строка из Delphi и могут встретиться спецсимволы и нужно общее решение?
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982786
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, так я об этом и говорю с самого первого поста
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982788
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62
Но разве ещё какие-то спецсимволы в строке txt могут встретиться?


пока только символ виндового пути, а что будет в будущем, я не знаю

есть картинка и нужно отобразить о ней всякую инфу: путь, имя, размер. Может быть в будущем ещё что-то из Exif.

Поэтому сейчас пытаюсь решить будущую проблему, чтобы потом не морочиться
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982794
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем так:
Код: pascal
1.
2.
3.
4.
5.
6.
Uses  ExtPascalUtils;
...
...
...

txt := StrToJS(txt);
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982889
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
txt := UnimImage.Hint + constHTMLTagBr +
         ExtractFileName(UnimImage.Hint) + constHTMLTagBr +
         ImgSize.w.ToString + 'x' + ImgSize.h.ToString + constHTMLTagBr +
         FloatToStrF(ImgSize.s / 1024, ffFixed, 8, 2) + ' Kb';


  UnimImage.JSInterface.JSCode(
  '    var sender='#1 + ';' +
  '    if (!sender.htmlTextEl) {' +
  '        sender.htmlTextEl = Ext.DomHelper.append(sender.element.select(''.x-innerhtml'').elements[0], {' +
  '            tag: ''div'',' +
  '            style: ''position:absolute; top:0; width:100%; height:auto; padding:10px; background:rgba(0, 0, 0, 0.3); font-weight:bold; color:white;'',' +
  '            id: sender.id + ''_textEl'',' +
  '            html: sender.htmlText' +
  '        });' +
  '    }' +
  '    sender.htmlTextEl.innerHTML = ' + QuotedStr(txt) + ';');


нах так жить
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39982917
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

не понял...
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39983428
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Для собирания js кода в дельфи точно ничего нет готового. Заменяй бекслеш на два бекслеша.
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39983445
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

я уже решил проблему - в uniGUI есть
22171843
...
Рейтинг: 0 / 0
Конвертирование delphi string в javascript string
    #39983462
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Это что, специально для extJs модуль?? ._О
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Конвертирование delphi string в javascript string
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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