|
|
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat Массивы и TDictionary... Какая связь? Словарь - это частный случай ассоциативного массива. з.ы. Не спорь с Няшиком. Чувак берет сишную библиотеку с реализацией ассоциативного массива и на серьёзных щщах говорит, что это PHP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 15:44 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Няшик, а почему ты в функцию P(), ожидающую последовательность байт в UTF-8, передаешь последовательность в UTF-16? Подозреваю, что такие последовательности будут интерпретированы, как однобайтовые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 16:02 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey щщах говорит, что это PHP. ВсеРазумный php zend array ВсеРазумный zend array В любом случае это PHP массивы которые используются в интерпретаторе. Но я нигде не говорил что это чисты PHP интерпретатор. ВсеРазумный Разумеется с чистым общением ZendAPI без интерпретатора. Дабы знать на сколько поссосанная система в Delphi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 16:02 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Няшик, а почему ты в функцию P(), ожидающую последовательность байт в UTF-8, передаешь последовательность в UTF-16? Подозреваю, что такие последовательности будут интерпретированы, как однобайтовые Не Няшик. Всё верно понимаете, именно так и работает правильно. Так как строки там все array of byte в сях, костыль такой Код: 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. Ещё по этому, работает только так. Конвертация PAnsiChar в UTF8String что бы юникод отображался верно. Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 16:04 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Всё верно понимаете, именно так и работает правильно. Так как строки там все array of byte в сях, костыль такой Тогда давай результаты с преобразованием, а то у тебя все ключи получились односимвольными. Либо, если нет преобразований, делай тест контролирующий правильность заполнения массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 16:09 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Вот она заветная. Все строки - линейный массив. Именно так и получаем, и отдаём. Иначе будут кракозябры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 16:13 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey делай тест контролирующий правильность заполнения массива ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 16:14 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Код: pascal 1. Код: pascal 1. Отправляем на выполнение строку с юникодом, и говорим что бы он вывел в буфер через echo И буфер пишется в memo снизу под кодом выполнения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 16:19 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Няшик, ты тень на плетень не наводи. Давай тест контролирующий корректность заполнения массива строковыми значениями по строковым ключам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 17:27 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Он приведён. Если бы было некорректно заполнено, код не выполнился. Демонстрирую 3 вариант как это выглядит с другими типами - пример некорректного типа Вызываемая функция имеет char* Код: plaintext 1. Из чего мы можем предположить, что нужен PAnsiChar Ой, мимо. Кракозябры. Возможные варианты вызова (Первый самый правильный) Ну раз не PAnsiChar то возможно PWideChar ? Опять мимо! Заработал но опять же выдал syntax error Код: pascal 1. Ну и третий вариант объявить UTF8String и не парится. Всё работает 100% правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 17:45 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Просто офигенный пример корректной работы и правильного типа Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 17:51 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумныйпример корректной работы Вообще-то это называется "дуракам везёт", что у UTF8String совпадают адреса класса и внутреннего буфера. А ведь в приведении UTF8String к PUTF8Char могло быть и чуть-чуть больше compiler magic... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 17:56 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Там копирование идёт, что ты думал, ZendAPI даёт управлять память кому попало? Тыы смеешШшшНООоой)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 18:00 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov к PUTF8Char могло быть и чуть-чуть больше compiler magic... Код: pascal 1. ГенеААльно. Вообще даёт компилировать просто без приведений, но класс всё равно не находит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 18:01 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Няшик, твои пляски с EvalCode мимо кассы. EvalСode у тебя принимает параметры конкретного типа - Utf8String. Когда ты туда отдаёшь строку, дельфя её конвертирует и сишная dll получает сырой указатель на правильную последовательность. В случае с вызовом P() всё совсем по-другому - указатели отдаются на последовательность UTF-16 (а dll думает, что ей дают UTF-8), поэтому такая последовательность будет восприниматься, как односимвольная. В результате, в твоём массиве всего одна пара ключ-значение. Поэтому говорю ещё раз: делай тест корректности заполнения массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 18:09 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Всё корректно работает. Код: pascal 1. Тот же самый UTF8String void *RegPHPClass(const char *ClassName) Эта та же самая хэш таблица zend array она не даст соврать Если сделать PUTF8Char как сказал мудрец Dimitry Sibiryakov Fatal error: Uncaught Error: Class 'Test✔ClassНаРусском' not found in Test Runner:2 Stack trace: #0 {main} thrown in Test Runner on line 2 Обрати внимания, что он даже линию показал правильно. Что свидетельствует о верной передачи текста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 18:25 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
В принципе все исходники в шапке. Никому не проблема скачать и всё перепробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 18:27 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Не Няшик Я. Всё что НЕ UTF8String Не работает. Вы понимаете ??? Корректно - ничего. Не имеет смысла что - то менять и искать, если корректно работает UTF8String ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 18:42 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Ну вот, строки UTF8 а значит UTF8String это верное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 18:49 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Не Няшик Я Нам-то не гони! (с). ВсеРазумный Всё что НЕ UTF8String Не работает. Вы понимаете ??? Корректно - ничего. Не имеет смысла что - то менять и искать, если корректно работает UTF8String Ты вообще не понимаешь о чём я написал уже несколько раз? У тебя нет преобразований строк в UTF-8 при вызове P(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 18:59 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Си функции в принципе не могут принимать дельфиские строки. Никакие. Любая работа, выглядящая корректно - не более чем результат удачного совпадения и тщательно разложенные грабли на будущее. Только указатели: PAnsiChar, PUtf8Char, PWideChar. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 19:00 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, В dll и отдаётся указатель на первый символ строки т.ч. с этим тут проблем нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 19:06 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey У тебя нет преобразований строк в UTF-8 при вызове P(). Это и так было понятно КЭЭП по этому и используется UTF8String что бы строки изначально были UTF8String и автоматически string конвертировался в UTF8String без ручного процесса Если присвоить string к UTF8String то произойдёт вызов _LStrFromPWCharLen автоматической конвертации. Ты думал это дубой Си???? Где ты руками все типы манипулируешь. Ага.. Щасз Dimitry Sibiryakov Си функции в принципе не могут принимать дельфиские строки. Никакие. Любая работа, выглядящая корректно - не более чем результат удачного совпадения и тщательно разложенные грабли на будущее. Только указатели: PAnsiChar, PUtf8Char, PWideChar. Могут, ещё как. А как по твоему работают модельные библиотеки php_* ? Их писать можно на любом языке. Просто zend Api забирает себе строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 19:20 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39955999&tid=2038339]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 376ms |

| 0 / 0 |
