|
|
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Программа компилируется без ошибок. Но почему при попытке сделать Find Declaration вываливает ошибку: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 17:29 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Прописать в юните {$mode delphiunicode} помогло, но не понятна причина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 17:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatПрописать в юните {$mode delphiunicode} помогло, но не понятна причина. Свойства с названием "Buffer" нет случайно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 17:53 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Можно ли сделать что бы Undo в редакторе лазаря работало как в дельфях? Т.е. что бы при нажатии Ctrl+Z не выполняло откат сразу же а сначала переходило на позицию где будет сделан откат, если ее не видно на экране? Такое поведение было очень удобно для навигации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:04 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatТакое поведение было очень удобно для навигации. Для навигации назад там Ctrl+H; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:10 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Блин, почти максимально удаленные друг от друга кнопки на клавиатуре. Я себе пальцы сломаю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:22 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Перенастрой хоткей, там можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:39 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, А в SysUtils в FPC принципиально неюникодный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:43 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatА в SysUtils в FPC принципиально неюникодный? Что ты имеешь ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:48 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:49 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Как я понял {$H+} приводит к String = AnsiString; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:51 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
А {$MODE objfpc} оверрайдит {$mode delphiunicode} который я выставил в проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:52 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, H+, как и в дельфях, это переключение с дефолтных shortstring на т.н. longstrings, т.е. со статических строк на динамические. В дельфях это сейчас по дефолту и дефолтные строки UnicodeString, в фпц всё несколько сложнее. UnicodeString там пока не дефолтные, и вообще, в разных юнитах дефолтные строки могут быть разными. То есть, в одном юните string может означать AnsiString, а в другом UnicodeString. Насколько я помню, в RTL все эти приколы разруливаются благодаря использованию RawByteString. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 18:57 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
А как там вообще реализовано использование строк в RTL? Какая кодовая страница будет использована при переходе с юникода к анси? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 19:37 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, ощущение, что фпц усиленно пилят в сторону макс. совместимости с юникодными дельфями. Отсюда и эти прыжки в сторону (уход от нативной в никсах UTF8 в UTF16 с кучей "конвертирующих" функций), и обещания разделения редакций Лазаря отдельно на utf8 и utf16, и тупое копирование дельфей (тот же TEncoding), и проч. "трихомундия"©. Сейчас же все просто: в винде строки (если не уверен в кодировке) гоняешь туда-сюда при помощи WinCpToUTF8/UTF8ToWinCP, в никсах - все нативное. Красота :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 08:21 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док, UTF8 так-то не особо удобная кодировка. Например, есть у тебя произвольная строка в UTF8 - как быстро узнать её длину в *символах*? А никак, тупо распарсить полностью. Плюс операции вроде if s[10] = 'a' {lat} then s[10] := 'a' {cyr}; - это ад для UTF8. Так что UTF16 самое оно. Где его не хватает - UTF32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 10:16 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ИМХО где UTF8 может быть оправдана - это каналы передачи данных, БД и прочие места, где критично занимаемое место, а сами строки почти никогда не изменяются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 10:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpДок, UTF8 так-то не особо удобная кодировка. Например, есть у тебя произвольная строка в UTF8 - как быстро узнать её длину в *символах*? А никак, тупо распарсить полностью. Это не так :) С утф8 как раз все просто и понятно. И обычно достаточно для большинства языков, если ты не пишешь программы на тайском или суахили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 12:17 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
15.10.2019 10:16, alekcvp пишет: > > Так что UTF16 самое оно. нихера ни разу. в UTF16 тоже есть суррогатные пары. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 12:58 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийнихера ни разу. в UTF16 тоже есть суррогатные пары. Суррогатные пары есть даже в AnsiString, насколько я помню. Но речь-то не про них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 13:03 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ДокЭто не так :) С утф8 как раз все просто и понятно. И обычно достаточно для большинства языков, если ты не пишешь программы на тайском или суахили Что не так? Вот есть у тебя дельфийская строка - у неё длина в символах равна длине в байтах/размер символа. А как определить длину строки UTF8 с латиницей и кириллицей вперемешку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 13:05 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpСуррогатные пары есть даже в AnsiString, насколько я помню Мультибайт это не суррогатные пары. alekcvpЧто не так? Вот есть у тебя дельфийская строка - у неё длина в символах равна длине в байтах/размер символа Вот это и не так. Суррогатная пара требует два кодпоинта, и преобразована она будет в один. Все кодпоинты за пределами BMP будут кодироваться суррогатными парами. Но это всё равно проще, чем чекать все последовательности UTF-8. UTF-8 не для обработки строк - строго для хранения и передачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 13:20 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Да уж работать с utf8 это почти также геморно как работать с base64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 13:40 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Вот сколько кодю, ни разу не понадобилось узнавать, что же за символ по конкретному индексу в строке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 14:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2Вот сколько кодю, ни разу не понадобилось узнавать, что же за символ по конкретному индексу в строке... Что, ни разу не использовали конструкцию s[x] := ... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 14:55 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpА как определить длину строки UTF8 с латиницей и кириллицей вперемешку? я не совсем тебя понял, тебе что надо-то в конце концов? Длину "дельфийской" строки в Лазаре? Юзай UTF8Length из LazUTF8. Если тебе надо посимвольно, то ищешь посредством UTF8Pos(первый аргумент может быть и строкой, и Char'ом). Если побайтно, то загоняй свою строку в RawByteString и ползай по ней, куда угодно. Там все аналогично дельфям :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 15:06 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2Вот сколько кодю, ни разу не понадобилось узнавать, что же за символ по конкретному индексу в строке... ну, не скажи. Неужели ни разу строку не парсил? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 15:07 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ДокДлину "дельфийской" строки в Лазаре? Юзай UTF8Length из LazUTF8. Ну вот и сравни скорость этой функции с дельфийской Length(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 15:22 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
15.10.2019 15:22, alekcvp пишет: > Ну вот и сравни скорость этой функции с дельфийской Length(). ога. а тёплое сравни с мягким. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 15:49 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpНу вот и сравни скорость этой функции с дельфийской Length(). так тебе шашечки или ехать? © Для нафига тебе посимвольный доступ? Хочешь быстро, заполняй строкой массив байт и вперде. Будет работать гарантированно на любой кодовой странице. Правда, возни больше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 16:58 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2, повезло. у нас - то сплошь и рядом. utf8 в лазаре знатно добавил работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 17:21 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Доктак тебе шашечки или ехать? © Если продолжить аналогии то Utf18 - такси с шашечками, а Utf8 - велосипед "чтобы ехать". У лучше на такси. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 17:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonutf8 в лазаре знатно добавил работы Что вам мешает использовать UnicodeString? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 17:54 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpЧто, ни разу не использовали конструкцию s[x] := ... ? Обычно этот х не берется с потолка, а как-то вычисляется. соответственно без разницы, какой будет этот х, и какой вообще формат строк - utf8, ansi или utf16 - итоговый код одинаков для всего. Докну, не скажи. Неужели ни разу строку не парсил? :) Парсил конечно, но как-то так получалось, что все служебные символы были ANSI и проверялись в цикле, а все остальные заглатывались скопом. Типа такого (полу-псевдокод) Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 18:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexeymakhaonutf8 в лазаре знатно добавил работы Что вам мешает использовать UnicodeString? По-хорошему, тогда уж UCS4String. Иначе один фиг суррогатные пары могут добавить веселья ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 18:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonutf8 в лазаре знатно добавил работы Дим, если не секрет, где конкретно и на какой платформе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 18:40 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2По-хорошему, тогда уж UCS4String. Иначе один фиг суррогатные пары могут добавить веселья UCS4 для всего это слишком жирно, но в определённых сценариях вполне себе вариант. А с суррогатами в UTF-16 всё довольно просто, буквально пара условий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 18:46 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2Типа такого (полу-псевдокод) Без UTF8...-аналогов сомневаюсь. На никсах прокатит, а на винде - фиг, если только строка не явно 1-байтовая. Попробуй сам, "погуляй" отладчиком в виндовом Лазаре по String'у - он будет 2х-байтовым :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 18:48 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
На самом деле, по-хорошему, для переносимого кода работа с char должна быть строго ограничена ansi диапазоном. Все остальные случаи должны использовать функции типа GetCharAt или GetNextChar, возвращающие UCS4, либо строки. Например - делаем мы функцию Split с разделителем-символом на Delphi со строками в utf16. Всё было хорошо, пока кто-то не захотел расщепить строку по символу 1F708 ALCHEMICAL SYMBOL FOR AQUA VITAE. И всё, облом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 18:49 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ДокВасилий 2Типа такого (полу-псевдокод) Без UTF8...-аналогов сомневаюсь. На никсах прокатит, а на винде - фиг, если только строка не явно 1-байтовая. Попробуй сам, "погуляй" отладчиком в виндовом Лазаре по String'у - он будет 2х-байтовым :) В смысле, в чем сомневаешься? Код универсальный под любую кодировку строк. Про отладчик в Лазаре не напоминай... это боль и страдания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 18:53 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2Код универсальный под любую кодировку строк. в этом. Попробуй сделать под виндой Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Потом поделишься впечатлениями :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 19:10 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2Например - делаем мы функцию Split с разделителем-символом на Delphi со строками в utf16. Всё было хорошо, пока кто-то не захотел расщепить строку по символу 1F708 ALCHEMICAL SYMBOL FOR AQUA VITAE. И всё, облом. Это вопрос элементарного дизайна: Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 20:14 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док, на линукске. у нас довольно много обработки строк посимвольно. кровушки попило, но уже вылизали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 21:54 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2Обычно этот х не берется с потолка, а как-то вычисляется. соответственно без разницы, какой будет этот х, и какой вообще формат строк - utf8, ansi или utf16 - итоговый код одинаков для всего. Код в программе - да, а вот под капотом: UTF16 - пишем новый символ на место старого, UTF8 - при замене латинского символа на кириллицу, например, там будет куча операций, потому что под кириллицу надо больше места, чем под латиницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 22:32 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Код: 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. Изображения на диске не прозрачные а черные. Что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 22:46 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
И еще вопрос. Можно ли как нибудь настроить удаленную отладку на headless линуксе из винды? Желательно без ручного запихивания каждый раз запускаемого файла и кучи телодвижений. Хотелось бы как в дельфях с PAServer-ом. Ну или "хотя бы как". Что куда ставить и жать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 22:49 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Первый вопрос снимаю, сам разобрался. Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 22:52 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Докв этом. Попробуй сделать под виндой Так я о том же, что у меня лично никогда не встречалось необходимости привязываться к конкретным индексам символов. Имхо, это только в софте из разряда редакторов требуется. alekcvpКод в программе - да, а вот под капотом: UTF16 - пишем новый символ на место старого, UTF8 - при замене латинского символа на кириллицу, например, там будет куча операций, потому что под кириллицу надо больше места, чем под латиницу. Так в utf16 ты тоже в общем случае не можешь быть уверен, что заменяемый либо заменяющий символ не является суррогатной парой. Т.е., по большому счету, закладываться на это надо всегда, чтобы потом через пару лет не словить неприятный Ой. Да даже нельзя быть уверенным, что WideString[N] - это именно N-й символ (правильнее, codepoint). Просто итерация по utf16 чуть быстрее и проще, но по-прежнему необходимо перебирать всю строку, чтобы найти N-й символ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 09:54 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2Да даже нельзя быть уверенным, что WideString[N] - это именно N-й символ (правильнее, codepoint). Это всё из-за богомерзких эмодзи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 10:14 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2, Кстати, почитал тут интернетики и выяснил, что почти все стандартные функции C# не умеют работать с суррогатными парами, как и дельфийские. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 10:28 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpпочти все стандартные функции C# не умеют работать с суррогатными парами Что такое "суррогатные пары"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 10:31 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
wadmanalekcvpпочти все стандартные функции C# не умеют работать с суррогатными парами Что такое "суррогатные пары"? https://ru.stackoverflow.com/questions/575494/Что-такое-unicode-и-как-с-ним-связана-utf-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 10:45 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpВасилий 2, Кстати, почитал тут интернетики и выяснил, что почти все стандартные функции C# не умеют работать с суррогатными парами, как и дельфийские.вот по этому я за utf-8, с ним явно приходится применять все разборы, а не надеяться на то что прокатит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 12:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
wadmanЧто такое "суррогатные пары"? Тролль! kealon(Ruslan)вот по этому я за utf-8 Про большому счету, наверное, нет разницы с utf16, если писать проект с нуля. Все равно придется поменять специальные функции для работы со строками или явно приводить к однобайтовым. Но вот старый код переделывать - это ахтунг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 13:08 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)с ним явно приходится применять все разборы... Ну да, когда секса в жизни не хватает, этот вариант самое оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 13:28 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexeykealon(Ruslan)с ним явно приходится применять все разборы... Ну да, когда секса в жизни не хватает, этот вариант самое оно.да бросьте вы, пара итераторов никого не убили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:15 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Kazantsev Alexeyпропущено... Ну да, когда секса в жизни не хватает, этот вариант самое оно.да бросьте вы, пара итераторов никого не убили В C++ тоже поначалу так думали. Теперь итераторы захватили мир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:21 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ёёёёёВ C++ тоже поначалу так думали. Теперь итераторы захватили мир.есть "сложность", есть способ её спрятать не вижу никаких проблем, ну за исключением того что надо знать как всё внутри крутится, но мы ж прогарммисты или кто? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:25 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)ёёёёёВ C++ тоже поначалу так думали. Теперь итераторы захватили мир.есть "сложность", есть способ её спрятать не вижу никаких проблем, ну за исключением того что надо знать как всё внутри крутится, но мы ж прогарммисты или кто? Это да, мы лучше всех, не убавить, ни прибавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:26 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)да бросьте вы, пара итераторов никого не убили Итераторы это медленно. И ради чего, собственно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:38 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpВасилий 2, Кстати, почитал тут интернетики и выяснил, что почти все стандартные функции C# не умеют работать с суррогатными парами, как и дельфийские. Вполне допускаю, кажущаяся простота utf16 на это провоцирует. utf8 действительно вынуждает закладываться на все случаи и использовать правильные средства ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:55 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Что никто не знает? "Можно ли как нибудь настроить удаленную отладку на headless линуксе из винды? Желательно без ручного запихивания каждый раз запускаемого файла и кучи телодвижений. Хотелось бы как в дельфях с PAServer-ом. Ну или "хотя бы как". Что куда ставить и жать?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 15:32 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Я не пользовался, но первая строчка из гугла ведёт сюда: https://wiki.freepascal.org/Remote_Debugging ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 15:43 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpКстати, почитал тут интернетики и выяснил, что почти все стандартные функции C# не умеют работать с суррогатными парами, как и дельфийские. Ничего не скажу на счёт C#, но в дельфийской RTL проверка на суррогатные пары есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 15:56 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Докkealon(Ruslan)вот по этому я за utf-8 Про большому счету, наверное, нет разницы с utf16, если писать проект с нуля. если эти строки пойдут куда-то дальше, наверное, есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 16:05 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexeyrgreat, Я не пользовался, но первая строчка из гугла ведёт сюда: https://wiki.freepascal.org/Remote_Debugging Я там был но ответа не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 16:19 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyalekcvpКстати, почитал тут интернетики и выяснил, что почти все стандартные функции C# не умеют работать с суррогатными парами, как и дельфийские. Ничего не скажу на счёт C#, но в дельфийской RTL проверка на суррогатные пары есть. И что, Length() корректную длину возвращает? Pos() тоже их учитывает? Copy()? Delete()?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 19:25 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpИ что, Length() корректную длину возвращает? Pos() тоже их учитывает? Copy()? Delete()?.. Эти функции оперируют не символами и даже не кодпоинтами, а элементами из которых состоит строка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 20:13 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Что такое "элемент" строки в этом контексте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 20:21 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatЧто такое "элемент" строки в этом контексте? For single-byte and multibyte strings, Length returns the number of bytes used by the string. Example for UTF-8: Writeln(Length(Utf8String('1¢'))); // displays 3 For Unicode (WideString) strings, Length returns the number of bytes divided by two. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 20:23 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatТрешак. Дока. Но если угодно, можно сказать что юникодовые состоят из двухбайтовых элементов, которые можно считать символами UCS-2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 20:36 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Вот, кстати, ссылочка, где прямо говорится об элементах строк: http://docwiki.embarcadero.com/RADStudio/Rio/en/Unicode_in_RAD_Studio#New_String_Type:_UnicodeString Characters in UTF-16 may be 2 or 4 bytes, so the number of elements in a string is not necessarily equal to the number of characters. If the string has only BMP characters, the number of characters and elements are equal. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 20:46 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyНо если угодно, можно сказать что юникодовые состоят из двухбайтовых элементов, которые можно считать символами UCS-2.Меня печалит то что работа функции Length не постоянна. Ладно бы она всегда выдавала кол-во символов, или всегда количество байт. Можно было бы писать нормальный код. Но в текущей реализации это "скажи привет" условной компиляции и миллиону ifdef. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 21:02 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat> Но в текущей реализации это "скажи привет" условной компиляции и миллиону ifdef. Можно же свою написать, зачем директивы втыкать. P.S. Не знал, что кто-то использует UCS. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 21:17 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, rgreatЛадно бы она всегда выдавала кол-во символов Каких символов? Нормализованных? В какой форме нормализации? rgreatили всегда количество байт Размер в байтах без ифдефов и условной компиляции: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 21:25 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatKazantsev Alexey, Что такое "элемент" строки в этом контексте? Kazantsev Alexey, Ну то есть сферическими конями в вакууме. Если для UTF-8 она возвращает хотя бы длину строки в байтах, то для UnicodeString она вообще бесполезна получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 22:04 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpНу то есть сферическими конями в вакууме. Нет. alekcvpто для UnicodeString она вообще бесполезна получается Почему бесполезна и чем лучше размер в байтах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 22:13 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyПочему бесполезна и чем лучше размер в байтах? А какой толк от функции, которая возвращает длину строки не в байтах и не в символах?.. Это как возвращать размер прямоугольника на экране не в пикселах и не в сантиметрах, а в енотах. Причём каждый енот разной длины (суррогатные пары), если тебе нужен точный размер (кол-во символов) - всё равно придётся заново линейкой померять (распарсить). А если в байтах - то зачем было на 2 умножать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 22:52 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Кстати, про Pos() написано: Pos searches for Substr within S and returns an integer value that is the index of the first character of Substr within S. Pos is case-sensitive. If Substr is not found, Pos returns zero. Она суррогатные пары учитывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 22:54 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpА какой толк от функции, которая возвращает длину строки не в байтах и не в символах?.. Это как возвращать размер прямоугольника на экране не в пикселах и не в сантиметрах, а в енотах. Причём каждый енот разной длины (суррогатные пары), если тебе нужен точный размер (кол-во символов) - всё равно придётся заново линейкой померять (распарсить). Я и тебя спрошу о символах. Каких символов? Нормализованных? В какой форме нормализации? Без ответа на этот вопрос тебе даже UTF-32 не поможет. alekcvpОна суррогатные пары учитывает? Для подобной функции это не проблема, они будут учитываться без прилагания каких либо усилий. И как я уже говорил, можно считать, что: юникодовые состоят из двухбайтовых элементов, которые можно считать символами UCS-2 Если быть ещё более точным, то это кодпоинты BMP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 23:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexeyrgreat, Каких символов? Нормализованных? В какой форме нормализации? Char, SizeOf(Char) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 23:44 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatChar, SizeOf(Char) А сейчас не количество чаров возвращается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 23:50 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Я-то откуда знаю. Я неделю на лазаре пишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 00:13 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Но судя по твоему "Writeln(Length(Utf8String('1¢'))); // displays 3" - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 00:14 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatНо судя по твоему "Writeln(Length(Utf8String('1¢'))); // displays 3" - нет. Так Utf8String - это байтовая строка. С чего бы Length должна возвращать количество Char для байтовой строки??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 00:22 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Потому что UTF8 не байтовая строка. Это строка с вариативным размером char. По законам здравого смысла Length строки должен выдавать количество символов в ней. А s[n] возвращать символ под номером n. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 01:08 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Для выявления же размера в байтах по хорошему надо использовать нечто вроде System.SysUtils.ByteLength(s). Особенно в случае UFT8 и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 01:11 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatПотому что UTF8 не байтовая строка. Это строка с вариативным размером char. Ты не фантазируй, а на декларацию типа смотри. Она байтовая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 01:22 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Они все в памяти "байтовые". Только суть от этого не меняется. Раз уж строка состоит из разных видов char то по этим char к ней и надо по логике вещей доступ делать. Это будет универсально а не как нынче с зоопарком подходов. А с байтами надо бы работать через байты а не через индекс символа в строек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 01:27 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatОни все в памяти "байтовые" Вопрос можно было бы ставить таким образом, если бы эта адресуемость не была публичным интерфейсом. Но она такая, какая есть. Вот юникодовые строки они не байтовые, хотя "в памяти...". rgreatРаз уж строка состоит из разных видов char В том то и дело, что состоит она из однобайтовых элементов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 01:36 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Да я в курсе что в дельфе UTF8String это вообще AnsiSting. Только радоватся этому я смысла не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 01:54 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatДа я в курсе что в дельфе UTF8String это вообще AnsiSting. Оно и в FPC так. rgreatТолько радоватся этому я смысла не вижу. А я не вижу смысла сокрушаться по этому поводу. Могу повторить ещё раз - UTF-8 не для манипуляций со строками, это компактная кодировка для хранения и передачи юникода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 02:03 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Так-то оно так, но чем тогда UTF8String лучше обычного TBytes? Нафига он такой ущербный нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 03:20 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatKazantsev Alexey, Так-то оно так, но чем тогда UTF8String лучше обычного TBytes? Нафига он такой ущербный нужен?лишние сущности это плохо, а невыделенная сущность это ещё хуже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 09:11 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatТак-то оно так, но чем тогда UTF8String лучше обычного TBytes? Нафига он такой ущербный нужен? Используй UTF8Lenght() vs Lenght(), UTF8Pos() vs Pos()... Что-то мешает этому? Они корректно работают что с UTF8String(AnsiString(CP_UTF8)/RawByteString(AnsiString(CP_NONE)), что co String (которая в винде ведет себя, как 2-байтовая AnsiString, а в линуксе [ если я правильно помню ] - как 1-байтовая). Еще бы я посоветовал глянуть сюда и сюда . Возможно, это внесет какую-то ясность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 09:34 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
было (Delphi), стало (FPC) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Приходится два кода держать, да и вообще неуднобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 10:54 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Length возвращает количество элементов , что соответствует поведению массивов, хоть со стороны на первый взгляд и может показаться непривычным. К тому же, повторюсь, есть очень мало случаев, когда требуется получать именно конкретный кодпоинт. В подавляющем большинстве применений if s[i]='Ы' then ... или if Pos('Гы', s) <> 0 then... или что-то вроде - всё это будет прекрасно работать и без заморочек с плавающими длинами кодпоинтов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 10:57 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonбыло (Delphi), стало (FPC) Потому что пора бы оторваться от алгоритмов детского сада и копировать кусками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 10:59 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonбыло (Delphi), стало (FPC) Кстати, а в чем вообще проблема? Символы из набора ", #0..#9, #11, #12, #14..#20 заменяются на пробелы, так? Но ведь и составляющие суррогатной пары, и первый байт любого кодпоинта utf8 имеют особые значения, которые не перепутаешь с символами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 11:04 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2makhaonбыло (Delphi), стало (FPC) Потому что пора бы оторваться от алгоритмов детского сада и копировать кусками То есть еще существенно усложнить обработку в обоих случаях? Можно. Но результат станет еще хуже. Хоть и работать будет лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 11:19 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatТак-то оно так, но чем тогда UTF8String лучше обычного TBytes? Нафига он такой ущербный нужен? Ну, например, у codepage aware строк есть COW и поддержка элементарных строковых функций, что может быть полезно при разработке, например, http сервера или клиента (для обработки заголовков не требуется переводить их в юникод-строку только для того чтобы выполнить некоторые проверки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 12:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonПриходится два кода держать, да и вообще неуднобно Что вам мешает использовать UnicodeString в FPC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 12:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonПриходится два кода держать, да и вообще неуднобно. И насколько я понимаю, этот дельфийский код работал бы без переделок даже для Utf8String. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 12:48 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonТо есть еще существенно усложнить обработку в обоих случаях? Можно. Но результат станет еще хуже. Хоть и работать будет лучше. Нет, при использовании фрагментов строк вместо символов код будет один. Хотя и этот нормально работает на любых строках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 14:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, авторЧто вам мешает использовать UnicodeString в FPC? Так еще больше править - код один и пришлось бы все string'и менять на какие-то свои с дефайнами. авторНет, при использовании фрагментов строк вместо символов код будет один. Хотя и этот нормально работает на любых строках Лучше с кодом. Что-то не могу представить как можно сделать один код и для дефолтных string'ов delphi и fpc без дефайнов или как у меня - просто двух кусков кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 15:54 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonТак еще больше править - код один и пришлось бы все string'и менять на какие-то свои с дефайнами. Пишешь {$mode delphiunicode} или {$modeswitch unicodestrings}, если нужен диалект fpc, и ничего править не нужно - дефолтные строки становятся юникодовыми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 16:11 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonЧто-то не могу представить как можно сделать один код и для дефолтных string'ов delphi и fpc без дефайнов или как у меня - просто двух кусков кода. Приведённый тобою дельфийский код одинако работоспособен с любыми типами дефолтных строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 16:15 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, это да. однако все api в линухе как было utf8 строки, так и останется. ну и придется лепить прокладки. так как я сейчас сделал - получились минимальные правки. когда строки в лазаре станут по дефолту как в делфи, то получится вообще один код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 16:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, авторПриведённый тобою дельфийский код одинако работоспособен с любыми типами дефолтных строк. Увы, не работало. пришлось переписывать. Ну не от хорошей жизни же правил :) Работало бы - нафиг я бы это все трогал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 16:19 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonоднако все api в линухе как было utf8 строки, так и останется. ну и придется лепить прокладки У тебя там много работы непосредственно с API? Да и какие прокладки, конвертирование строк делается простым приведением типа. К слову, у FPC в RTL многие функции (не все) имеют перегруженные варианты для трёх типов строк: unicode, utf8 и rawbytestring. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 16:21 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonУвы, не работало. пришлось переписывать. Я конечно не проверял, но у тебя там заменяемые символы не выходят из диапазона ASCII. Ни один спец символ используемый для кодирования последовательностей utf8 не будет заменён (т.к. все они имеют старший бит установленный в единицу), следовательно последовательности нарушены не будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 16:26 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, авторУ тебя там много работы непосредственно с API? Да и какие прокладки, конвертирование строк делается простым приведением типа. К слову, у FPC в RTL многие функции (не все) имеют перегруженные варианты для трёх типов строк: unicode, utf8 и rawbytestring. Хватает всякого, кода полмиллиона строк. авторЯ конечно не проверял, но у тебя там заменяемые символы не выходят из диапазона ASCII. Точно не работало. Впрочем можно попробовать перепроверить. Ну и это не единственное место. Просто относительно простое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 16:31 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Кусочки веселушки равномерно рзамазаны по коду: Код: pascal 1. 2. Везде по чуть-чуть. Общая картина далека от радостной. Но работает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 17:06 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonКусочки веселушки равномерно рзамазаны по коду: Код: pascal 1. 2. Везде по чуть-чуть. Общая картина далека от радостной. Но работает :) Ох ё... мало того что бессмысленно это, ибо и так работает, так еще и сделано максимально коряво. Вместо того, чтобы плодить дефайны, сделали бы NativeStrPos, которая бы мапилась на соответствующую функцию из RTL и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 17:12 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2так еще и сделано максимально коряво. зато, как красиво! В одну строку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 17:16 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2Ох ё... Эт точно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 17:21 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Согласен. Нормальные строки решат весь ох е... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 18:26 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Что ж, если человек желает продолжать плодить говнокод, то медицина тут бессильна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 19:43 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2то медицина тут бессильна не обижай зря человека. ИМХО, иногда воркэраунд целесообразнее, чем замена свечей на работающем двигателе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 21:45 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Докне обижай зря человека. ИМХО, иногда воркэраунд целесообразнее, чем замена свечей на работающем двигателе. От преумножения говнокода целесообразнее не становится, а ведь кому-то в нем еще и ковыряться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 10:20 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2, повторюсь: строки нормальные станут - говнокод выкину. а так то как быстрое решение работает. были бы нормальные строки, проблемы бы вообще не было. уже, видно, что и в лазаре (fpc) наконец осознали и правят. и, да, ковырять больше кроме меня этот кусок некому, можешь не беспокоиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 10:40 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonстроки нормальные станут - говнокод выкину. а так то как быстрое решение работает. были бы нормальные строки, проблемы бы вообще не было. Строки и так нормальные... Единый код: Delphi 10.3: Lazarus 2.1 (trunk) {$mode delphiunicode}: Lazarus 2.1 (trunk) {$mode delphi}: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 12:14 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
наконец пошел код, а не голословные набросы на вентилятор. у меня так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Ставлю бряк перед ShowMessage Win/Delphi показывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 14:24 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
финально на винде все ок: [Window Title] Project7 [Content] тест т.т. [OK] на убунте сообщения не видно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 14:28 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
в delphiunicode - все ок на убунте, как и ожидалось ждем этот режим дефолтно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 14:32 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
из наблюдений по поводу delphiunicode. большая часть всех строчных функций дефолтно несовместима с delphiunicode режимом. ладно бы просто api, хотя и оно все несовместимо. что бы далеко не ходить - ShowMessage: unit1.pas(53,15) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 14:39 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaon, Говнокод из палаты мер и весов работать и не должен. Если ты закладываешься на то, что символ юникода уместится в одну кодовую позицию строки - ты огребаешь. C utf-8 или utf-16 - не имеет значения (с utf-16 тебе просто везёт больше, т.к. он закрывает весь BMP. Будут там суррогаты, и эти строки для тебя окажутся "неправильными"). makhaonunit1.pas(53,15) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString" Где тут проблема? На линуксе дефолтная кодовая страница utf-8, т.ч. приведение UnicodeString к AnsiString ни к чему ужасному не приведёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 15:00 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexeyт.к. он закрывает весь BMP т.к. его одиночные кодовые позиции закрывают весь BMP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 15:02 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaon, +1 Я тоже пока не понимаю оптимизма про юникод. Все utf8, все вручную с явным приведением типов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 15:06 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
для своих границ применения этих строк и кода достаточно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 15:21 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
авторГде тут проблема? На линуксе дефолтная кодовая страница utf-8, т.ч. приведение UnicodeString к AnsiString ни к чему ужасному не приведёт. то есть - работа с кодовыми позициями utf16 это говнокод, а куча варнингов по коду - это все отлично? ясно-понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 15:25 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonа куча варнингов по коду - это все отлично? ясно-понятно. Компилятор хочет от тебя явного приведения типа - чтобы убедиться, что ты знаешь, что делаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 16:12 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaonавторГде тут проблема? На линуксе дефолтная кодовая страница utf-8, т.ч. приведение UnicodeString к AnsiString ни к чему ужасному не приведёт. то есть - работа с кодовыми позициями utf16 это говнокод, а куча варнингов по коду - это все отлично? ясно-понятно. А я не смотрю на ворнинги. Что на них смотреть. Компиляции не мешают. То одни, то другие. Со времён Delphi 3 много кода, что-то поменялось, стало "деприкатет". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 17:42 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ёёёёёА я не смотрю на ворнинги. Что на них смотреть. Компиляции не мешают.Я бы за это как минимум лишал премии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 17:57 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatёёёёёА я не смотрю на ворнинги. Что на них смотреть. Компиляции не мешают.Я бы за это как минимум лишал премии. Да ну. У нас премии на результат и сроки, а не за красоту кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 18:01 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ёёёёё, Хуяк хуяк и в продакшн! (с) ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 18:28 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Отличные последствия того что RTL живет в UTF8: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 18:45 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Упс. AnsiUpperCase в AnsiUpperCase, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 18:46 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Зачем ты это написал??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 20:04 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Потому что: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 20:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
И да, действительно "даталосс". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 20:28 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatИ да, действительно "даталосс Весь код покажи, и что именно теряется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 20:46 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Код: 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. 30. 31. 32. 33. 34. ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:13 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, {$mode delphiunicode} Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: pascal 1. 2. Выводит: Код: plaintext 1. Подсовываю обертку AnsiUpperCase - все норм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:19 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Код корявенький, конечно, но я его почти 20 лет назад такой написал. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:24 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatПодсовываю обертку AnsiUpperCase - все норм. Этот код должен выглядеть так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Псевдоним типа исключительно для того, чтобы потом, когда RTL станет полностью UTF-16, заменить AnsiString на UnicodeString; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Т.е. вот так? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:42 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
А чем UTF8Decode/UTF8Encode не катят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:43 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Кстати, "когда RTL станет полностью UTF-16" RTLString да и вообще эти костыли не понадобятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:44 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatТ.е. вот так? Можно и так, да. rgreatА чем UTF8Decode/UTF8Encode не катят? Ну если хочется потом это ещё раз переписать, можно и их использовать. Просто, когда в RTL будут дефолтные строки utf-16, цена тайп-каста станет нулевой, а ручное конвертирование будет продолжать делать уже ненужную работу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:51 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Когда RTL будут дефолтные строки utf-16 это все вообще не понадобиться. И уж лучше тогда сделать хуки на RTL функции. Так можно будет основной код не трогать. -------- По TextOut не подскажешь? Как включить у TLazIntfImage/TLazCanvas поддержку текста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 21:53 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Можно вообще пользоваться функциями TCharacter, например TCharacter.ToUpper(); rgreatПо TextOut не подскажешь? NotImplemented; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 22:05 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyNotImplemented;Привет, приехали. (с) Нафига нужен канвас в котором нет вывода текста?! Блин, ну ты и диверсант! Зачем ты мне его посоветовал? Я уже неделю код под него адаптирую! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 22:15 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatБлин, ну ты и диверсант! Зачем ты мне его посоветовал? Ты не говорил, что тебе текст будет нужен. Впрочем, я всё равно не знал, что там оно не реализовано. Тебе же, наверняка, просто подписи простенькие нужны? Сделай алфавит из картинок и всё :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 22:25 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyТебе же, наверняка, просто подписи простенькие нужны? Сделай алфавит из картинок и всё :) Как бы нет. У меня рендер картографии. ;) Но я вот тут некие костыли нашел: https://wiki.lazarus.freepascal.org/fcl-image#Drawing_text ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 22:26 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Я нашёл пример к этому пакету: https://github.com/graemeg/freepascal/blob/master/packages/fcl-image/examples/textout.pp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 22:31 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Что-то у меня не выходит приделать перегрузку операторов. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 21:52 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Добавлял, удалалял {$mode delphiunicode} - не помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 21:57 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreatЧто-то у меня не выходит приделать перегрузку операторов. Как? А справку почитать? Delphi allows certain functions, or "operators", to be overloaded within record declarations . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 21:57 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvp, А, блин, туплю, это FPC :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 21:58 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Код: pascal 1. 2. 3. 4. Но такой синтаксис только для диалекта {$mode objfpc}, если выбираешь диалект дельфей то и синтаксис должен быть дельфийским. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 22:03 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Спасибо, разобрался. Как бы прикрутить implicit автоперекодировку из TFPColor в cardinal, если TFPColor - рекорд в другом модуле, а в текущем модуле - $Mode Delphi ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 22:10 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Полагаю, можно вынести оператор в другой модуль с диалектом fpc и подключать в требуемом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 22:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Прикольные игры с диалектами паскаля в одном проекте. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 22:28 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Почему нет, у fpc, кстати, ещё и тайп-хелперы множественные допускаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 22:36 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Ну я тут внезапно выяснил что в дельфях тоже можно несколько хелперов иметь. Родив наследника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 23:49 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Это совсем другое, сильно круче. В дельфийской доке вообще указано, что хелпер может иметь ancestor list, что, как бы, намекает... Однако, упс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2019, 01:02 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Как такое может быть? Установил пакет Indy10. Там есть ZLib. IDE по клику на типе переходит а компилятор не находит, даже если явно юнит указать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 18:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Решил проблему добавление каталога с ZLib в Other Unit Files. Но непонятно почему такое происходит? Почему не видно сорцов установленного пакета, и где это настраивается в IDE? В дельфе я могу прописать в IDE пути к библиотекам глобально, а в лазаре как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 21:14 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Руками в notepad-e? А раздел какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 23:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Поставил Indy 10. Пакет установился без ошибок. Стоит добавить в проект пакет indylaz - проект перестает линковатся. Compile Project, Mode: Windows, Target: Test1.exe: Exit code 1, Errors: 11 Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\adler32.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\compress.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\crc32.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\deflate.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\infback.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\inffast.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\inflate.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\inftrees.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\trees.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\uncompr.obj Test1.lpr(115,1) Error: Illegal COFF Magic while reading C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\zutil.obj Win x64. Если вручную копирую объектные файлы: copy C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\x86_64-Win64-ZLib\*.obj C:\Lazarus-Linux\fpcsrc\rtl\Indy10\Protocols\ZLib\*.obj Выдает: Compile Project, Mode: Windows, Target: Test1.exe: Exit code 1, Errors: 50 Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomPage Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomNotebook Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomImageListResolution Test1.lpr(115,1) Error: Undefined symbol: WSRegisterMenuItem Test1.lpr(115,1) Error: Undefined symbol: WSRegisterMenu Test1.lpr(115,1) Error: Undefined symbol: WSRegisterMainMenu Test1.lpr(115,1) Error: Undefined symbol: WSRegisterPopupMenu Test1.lpr(115,1) Error: Undefined symbol: WSRegisterDragImageListResolution Test1.lpr(115,1) Error: Undefined symbol: WSRegisterLazAccessibleObject Test1.lpr(115,1) Error: Undefined symbol: WSRegisterControl Test1.lpr(115,1) Error: Undefined symbol: WSRegisterWinControl Test1.lpr(115,1) Error: Undefined symbol: WSRegisterGraphicControl Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomControl Test1.lpr(115,1) Error: Undefined symbol: WSRegisterScrollingWinControl Test1.lpr(115,1) Error: Undefined symbol: WSRegisterScrollBox Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomFrame Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomForm Test1.lpr(115,1) Error: Undefined symbol: WSRegisterHintWindow Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomScrollBar Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomGroupBox Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomComboBox Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomListBox Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomEdit Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomMemo Test1.lpr(115,1) Error: Undefined symbol: WSRegisterButtonControl Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomButton Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomCheckBox Test1.lpr(115,1) Error: Undefined symbol: WSRegisterToggleBox Test1.lpr(115,1) Error: Undefined symbol: WSRegisterRadioButton Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomStaticText Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomLabel Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomBitBtn Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomSpeedButton Test1.lpr(115,1) Error: Undefined symbol: WSRegisterShape Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomSplitter Test1.lpr(115,1) Error: Undefined symbol: WSRegisterPaintBox Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomImage Test1.lpr(115,1) Error: Undefined symbol: WSRegisterBevel Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomRadioGroup Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomCheckGroup Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomLabeledEdit Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomPanel Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomTrayIcon Test1.lpr(115,1) Error: Undefined symbol: WSRegisterStatusBar Test1.lpr(115,1) Error: Undefined symbol: WSRegisterTabSheet Test1.lpr(115,1) Error: Undefined symbol: WSRegisterPageControl Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomListView Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomProgressBar Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomUpDown Test1.lpr(115,1) Error: Undefined symbol: WSRegisterCustomToolButton ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2019, 21:40 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, с таким уровнем вопросов лучше стучаться в основной буржуйский форум (а еще лучше, в mailing list), где трутся основные разрабы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 18:28 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Печаль. Я думал тут кто-нибудь инди под лазаря юзал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 19:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
В основном лазарьцы на синапсе сидят, кмк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 19:39 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, да нормально вроде синапс работает. дописанный вариант, к слову: https://github.com/Makhaon/Ararat-Synapse ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 22:42 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Я раньше на Delphi то же Indy юзал, как на Lazarus перешел, давно это было, Инди с ходу не взлетел, поэтому заморачиваться не стал и перешел на Синапс и не разу не пожалел. Почту отсылает-принимает, с http, ftp работает, у меня интеграция сделана с личным кабинетом Почты России, Боксберри, СДЭК, все работает абсолютно без проблем. Ещё на Синапсе TCP сервер сделал, у меня программа через него со станком общается, выдает задание, получает результат. Ну и само собой синапс работает на любой платформе, программа с ним и на Линуксе заведется и Маке и на ARM-Линуксе. Зря Вы от него нос воротите. Стоит попробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 10:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
А синапс разве не забросили? http://synapse.ararat.cz/doc/ChangeLog.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 12:51 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerА синапс разве не забросили? http://synapse.ararat.cz/doc/ChangeLog.html Кто-то забросил, кто-то подхватил. Там и так код вылизанный и минимальный в сравнении от... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 12:55 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Вот тут посвежее, отсюда беру: https://sourceforge.net/projects/synalist/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 12:56 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
В своё время выбирал между Indy, synapse и OverbyteIcs. Делал поддержку системы платежей CreditPilot. Синапс не подошёл, т.к. периодически он зависал на вызовах https. С OverbyteIcs зависаний не было, поэтому на нём остановился. Жалею, что тогда Indy не обновил до актуальной версии, может быть и с ним бы всё пошло (на старой версии каждый https-Запрос выполнялся более секунды). OverbyteIcs не особо нравится, всё асинхронно, работать с email очень тяжело, как реализовать TCP-сервер, который формирует ответы сложнее "hello, world", так и не удалось выяснить, а все их демки как раз уровня "hello, world". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 12:59 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerOverbyteIcs не особо нравится, всё асинхронно, работать с email очень тяжело, как реализовать TCP-сервер, который формирует ответы сложнее "hello, world", так и не удалось выяснить, а все их демки как раз уровня "hello, world". Ничего особо тяжелого. Пора осваивать асинхронное мышление, блокировки уже не в моде. Тем более что там куча высокоуровневых классов для всех мыслимых протоколов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 13:47 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Впрочем, для одного-двух соединений и разветвлённого протокола в стиле запрос-ответ*N асинхронная модель в самом деле может оказаться избыточной. Иногда жалею, что в одной своей программе решил использовать асинхронную модель для FTP. Нахлебался с ней порядочно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 14:06 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2DmSerOverbyteIcs не особо нравится, всё асинхронно, работать с email очень тяжело, как реализовать TCP-сервер, который формирует ответы сложнее "hello, world", так и не удалось выяснить, а все их демки как раз уровня "hello, world". Ничего особо тяжелого. Пора осваивать асинхронное мышление, блокировки уже не в моде. Тем более что там куча высокоуровневых классов для всех мыслимых протоколов. Асинхронное программирование на Паскале это не тоже самое, что на c#, JavaScript и других языках с поддержкой async / await. Пусть уж лучше будут блокировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 23:41 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerС OverbyteIcs зависаний не было, поэтому на нём остановился. Кстати, уже довольно давно касперский почему-то очень агрится сильно на ссылки для скачивания ICS... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 00:19 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerВасилий 2пропущено... Ничего особо тяжелого. Пора осваивать асинхронное мышление, блокировки уже не в моде. Тем более что там куча высокоуровневых классов для всех мыслимых протоколов. Асинхронное программирование на Паскале это не тоже самое, что на c#, JavaScript и других языках с поддержкой async / await. Пусть уж лучше будут блокировки.как либу + какой-то базовый RTL к ней напишешь так и будет не вижу никаких причин вводить для этого синтаксический сахар, текущих языковых возможностей с лихвой хватает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 00:47 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)как либу + какой-то базовый RTL к ней напишешь так и будет не вижу никаких причин вводить для этого синтаксический сахар, текущих языковых возможностей с лихвой хватает В целом мне хватает Indy. С нею стиль программирование такой же удобный, как в C# / JavaScript при использовании async/await. Разница только в том, что в Indy на каждое подключение выделяется отдельный поток, а при async/await потоки выделяются при необходимости, один поток может обслуживать десятки подключений. В другой стороны, потоки в Delphi намного легче, чем потоки в C# / JavaScript. В Delphi при создании потока выделяется порядка 16КБ ОЗУ (+ ещё 16КБ, если Windows 64-битный, а прога 32-битная). Таким образом, установить несколько тысяч потоков (если и прога и ОС - 64-битные) - не проблема. Важно с таким количеством потоков избегать использование Sleep (особенно Sleep(0)), иначе планировщик задач Windows загнётся. Не знаю, сколько подключений можно установить на C# с его async/await. Скорее всего больше, чем в Indy (а может и меньше, тупо может начать тормозить основной поток, из которого на практике вероятнее всего начинаются await-вызовы из-за того, что будет быстро заполняться очередь сообщений у потока). В этом плане лучше всего GoLang - у него нет потока, у которого может заполнится очередь сообщений и он начнёт тормозить при её обработке, поэтому без проблем может держать десятки тысяч подключений, причем ему для этого хватит лишь несколько десятков потоков Worker. Правда, у него есть поток диспетчеризации, который раскидывает задачи (горутины) между тредами и копирует куски стека, в него всё может упереться. Вроде такую же вещь сделали и в котлине - скрестили оба подхода - там и аналог async/await и копирование кусков стека корутин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 09:21 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSer В Delphi при создании потока выделяется порядка 16КБ ОЗУ (+ ещё 16КБ, если Windows 64-битный, а прога 32-битная). Таким образом, установить несколько тысяч потоков (если и прога и ОС - 64-битные) - не проблема. А стек на каждую нить почему не учел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 14:25 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSer, Насколько мне известно, под нагрузкой Go упирается в GC, поэтому сейчас идут работы над его (GC) улучшением. ёёёёёА стек на каждую нить почему не учел? Даже с дефолтным размером стека на 32-битах можно создать чуть более 1900 потоков. Если размер стека для нитей ограничить, то это значение будет ещё больше. Переход на 64 бита решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 16:06 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ёёёёёDmSer В Delphi при создании потока выделяется порядка 16КБ ОЗУ (+ ещё 16КБ, если Windows 64-битный, а прога 32-битная). Таким образом, установить несколько тысяч потоков (если и прога и ОС - 64-битные) - не проблема. А стек на каждую нить почему не учел? 16КБ - это и было про стек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 19:49 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerkealon(Ruslan)как либу + какой-то базовый RTL к ней напишешь так и будет не вижу никаких причин вводить для этого синтаксический сахар, текущих языковых возможностей с лихвой хватает В целом мне хватает Indy. С нею стиль программирование такой же удобный, как в C# / JavaScript при использовании async/await. Разница только в том, что в Indy на каждое подключение выделяется отдельный поток, а при async/await потоки выделяются при необходимости, один поток может обслуживать десятки подключений. В другой стороны, потоки в Delphi намного легче, чем потоки в C# / JavaScript. В Delphi при создании потока выделяется порядка 16КБ ОЗУ (+ ещё 16КБ, если Windows 64-битный, а прога 32-битная). Таким образом, установить несколько тысяч потоков (если и прога и ОС - 64-битные) - не проблема. Важно с таким количеством потоков избегать использование Sleep (особенно Sleep(0)), иначе планировщик задач Windows загнётся. Не знаю, сколько подключений можно установить на C# с его async/await. Скорее всего больше, чем в Indy (а может и меньше, тупо может начать тормозить основной поток, из которого на практике вероятнее всего начинаются await-вызовы из-за того, что будет быстро заполняться очередь сообщений у потока). В этом плане лучше всего GoLang - у него нет потока, у которого может заполнится очередь сообщений и он начнёт тормозить при её обработке, поэтому без проблем может держать десятки тысяч подключений, причем ему для этого хватит лишь несколько десятков потоков Worker. Правда, у него есть поток диспетчеризации, который раскидывает задачи (горутины) между тредами и копирует куски стека, в него всё может упереться. Вроде такую же вещь сделали и в котлине - скрестили оба подхода - там и аналог async/await и копирование кусков стека корутин.мда... вас послушать, так шарписты и голубцы под какими то разными ОС запускают свои программы я вот прям перекрестился, до пенсии мне работы хватит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 20:48 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerёёёёёпропущено... А стек на каждую нить почему не учел? 16КБ - это и было про стек. "Вопросов больше не имею" - (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 22:23 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ёёёёёDmSerпропущено... 16КБ - это и было про стек. "Вопросов больше не имею" - (с). А что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2019, 22:38 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)голубцы никогда такого не слышал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 00:47 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerА что не так? Дефолтный резервируемый размер стека - 1Mb. Поэтому на 32-битах у приложения просто заканчивается адресное пространство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 00:56 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyDmSerА что не так? Дефолтный резервируемый размер стека - 1Mb. Поэтому на 32-битах у приложения просто заканчивается адресное пространство. А как его поменять для потока, кстати? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 01:49 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvpKazantsev Alexeyпропущено... Дефолтный резервируемый размер стека - 1Mb. Поэтому на 32-битах у приложения просто заканчивается адресное пространство. А как его поменять для потока, кстати? В параметрах линкера. Задается для всех создаваемых нитей приложения. Для отдельной нити - в CreateThread() есть параметр, можно задать свое значение. Но - не меньше величины гранулярности памяти Windows, т.е. 64кБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 02:29 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyDmSerА что не так? Дефолтный резервируемый размер стека - 1Mb. Поэтому на 32-битах у приложения просто заканчивается адресное пространство. Я про адресное пространство не упоминал. Не вижу смысла. Особенно для 64-битных приложений. А вот количество физической памяти считаю более важным показателем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 08:51 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerВ другой стороны, потоки в Delphi намного легче, чем потоки в ... JavaScript. DmSerВ этом плане лучше всего GoLang - у него нет потока, у которого может заполнится очередь сообщений и он начнёт тормозить при её обработке, поэтому без проблем может держать десятки тысяч подключений, причем ему для этого хватит лишь несколько десятков потоков Worker. Правда, у него есть поток диспетчеризации, который раскидывает задачи (горутины) между тредами и копирует куски стека, в него всё может упереться. забористо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 17:43 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerKazantsev Alexeyпропущено... Дефолтный резервируемый размер стека - 1Mb. Поэтому на 32-битах у приложения просто заканчивается адресное пространство. Я про адресное пространство не упоминал. Не вижу смысла. Особенно для 64-битных приложений. А вот количество физической памяти считаю более важным показателем. Прэлэстно. Особенно про постоянную оговорку "особенно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 20:46 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ёёёёёПрэлэстно. Особенно про постоянную оговорку "особенно". Если Вы хотите что-то спросить, то спрашивайте, чего стесняться? Может я чего-то не понимаю, а благодаря Вам узнаю что-то новое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 21:26 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSer, нет, меня ваши бормоталки устраивают прямо в этом виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2019, 22:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ёёёёёDmSer, нет, меня ваши бормоталки устраивают прямо в этом виде. Слово "особенно" мною было сказано только в двух сообщениях: применительно к Sleep(0) и к 64-битным приложениям. Виртуальное адресное пространство для 64-битных приложений упоминать нет смысла, поскольку его дохрена и при создании даже десятков тысяч тредов мы не упрёмся в его дефицит. А для 32-битных приложений, как уже было сказано выше, можно задать в параметрах линкера "max stack size" (например 64КБ) и тем самым резко увеличить максимальное число тредов. Причем следует учитывать, что для 32-битного приложения, запущенного на 64-битной винде, ОС создаёт для каждого треда 64-битный стек размером 256КБ, поэтому кол-во потоков будет меньше, чем для 32-битной винды. При создании треда выделяется совсем небольшое физической памяти (примерно 8 - 16 КБ на стек), причем оно никак не связано с параметром "max stack size". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 00:57 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSer, Физическая память без нужды, да, не выделяется, на старте потока 1 страница всего Но, что бы была возможность увеличить его до max stack size нужно зарезирвировать для этого адреса на весь этот объём - а они очень быстро конечны. По поводу, повторить то, что сделано в .Net - совсем не Rocket Science. Если упрощённо, то там просто пул потоков разгребает нити с задачами из IOPort Сам диспетчер написать, это строчек 500 А вот с библиотеками которые будут его поддерживать уже проблема Даже минимум вроде работы с примитивами блокировки, файлами и сетью при переписке на overlapped-режим потянет на несколько человеко-месяцев разработки. Если замахнуться на гуи, то объём вообще становится непосильный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 11:51 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Но, что бы была возможность увеличить его до max stack size нужно зарезирвировать для этого адреса на весь этот объём - а они очень быстро конечны. Логично! Однако в реальных задачах крайне редко возникает необходимость достигать max stack size, который по умолчанию в Windows равен 1МБ. В своих программах не встречал случаев, чтобы и за 64 КБ вылезло. По поводу, повторить то, что сделано в .Net - совсем не Rocket Science. Если упрощённо, то там просто пул потоков разгребает нити с задачами из IOPort Сам диспетчер написать, это строчек 500 А вот с библиотеками которые будут его поддерживать уже проблема Даже минимум вроде работы с примитивами блокировки, файлами и сетью при переписке на overlapped-режим потянет на несколько человеко-месяцев разработки. Если замахнуться на гуи, то объём вообще становится непосильный Да и не нужно это переносить на Delphi. Итак всё работает, незачем ломать. Пусть лучше допилят 64-битный Android и управляемые записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 12:13 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyДаже с дефолтным размером стека на 32-битах можно создать чуть более 1900 потоков. Код: pascal 1. Кстати, а так на ~2900 потоков хватит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 14:23 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
КвейдКстати, а так на ~2900 потоков хватит? На 32-битной ОС с ключём /3GB, теоретически, примерно столько. На 64-битной, теоретически, под 4 тыс. на практике (Windows 7 x64) получилось 3120. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 15:04 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Потоков в идеале должно быть число ядер+1 или +2. Остальное должно пулится. JavaScript с потоками - что то новое =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 19:23 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Siemargl Потоков в идеале должно быть число ядер+1 или +2. Остальное должно пулится. Ничего подобного. Пул тоже ресурсов стоит и далеко не всегда выгоден, даже если не учитывать усложнение кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 19:25 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Siemargl JavaScript с потоками - что то новое =) К сожалению не могу объяснить как это в мой пост проскачило. Набираю вслепую, иногда попадает такое, о чем не задумываешься. Возможно в тот момент были мысли о nodejs. А может о java ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 19:40 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSer, сделайте паузу. Вход-мееедленный выдох. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2019, 19:56 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSer Siemargl JavaScript с потоками - что то новое =) К сожалению не могу объяснить как это в мой пост проскачило. Набираю вслепую, иногда попадает такое, о чем не задумываешься. Возможно в тот момент были мысли о nodejs. А может о java ;) java и javascript это ведь одно и то же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2019, 05:05 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Siemargl Потоков в идеале должно быть число ядер+1 или +2. Остальное должно пулится. JavaScript с потоками - что то новое =) https://developer.mozilla.org/en-US/docs/Web/API/Worker вообще не новое DmSer Асинхронное программирование на Паскале это не тоже самое, что на c#, JavaScript и других языках с поддержкой async / await. Пусть уж лучше будут блокировки. Это все сахар, призванный помочь тем, кто не осилил асинхронное мышление, писать асинхронный код в манере синхронного. И async в JS появился не так уж давно, до этого все сидели на коллбэках, а ведь это вывих мозга покруче событий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2019, 09:40 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2 Siemargl Потоков в идеале должно быть число ядер+1 или +2. Остальное должно пулится. JavaScript с потоками - что то новое =) https://developer.mozilla.org/en-US/docs/Web/API/Worker вообще не новое DmSer Асинхронное программирование на Паскале это не тоже самое, что на c#, JavaScript и других языках с поддержкой async / await. Пусть уж лучше будут блокировки. Это все сахар, призванный помочь тем, кто не осилил асинхронное мышление, писать асинхронный код в манере синхронного. И async в JS появился не так уж давно, до этого все сидели на коллбэках, а ведь это вывих мозга покруче событий В JavaScript async / await - это синтактический сахар (вроде сахар, поскольку с точки зрения компиляции наверное ничего не меняется) по отношению к промайзам. Промайзы в JavaScript - был очень важный шаг к решению проблемы коллбэков, а механихм async / await кардинально упростил асинхронное программирование. А вот является ли async / await синтактическим сахаром по отношению к C# - не уверен. Разработчики механизма async / await в C# ввели новый подход к компиляции, при котором одна функция каждым упоминанием await расщепляется на подфункции, сохраняется состояние переменных на момент вызова await. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2019, 12:53 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2 Siemargl Потоков в идеале должно быть число ядер+1 или +2. Остальное должно пулится. JavaScript с потоками - что то новое =) https://developer.mozilla.org/en-US/docs/Web/API/Worker вообще не новое 1. речь не за браузер и ссылку на до было на доку ноды давать 2. воркеры не не новость, но предназначены они для cpu-bound задач, а не для IO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2019, 13:24 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSer А вот является ли async / await синтактическим сахаром по отношению к C# - не уверен. Разработчики механизма async / await в C# ввели новый подход к компиляции, при котором одна функция каждым упоминанием await расщепляется на подфункции, сохраняется состояние переменных на момент вызова await. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2019, 14:08 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений 1. речь не за браузер и ссылку на до было на доку ноды давать 1. Про браузер 2. Конкретики не было, просто упоминался JS 3. Нода добавила их 2018-06-20, тоже не вчера. А если по мажорным версиям смотреть, так вообще 3 версии назад ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2019, 14:22 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Василий 2, таки в браузере уже tcp-сервера поднимать научились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2019, 16:00 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
DmSerПри создании треда выделяется совсем небольшое физической памяти (примерно 8 - 16 КБ на стек), причем оно никак не связано с параметром "max stack size". На моём ноутбуке (куплен в 2013г, Core i3, 8ГБ ОЗУ, Windows 7 64-битная) с Delphi 2007 вот что получается: - при дефолтном max stack size удалось создать 1500 потоков, используется 104МБ ОЗУ, время создания 104мс, в среднем 70КБ на поток (32-битный + 64-битный стек). - при max stack size 64КБ удалось создать 6000 потоков, используется 398МБ ОЗУ, время создания 351мс, в среднем 66КБ на поток (32-битный + 64-битный стек). Код потока следующий: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. В обоих случаях загрузка процессора = 0% (менеджер памяти при работе потоков не задействуется). Меньше 64КБ вроде нельзя сделать max stack size. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 23:12 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Проверил на рабочем компьютере, проц дешёвый AMD FX-4330 Quad Core. Windows 7 32-битная. При Max stack size = 64КБ удалось создать 28682 доп. потока, ОЗУ потребляется 862МБ, время создания 1254 мс (создаётся 22 потока за 1 мс), в среднем выходит 30КБ ОЗУ на 1 поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 08:55 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Почему искажется строка? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Пробовал и AsString и AsAnsiString и AsUTF8String и AsWideString. И конвертации при присвоении. Результат одинаков: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 21:20 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat Почему искажется строка? Длины поля точно хватает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2019, 15:17 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, а если так: s1,s2 : string; ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2019, 15:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Длины поля точно хватает? https://wiki.freepascal.org/Database_field_type#Size.2C_DataSize_and_Unicode автор Size, DataSize and Unicode Note that for string type fields, Size indicates the number of characters that can be stored. As indicated in FPC Unicode support#Introduction, FPC up to and including 2.6 only deals with ANSI/ASCII single byte characters; it does not support Unicode/UTF8/UTF16/Unicodestring characters. The read-only property DataSize indicates the field size in bytes. If you use multibyte characters (e.g. UTF8 or UTF16/Unicodestring encoded), DataSize and Size do not mean the same thing. If you use only ANSI/ASCII characters, DataSize and Size are effectively the same thing. Что-то как-то не понятно как это все с реальностью бьется ибо в поле с Size=30 текст 'Северо-Кавказская' не влазит. В чем хранятся строки? В чем измеряется Size и DataSize? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat В чем измеряется Size и DataSize? В байтах. А все строки в Lazarus в UTF-8 кодировке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:01 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
b0rk, Т.е. все Size указаные в БД локально надо умножать как минимум вдвое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:16 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat В чем хранятся строки? В чем измеряется Size и DataSize? Зависит от типа поля. Если поле TStringFiled то это будет размер в байтах для текущей локали, если TWideStringField то размер будет в WideChar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:23 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Спасибо. Сделал так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:37 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Скопировал из Делфи модуль Код: 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. из Фастрепорта получаю VarName='ТекМесГод', по массиву DateVars ничего не находит result=-1, строка s='????????'. Копирую модуль в буфер, удаляю его из Лазарус, создаю пустой модуль с таким же именем, вставляю данные из буфера, все работает как положено, переменные вставляются в отчет. Вопрос: я что, должен сначала создать пустой модуль, а в него уже переность данные или при копировании нужно что то поднастроить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 03:58 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Что-то у тебя с кодировкой pas файла, походу, раз константы уплыли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 06:22 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat, Все там нормально с кодировкой, все работает. Вопрос не в этом, а как переносить правильно из делфи в лазарус. Если я сначала создаю модуль в Лазарус, а затем в него через буфер обмена копирую содержимое делфи модуля, то все работает, а если я копирую делфи модуль в папку с лазарусом, то не работает по массиву строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 14:29 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Bali rgreat, Все там нормально с кодировкой, все работает. Вопрос не в этом, а как переносить правильно из делфи в лазарус. Если я сначала создаю модуль в Лазарус, а затем в него через буфер обмена копирую содержимое делфи модуля, то все работает, а если я копирую делфи модуль в папку с лазарусом, то не работает по массиву строк. А лазарус модули не в UTF-8 сохраняет? Потому что дельфя, по-умолчанию, в Win. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 14:49 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvp, Да, абсолютно точно, а из буфера перекодирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 16:37 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Bali, Лазарь все исходники сохраняет в кодировке UTF8. Delphi в кодировке по умолчанию системы. Вообще походу Лазарь заточили на этот дебильный высер - UTF8 только для совместимости с linux. Возможно иного приемлимого решения не нашлось. Всё это конечно крайне печально. Весь опыт работы со строками приходится переосмысливать, самописные библы выкидывать в мусорку. После такого начинаешь задумываться, а надо ли оно это переходить из загибающегося Дельфя в Лазарь, если всё одно предыдущим опытом не попользуешься толком, и дебилизмов С++ все одно избежать не удастся. Мож уж луче встраиваться в когорту программистов от микрософта, которым специально запрещают думать об исключении паразитного кода и лишних операций. Которым когда говоришь про оптимизацию кода, то они впадают в истерику, катаются по полу, сучат ногами и орут, что не вставляют нигде делаев. Сижу пишу прием SMSок с мамеда, и думаю: ну ладно щас я это сделаю, как нибудь решу, но вот в дальнейшем оно мне это надо??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2019, 04:14 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alikisay, Я, попробовав кодить на лазаре, предпочитаю без крайней необходимости на нем не кодить. А единственная причина на данный момент кодить на лазаре для меня - кроссплатформенная (линукс) графика. С этим в дельфях пока все плохо. В остальном же дельфи несравнимо удобней и продуманней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2019, 07:59 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alikisay, Delphi "загибается" уже больше 20ти лет. И еще, думаю, как минимум, будет столько "загибаться". Поэтому можешь спокойно на нем дальше и работать. И, да, Лазарь и fpc собирается переводить строки дефолтно на такие же как в Делфи. По срокам не скажу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2019, 09:14 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat В остальном же дельфи несравнимо удобней и продуманней. После лазаревой LCL на дельфийскую VCL смотреть не хочется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2019, 11:58 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat alikisay, Я, попробовав кодить на лазаре, предпочитаю без крайней необходимости на нем не кодить. А единственная причина на данный момент кодить на лазаре для меня - кроссплатформенная (линукс) графика. С этим в дельфях пока все плохо. В остальном же дельфи несравнимо удобней и продуманней. хороший IDE, хороший компилятор - что еще нужно, чтобы встретить старость :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2019, 13:12 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
makhaon alikisay, Delphi "загибается" уже больше 20ти лет. И еще, думаю, как минимум, будет столько "загибаться". Поэтому можешь спокойно на нем дальше и работать. И, да, Лазарь и fpc собирается переводить строки дефолтно на такие же как в Делфи. По срокам не скажу. Если не волнуют проблемы по дальнейшему трудоустройству в качестве программиста или не волнует проблема "где взять кадры" - можно и дельфи, и VFP и Clarion продолжать использовать. ЗЫ: меня - не волнуют, дельфи наверняка меня переживет, просто скучно, много ограничений, "комьюнити" - одни старперы да маргиналы, нафталин с прошедшим сроком годности, короче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2019, 15:10 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
ёёёёё, авторЗЫ: меня - не волнуют, дельфи наверняка меня переживет, просто скучно, много ограничений, "комьюнити" - одни старперы да маргиналы, нафталин с прошедшим сроком годности, короче. Не волнуют. Скучать с работой вот ни разу не приходится :) Почти не дня. В проектах движухи выше крыши. Ограничения есть в каждом языке, иначе бы остался просто один для всего. Комьюнити может и старперы, зато всегда есть кого спросить и дождаться внятного ответа, впрочем неофитов хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2019, 21:20 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alikisay Bali, Лазарь все исходники сохраняет в кодировке UTF8. Delphi в кодировке по умолчанию системы. Вообще походу Лазарь заточили на этот дебильный высер - UTF8 только для совместимости с linux. Возможно иного приемлимого решения не нашлось. Всё это конечно крайне печально. Весь опыт работы со строками приходится переосмысливать, самописные библы выкидывать в мусорку. А как связана кодировка исходника с работой со строками? Разве нельзя работать с обычными строками при юникодном исходнике? И наоборот - работать с юникодными строками при исходнике в ansi? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2019, 07:37 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
fraks, Когда весь rtl в utf8 а работать надо с utf16 кодинг превращается в фееричную и непрерывную генерацию подпорок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2019, 11:50 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat Когда весь rtl в utf8 а работать надо с utf16 кодинг превращается в фееричную и непрерывную генерацию подпорок. И опять непонятно какая связь кодировки исходника .pas и работы rtl. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2019, 12:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
fraks, Тут каждый о своем. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2019, 12:45 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Как это феерично, обсир@ть креветки только потому, что тебе не нравится их вкус ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2019, 16:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Какого буя в лазаре в TMemDataSet при попытке в записать в Field[x].AsDateTime:=Now; приводит к "Invalid floating point operation"? Где Field.DataType = ftDateTime. Если же попробовать = ftTimeStamp то выдает что такой тип ваще не поддеривается. Нагуглил это: https://bugs.freepascal.org/view.php?id=28734 Пробую сделать подпорку: Код: pascal 1. 2. Fields[i].AsString выдает: 0-0-00 00:00:43 Или так: Код: pascal 1. 2. Fields[i].AsString выдает:0-0-00 05:03:21 Передавать туда TTimeStamp тоже пробовал. Что там за содомия с форматами даты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2020, 23:03 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Дорылся до вот этой мозговыносящей функции: Код: pascal 1. 2. 3. 4. Походу где-то в кишках используется она. Но она блин падает по Invalid floating point operation, если ей текущее время передать! Что это за маразм?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2020, 23:13 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
А TBufDataset не пробовали? Вроде, кажется поадекватнее. Я когда пытался выяснить для себя, что буду здесь использовать вместо TClientDataset, то пришел к выводу, что это оно, а вот TMemDataset вообще как-то не приглянулся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2020, 23:16 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
V.Borzov А TBufDataset не пробовали? Попробовал. Там свои тараканы. С блобами. При добавлении поля типа блоб count у FieldDefs и Fields отличаются! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2020, 23:30 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Хотя может это и чем-то еще проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2020, 23:52 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Перешел на TBufDataset проблема пропала. Проблема с разным кол-вом полей оказалась в том что ни Close ни CreateDataset ни изменение FieldDefs не сбрасывает Fields. Пришлось принудительно делать сброс Fields.Clear во время переиницализации датасета. Странно это все... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2020, 01:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
rgreat Странно это все... так пиши в трекер, вход и рега свободные. Заодно доброе дело сделаешь :) пыс. посмотри, ради интереса, Логуновский TRxMemDataset. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2020, 19:20 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док rgreat Странно это все... так пиши в трекер, вход и рега свободные. Заодно доброе дело сделаешь :) пыс. посмотри, ради интереса, Логуновский TRxMemDataset. причем компилируется и работает и в линукс и в макос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2020, 10:03 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док пыс. посмотри, ради интереса, Логуновский TRxMemDataset. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 02:13 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Вышел очередной минорный релиз Лазаря 2.0.8 (список багофиксов ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2020, 13:02 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Дженерики в FPC стали ещё круче, https://www.mail-archive.com/fpc-pascal@lists.freepascal.org/msg52712.html]теперь их можно специализировать константными значениями . Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 02:03 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Тем, у кого высоконагруженные приложения на FPC: New Multi-thread Friendly Memory Manager for FPC written in x86_64 assembly ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2020, 12:01 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Недавно был неприятно удивлён что дженерики фрипаскаля кое в чём уступают всё таки делфёвым, порылся нашёл тикет на их багтрекере который висит с 14-го года ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2020, 11:44 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
pvv.pas, Да, недоделок там хватает, к сожалению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2020, 15:41 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
pvv.pas Kazantsev Alexey, Недавно был неприятно удивлён что дженерики фрипаскаля кое в чём уступают всё таки делфёвым, порылся нашёл тикет на их багтрекере который висит с 14-го года Как любит говорить тамошний админ Мартин, "patches will be accepted" :) Бери и делай, на худой конец хотя бы тикет создай. В отличие от Дельфей, патчи мерджят при первой возможности и обоюдном согласии всех сторон. По поводу дженериков, основной разраб Maciej Izak два года назад ушел из основной команды разработчиков (там был большой разбор полетов ). С ними ли он теперь, я не в курсе. Но, судя по сорцам на гитхабе , движуха в плане их дальнейшего развития все-таки есть. Попробуй сравнить/заменить сорцы компилятора и пересобрать его, если они отличаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2020, 00:40 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Тем, у кого высоконагруженные приложения на FPC: New Multi-thread Friendly Memory Manager for FPC written in x86_64 assembly "У посла -медальон, у Шпака..." У Макоси lldb, у винды с линухом - мормот. Каждой сестре по серьге ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2020, 00:43 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док По поводу дженериков, основной разраб Maciej Izak два года назад ушел из основной команды разработчиков Док, а с чего ты взял, что он основной разраб дженериков? От того, что он запилил дельфи-компатибл коллекции и попутно фиксил баги в компиляторе? Насколько я понимаю, дженериками в компиляторе занимался совсем другой человек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2020, 01:22 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Док, а с чего ты взял, что он основной разраб дженериков? хм, очень может быть. А на чем основаны твои предположения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2020, 01:55 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док А на чем основаны твои предположения? На структуре бранчей :) Ну и на меиллист я подписан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2020, 09:42 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Ну и на меиллист я подписан а-а-а-а ... Авторитетно звучит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 13:44 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
How to Cross Compile on Lazarus https://lazplanet.blogspot.com/2020/05/cross-compile-on-lazarus.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:43 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
О, свежатинка! А я думал, сайт у них давно помер. Я как раз сейчас пытаюсь ваять батник по мотивам логов fpcupdeluxe с загрузкой, установкой и сборкой ресурсов с нуля. Статья как раз кстати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 01:44 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
зарелизился компилятор до стабильной версии 3.2.0 https://wiki.freepascal.org/User_Changes_3.2.0 https://wiki.freepascal.org/FPC_New_Features_3.2.0 скачать: https://sourceforge.net/projects/freepascal/files/ ftp://ftp.freepascal.org/pub/fpc/dist/3.2.0/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2020, 16:37 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Зарелизили Lazarus 2.0.10 с fpc 3.2.0 внутри https://sourceforge.net/projects/lazarus/files/ Правда, почему-то официального анонса нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2020, 14:45 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Обновился, блин... При сборке проекта с оптимизацией -Os3 компилятор зависает, входит в бесконечный цикл сыпя хинтами в консоль :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 13:20 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Обновился, блин... При сборке проекта с оптимизацией -Os3 компилятор зависает, входит в бесконечный цикл сыпя хинтами в консоль :( Откат, багрепорт, надежды на фикс... все как обычно)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 13:47 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, Откатывать не буду, оказалось достаточно понизить уровень оптимизации. Багрепортить тоже не буду т.к. в трекере уже есть свежий репорт относительно глюков O3, O4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 13:57 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Обновился, блин... а ты релизные сборки пользуешь? Или только для продакшена? На последних транках компилятора кое-какие компоненты перестали собираться. Щас на основном форуме пытаюсь выяснить, где собака порылась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 16:24 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док, Я на транке. Из стороннего кода только bgrabitmap, всё остальное по дефолту. Компилятор глюканул на моём коде - юнит с описанием нескольких констант, перечислений и парой интерфейов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 16:45 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Я слышал у них были эксперименты поверх LLVM Кто знает, заглохла тема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 17:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU были эксперименты поверх LLVM это о чем? LLVM используется на маках, кажется пытаются прикрутить к линуксам. На винде пока gdb без вариантов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 18:37 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док, На мой взгляд они ни сейчас, ни в перспективе не смогут сравняться по эффективности с LLVM Тогда почему бы не отдать кодогенерацию на откуп LLVM, а самим заняться развитием языка, библиотек, IDE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 18:40 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Ясно. Осталось исключения переделать Ещё 20 лет подождать ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 19:46 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Ну, у них, вот, таска открыта, а в дельфях бай дизайн и живите с этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2020, 22:32 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU Ещё 20 лет подождать ) майнтейнеры подобны тебе: фиг его знает, когда сподобятся зы. мне бы и gdb хватило с лихвой, кабы кто написал толковый мануал, как его собрать под винду без плясок с бубнами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 01:19 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док, Я стабильно каждые месяца 2 репозитории обновляю Так что не надо мне тут :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 02:43 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Проверьте, пожалуйста, кто-нибудь на свежем релизе wthread. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 09:18 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU Док, На мой взгляд они ни сейчас, ни в перспективе не смогут сравняться по эффективности с LLVM Тогда почему бы не отдать кодогенерацию на откуп LLVM, а самим заняться развитием языка, библиотек, IDE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 13:59 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), Верно конечно Но ещё верно, что он написан на FPC. И вроде есть разрабы, задействованные в обоих проектах Но самое главное. Лазарус использует отладчик, который для LLVM свой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 14:09 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU kealon(Ruslan), Верно конечно Но ещё верно, что он написан на FPC. И вроде есть разрабы, задействованные в обоих проектах Но самое главное. Лазарус использует отладчик, который для LLVM свой интерфейсы всегда суживают, более главное тут правильный мапинг исходников - а его даёт не отладчик, а компилятор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 14:13 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Вот ведь гадство: только написал две зеркальные функции WindowsState2String/String2WindowsState, глядь, а они оказывается есть в штатном Forms Для людей сделано... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 16:01 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Зачем целая функция? Integer(WindowsState) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 17:54 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
wadman Проверьте, пожалуйста, кто-нибудь на свежем релизе wthread. :) Проверил. Всё стабильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 22:22 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
wadman Зачем целая функция? Integer(WindowsState) в xml писать. Чтобы читабельно было, все равно обвязка нужна. Там оказывается есть даже StringToColor/ColorToString :) Так по ходу работы и находишь что-нибудь написанное кем-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 22:58 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док Чтобы читабельно было, все равно обвязка нужна. Разве что для читабельности и если часто возникает необходимость руками править конфиги. Линуксоиды оценят. ) Док Там оказывается есть даже StringToColor/ColorToString :) Это и в дельфи есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2020, 23:33 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Это типа GetEnumName, только не универсальные, а под каждый тип? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2020, 11:28 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, если точнее Код: pascal 1. 2. 3. 4. 5. wadman Разве что для читабельности и если часто возникает необходимость руками править конфиги. Линуксоиды оценят. ) не обязательно. Из кода дефолтовый конфиг восстанавливать. Исходник же читабельнее. Ты всегда помнишь, где и какая циферка что обозначает, хотя бы полгода спустя? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2020, 16:36 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док Ты всегда помнишь, где и какая циферка что обозначает, хотя бы полгода спустя? :) Я в конфиг лезу только в случае, если там содержится параметр, который не доступен из интерфейса. В ином случае удаляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2020, 16:42 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Док если точнее Код: pascal 1. 2. 3. 4. 5. Колоссальный хелпер)))) Я себе давно сделал обертку, чтобы писать более приятно: TEnum<TWindowState>.Val(Name) После этого и утилиты никакие не нужны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2020, 10:15 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. Периодически сталкиваюсь с таким дефайном, определение которого не нашёл. Может кто-то уже копал в эту сторону? Где оно может быть спрятано? Или может галка какая-то в настройках проекта? Инфы крайне мало об этом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 11:48 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
wadman, Обычно такие вещи в .inc файлах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 12:04 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
alekcvp, искал в inc,pp,pas. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 12:35 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
wadman, В исходниках FPC, в файле, cclasses.pas, есть похожий дефайн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 13:47 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey В исходниках FPC, в файле, cclasses.pas, есть похожий дефайн. Define или ifdef? Или C CLASSESINLINE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 14:15 |
|
||
|
Lazarus
|
|||
|---|---|---|---|
|
#18+
wadman, Этот дефайн надо самому объявлять, если хотите чтобы методы инлайнились. Вот тут товарищ на это сетует: https://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg38993.html]https://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg38993.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 14:16 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2037658]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
248ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 706ms |

| 0 / 0 |
