|
|
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Может кто сталкивался с такой проблемой не могу понять или я что то не так делаю или звезды не так сошлись. Задаю переменную для отчета FastReport Report.Variables['TxtConcl']:='''' + FConclusion.Text + ''''; FConclusion: TStringList - задается в обычном Memo и передается в функцию формирования отчета В отчете текст выводится в апострофах я не понимаю от куда они берутся пробовал удалять их при задании переменной тогда вылетает ошибка при формировании. И по моему в документации написано что переменные типа String задаются в двойных кавычках. При этом другие переменные в одну строку (без спец символов) выводятся нормально. Кто ни будь может посоветовать как от них избавиться и почему в обычной строке их нет а в строке с символами chr(10) + chr(13) появляются апострофы. Пример: '11111 222 333 ' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 17:42 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55> пробовал удалять их при задании переменной SDima55> тогда вылетает ошибка при формировании. Текст ошибки и тип переменной покажи. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 18:09 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55 И по моему в документации написано что переменные типа String задаются в двойных кавычках. При этом другие переменные в одну строку (без спец символов) выводятся нормально. ' Переменные отчета это выражения скрипта. Т.е. литералы в переменных указываться в соответствии с выбранным языком скрипта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 18:43 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, Memo19: error in expression: Expression expected ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 18:54 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, язык скрипта PASCAL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 18:56 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, PascalScript ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 18:57 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, Переменные в FastReport Variants я переменной присваиваю String в TStringList свойство Text возращает string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 18:59 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Что-то не припомню подобных проблем... Можно посмотреть в сторону события OnGetValue и там заполнять нужное значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 19:30 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Нужно формировать соответствующий языку строковый литерал. Код: 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. Либо, как уже предложили, вместо переменных отчета использовать событие OnGetValue . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 19:38 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Это в скрипте рапорта функцию описывать или не посредственно в delphi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 19:51 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Дело в том что раньше все проекты делал на ReportBuilder недавно перешел на FastReport мне просто интересно это зависит от чего в Memo строка типа String я ее присваиваю переменной Variant Report выводит апострофы но в других строках без спец символов не выводит? так и должно быть или чтото не так. Просто чтоб потом не задавь глупые вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 19:56 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Это код для Delphi. Если вызов делается в скрипте, то можно просто объявить переменную там же с типом String и использовать ее имя в выражении текстового поля [ИмяПеременнойСкрипта]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 19:58 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Я уже объяснил выше. Переменные отчета это выражения, которые содержат сприпт. Там должно быть либо выражение, либо литерал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:00 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Просто если это нормально то тогда надо выносить в свойство MemoView потому что часто бывает когда пользователь вводит некий текст в Memo и его хотелось бы увидеть без доп. кавычек. Я же язык скрипта поставил pascal. А так два дня парусь и понять не могу либо лыжи не едут или я ****й ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:07 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Если передача параметра идет из кода приложения и хочется передавать именно через Report.Variables, то используйте функцию приведенную выше. Если список формируется в скрипте, то проще использовать переменную скрипта в выражении(пример прицепил). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:12 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
[quot _Den_Z_#22131503]SDima55, Нужно формировать соответствующий языку строковый литерал. [src delphi] function BuildStringLiteral(List: TStrings): String; const sLineBreak = '#13#10'; var i, Sz, Len: Integer; begin if List.Count = 0 then begin Result := ''''+''''; Exit; end; Sz := 0; for i := 0 to List.Count - 1 do Inc(Sz, Length(List[i]) + 8); Dec(Sz, 6); SetLength(Result, Sz); Sz := 1; for i := 0 to List.Count - 1 do begin Result[Sz] := ''''; Len := Length(List[i]); CopyMemory(@Result[Sz + 1], @List[i][1], Len * SizeOf(Char)); Inc(Sz, Len + 2); Result[Sz - 1] := ''''; if i < List.Count - 1 then CopyMemory(@Result[Sz], @sLineBreak[1], Length(sLineBreak) * SizeOf(Char)); Inc(Sz, 6); end; end; ... begin frxReport.Variables.Variables['Var1'] := BuildStringLiteral(s); end; Это работает огромное спасибо. Т. е. я так понял String вводимый из Memo который может содержать спец символы необходимо прогонять через эту функцию. Еще раз спасибо. Всем удачи но два дня потеряных жалко. Весь мозг взорвал себе. Всем удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:17 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Спасибо большое. Удачи. Я так понял функцию нужно делать глобальную. Пригодиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:23 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Просто все Report.Variables вычисляются как скрипт, т.е. там может быть вызов функции такой как Format или любой другой. Соответственно все значения должны быть в виде литералов скрипта, т.е. для паскаля: 11, 1.34, '123', '123'#13#10'123' (фактически как вы пишете строковый литерал в самой Delphi). Если вычисления выражений не нужны, то лучше использовать переменные скрипта или событие onGetValue. А функция просто формирует строковый литерал для паскаля ('123'#13#10'123'). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:27 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Решить та поставленую задачу можно было но я посчитал сто через GetValue будет не совсем правильно. Но в целом я все понял. Еще огромное спасибо. Просто интересно в инете не наше по этой теме ничего или все такие умные или у некого такого небыло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:35 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Да еще вопрос я на другом форуме тоже задавал его. Но за день не ответил никто можно _Den_Z_ твой ответ вставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:39 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Конечно, без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 20:53 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Какой ужасный код, с точки оптимизации - которую вы пытались сделать TestBuild: 0.717718 BuildStringLiteral: 3.569232 Будь проще Код: 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. Код: 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. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:05 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Это тоже интересно т. к. отчет формируется достаточно долго много картинок но кроме него некто не от ветил поэтому ему большое спасибо а Вам спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:11 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Няшик, ты снова напился. Это не PHP, это FastReport. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:12 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Функция быстрее в 5 раз. Но в принципе можно и быстрее её сделать. Но это самый простой вариант который можно написать за 2 минуты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:13 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Не няшик Я. И я владею 8 языками на среднем уровне. Достаточно опыта во многих сферах. Но в принципе основное - swift ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:15 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Выдает Memo19 Error in expression "1#13#10'2'#13#10'3'... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:21 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Возможно ты где - то допустил ошибку у себя в коде, проверил, результаты одинаковые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:27 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Не я считаю что нам одним местом ***й меряься для это и существуют эти форуму. Всегда интересно но во всяком случае для меня, если есть алгоритм более быстродейсный разные задачи бывают и разные требования. Я 20 лет веду проект и раз в пять лет его переписываю по тихоньку и каждый раз думаю какой ур**д его писал. Но ВсеРазумный не заработал спервого раза буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:29 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Дело в том что ты в примере добавляешь одну строку а я несколько. На пустом memo у меня тоже рпаботает или с одной строкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:32 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Нет, я добавляю множество строк. Приведите пример некорректной работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:35 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Ну я тоже ввожу в своем мемо: 1 2 3 4 И выдает ошибку. Завтра посмотрю. Разберусь в чем проблема просто сейча 1 00 а я с этими апострофами вымучился два дня пытался понять что не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:43 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Поправка Код: pascal 1. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:43 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, А Делфи какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:44 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Да я просто потом стёр + 1 думая что он там лишний, а на деле оказался не лишний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:44 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Походу наконец-то нашли себя. Два одиночества.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:48 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Все ОК. Работает. Единственно время не проверял. Верю наслово. Но зделаю 2 фун-и. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:48 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Vlad F, Когда два дня паришься с элементарной проблемой а дело все в том что не хватает знания работы с этим компонентом. Но всем огромное спасибо. Решил Оставить две функции на один отчет поцеплю одну на другой другую. Протестю на пользователях они иногда такое вытворяют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 21:52 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Вот мой тестовый проект. Подправил его, выделив 1 функцию под тест Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Результаты TestBuild: 0.734430 BuildStringLiteral: 3.627956 Код: 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. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:08 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
А если сделаем 5000 строк Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Но в тесте укажем 100 раз по 3 раза Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. То результаты такие TestBuild: 4.014073 BuildStringLiteral: 18.751520 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:10 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Ох уж эти оптимизаторы. ВсеРазумный, Вам как все разумному предлагаю найти ошибку у себя в коде и объяснить, почему выделения памяти один раз (в моем варианте), медленнее чем несколько релоков в вашем. Не логично, не находите ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:21 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Главное задача решена. Интересный форум получился. Я завтра каждый алгоритм подробней разберу сегодня тупо скопировал. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:26 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Вы не знали что - ли, что память выделяется блочно. И нет смысла никакого выделять её 1 раз. У вас слишком много времени тратиться на Length всех строк, и несколько вызовов функций. По этому моя функция в 5 раз быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:46 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
По простому. Выделив блочно 128 байт, 5 раз. Будет по скорости аналогично выделив сразу 640 байт 1 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:47 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Я всегда думал что один лучше чем пять. Ну в смысле когда уже по старше стал. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:52 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Ясно, вы не знаете даже почему ваш код работает быстрей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:54 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Это просто шутка. Ни кого не хотел обидеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:54 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Я даже не рассматривал одноразовое выделение памяти - как преимущество. Потому что в любом случае будет затрачено одно и тоже время, на выделения. (Не считая call на саму функцию) По этому самый главный критерий который приходит на ум оптимизации, выкинуть Length всех строк, и уменьшить вызовов копирования памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:55 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Я уже сказал почему мой код работает быстрее. Если вы не понимаете, почему ваш код работает так медленно, мне вас жаль. Учитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:55 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Спасибо, буду учиться. Только не у вас ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 22:58 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Завтра обязательно проверю. Но то что вижу CopyMemory это прослойка Move но я не думаю что это в 5 раз могло ускорить или за тормозить. Хотя Delphi это еще тот фрукт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:03 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Ну вот, провёл тест. Сделал ещё 1 функцию копию. Но сделал фиксировано длину 5000 символов, это именно та длина, которая генерируется при Код: pascal 1. 2. По этому сейчас 1 место под выделения памяти TestBuild: 0.738177 TestBuild5000Bytes: 0.729484 BuildStringLiteral: 3.590787 Разница составляет в пук младенца - 0.008693 и то, потому что я убрал Код: pascal 1. Код: 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. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:05 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Даю подсказку, Memo.Lines это не TStringList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:08 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55 ВсеРазумный, Завтра обязательно проверю. Но то что вижу CopyMemory это прослойка Move но я не думаю что это в 5 раз могло ускорить или за тормозить. Хотя Delphi это еще тот фрукт. Не надо мифов. Эта inline функция Код: sql 1. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:08 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_ ВсеРазумный, Даю подсказку, Memo.Lines это не TStringList. Ой пасибо Код: pascal 1. А мы и не знали, и не умели делать TStrings AS TStringList ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:09 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Надеюсь, что вы троллите иначе конечно, это печально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:11 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#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. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:13 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Я обязательно завтра проверю. Раз пошла такая пьянка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:15 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_ ВсеРазумный, Надеюсь, что вы троллите иначе конечно, это печально. Это вы издеваетесь, честное слово. Код: 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. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. Заменив TStrings на TStringList ничего не поменялось. TestBuild: 0.730820 BuildStringLiteral: 3.607540 К чему вы вообще начали этот пустой разговор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:17 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Кстати, в компиляторе большое количество функций компилируется как inline но вы не увидите рядом с функцией слово inline так как это задаётся внутри компилятора К примеру FreeAndNil тоже inline функция хоть на ней это не написано. Но в скомпилированном коде к ней нет вызова, идёт встраивания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:24 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Если вы действительно используете TStringList, а не прямой доступ к Memo.Lines , то разницы почти не будет. Вообще Memo.Lines лучше на прямую не использовать в передаче и обработке текста, особенно если понадобится вынести работу с отчетом в потоки. Memo.Lines является экземпляром TMemoStrings , который работает через sendMessage на каждый Lines[i] вызов Get c sendMessage . Отсюда и задержка такая в моем варианте. Если как вы и описали, к вас TStringList то изначальный вариант будет быстрей, правда не значительно. ВсеРазумный , к сожалению не до конца понимает о чем говорит, не разобравшись ни в описании проблемы, ни почему его вариант "быстрей". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:28 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Это вы издеваетесь, честное слово. Жесть, кастовать класс TMemoStrings к TStringList. Продолжайте, я заинтрегован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:31 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Ясно. Незнание ООП и простейшей Иерархии обращений к предкам. Понятно, что если мы будем работать с чистым string быстрее. Но я хотел привести пример, что ваш код - с точки зрения в изначальном проектирование - фуфло. Не потому что вы используете TString с sendMessage А потому что вы нагородили огород с огурцами, помидорами и картошкой. Вы мистер КЭП. И быстрее ваш код, моей функции не будет. Так как я уже сказал: проектирование функции - фуфло 1) Вы делается цикл по всем строкам, и считаете длину Код: pascal 1. 2. Слишком много хлама дальше. Это именно - то, почему ваша функция медленная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:54 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Понятно, что если мы будем работать с чистым string быстрее Код: 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. Нее.. Не будет, к сожалению. Все варианты ведут на эту функцию. Быстрее, избавится вообще от TMemo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:59 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Всё уже ясно. Моя функция - лучший вариант. И быстрее уже не написать. Если только избавится от TMemo в принципе. Так как вообще всё TStrings\TStringList использует одну функцию - GetTextStr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:01 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Если вы сидите и думаете что один вызов setlength будет быстрее чем пару выделений по 128 но при этом используете Код: pascal 1. 2. То это Полная беда.. И тут лечится уже надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:04 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Мда, интересно посмотреть в какой это версии Delphi TMemoStrings от TStringList. В прочем, уже не важно, с вами уже все понятно. Неприятно правда, что вы вводите людей в заблуждение, но это уже на совести конкретного человека кто принимает решение, я дал человеку максимальное объяснение происходящего. А тут наверное, делфа заглючила. Что-то быстрей стало исполнятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:07 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Ну и ваш же пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:08 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Можете попробовать оптимизировать еще через ассемблерные вставки, чем черт не шутит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:11 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, не парься. Здесь хватает "оптимизаторов от Бога")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 03:35 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
white_nigger, Я с саппортом периодически работаю, после этого мало что может удивить ) Но топик наткнул на идею, добавить в список вопросов на собеседование, примерно такой : Дана функция которая работает со строкой: Код: pascal 1. 2. 3. 4. Есть ли принципиальное отличие в приведенных ниже вызовах функций ? Какая из них будет работать быстрее и почему ? Вариант 1: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вариант 2: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Извините за оффтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 14:11 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_ добавить в список вопросов на собеседование Рановато в собеседники идти. _Den_Z_ Код: pascal 1. 2. Даже не смотря на PChar(@S[1]) и бессмысленность примера в целом. Разве что избавиться от конкуренции? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 14:43 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
wadman, Простите, а что не так ? Это , конечно, не теннисными мячиками автобус заполнять. Или нужно писать код генерации строки длинной 1000 символов. Тут отброшены все условности , чтобы поместилось на бумажке. Суть то вопроса, не найти смысл в коде. А выявить различия и понять играют ли они роль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 14:48 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
wadman _Den_Z_ добавить в список вопросов на собеседование Рановато в собеседники идти. _Den_Z_ Код: pascal 1. 2. ... ... Числа одинаковые? Или что? Вирус оптимизаторства зацепил? Код: pascal 1. 2. 3. 4. - так надо было? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:02 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Наоборот, испугался подхватить. Это просто примерный шаблон, цикл, функцию(WINAPI, Move итд) можно заменить ,если уж так нужен смысл в этом куске кода. Просто поделился идеей, основываясь на бреде про использование Length из топика. Упор сделан на Length, в цикле и вне цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:09 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, да я понял... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:10 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, если в строке 1000 символов, то цикл по этой строке будет от 0 до 1000-1, как бы... На это wadman намекал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:11 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
goldmi45, Цикл там не по строке идет, идея не в этом. Как уже написал, можно заменить цикл на что-то вменяемое, это просто идея основанная на топике :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:14 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
goldmi45 ъъъъъ, если в строке 1000 символов, то цикл по этой строке будет от 0 до 1000-1, как бы... С фига ли? А если в строке 5 символов - то цикл должен быть от 0 до 5-1? Какая связь между длиной строки и циклом в примере? Никакой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:18 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Разница там меньше чем в полтора раза. И вопрос очевидный а вот более интересный вопрос, как первую функцию можно ускорить еще в полтора раза, изменив всего с десяток символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:20 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_ goldmi45, Цикл там не по строке идет, идея не в этом. Как уже написал, можно заменить цикл на что-то вменяемое, это просто идея основанная на топике :) Ok :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:20 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ъъъъъ goldmi45 ъъъъъ, если в строке 1000 символов, то цикл по этой строке будет от 0 до 1000-1, как бы... С фига ли? А если в строке 5 символов - то цикл должен быть от 0 до 5-1? Если циклом бежим по строке, длиной 5 символов, то должно быть 5 итераций цикла. Если нижняя граница 0, то верхняя 5-1. Если нижняя граница 1, то верхняя 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:23 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_ Суть то вопроса, не найти смысл в коде. А выявить различия и понять играют ли они роль. "Представьте сферического коня в вакууме". Если отбросить полное отсутствие логики (чёрт, а ведь программисту она нужна?), то чтобы заметить разницу нужно увеличить цикл хотя-бы до 1 млн итераций. Зы. Разница между ними не должна быть критичной, как и сам вопрос - критерием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:49 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2038333]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
202ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
140ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 613ms |

| 0 / 0 |
