|
|
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#18+
Стоит такая задача: На входе задана строка, где задано название параметра и ряд его значений, разделенные пробелами (и может быть знаками табуляции) (в данном примере их 5, но может быть произвольным), на выходе - массив с именем параметра и его значениями (можно в виде строк, в числа я потом преобразую): Пример 1: readStr = 'Названиепарам1 -0.013 0.017 0.099 0.189 0.221*' На выходе должно быть: paramValues[0] = 'Названиепарам1' paramValues[1] = '-0.013' paramValues[2] = '0.017' paramValues[3] = '0.099' paramValues[4] = '0.189' paramValues[5] = '0.221*' Пример 2: readStr = 'Paramname 1.691 1.764 1.829 2.007* 1.916' На выходе должно быть: paramValues[0] = 'Paramname' paramValues[1] = '1.691' paramValues[2] = '1.764' paramValues[3] = '1.829' paramValues[4] = '2.007*' paramValues[5] = '1.916' Наваял, исходя из опыта предшественников, работавшим над проектом, следующую процедуру: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. но получил некомпиляцию из-за ошибки несоответствия типов. В случае, когда я жестко задал SetLength(paramValues, 5), paramValues[0] присвоилось M.Item[0].Groups[1].value, но в цикле ничего не присвоилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 19:10 |
|
||
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#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. Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 21:32 |
|
||
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#18+
Martin114, offtopic: а если в качестве параметра понадобится передавать строку с пробелом (табуляцией)? Посмотри, как GetParamStr() модуля System.pas сделано, там отдельные параметры могут быть квотированы двойной ковычкой, хотя, конечно, дело твое: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 22:00 |
|
||
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#18+
Martin114Стоит такая задача: На входе задана строка, где задано название параметра и ряд его значений, разделенные пробелами (и может быть знаками табуляции) (в данном примере их 5, но может быть произвольным), на выходе - массив с именем параметра и его значениями (можно в виде строк, в числа я потом преобразую): Пример 1: readStr = 'Названиепарам1 -0.013 0.017 0.099 0.189 0.221*' На выходе должно быть: paramValues[0] = 'Названиепарам1' paramValues[1] = '-0.013' paramValues[2] = '0.017' paramValues[3] = '0.099' paramValues[4] = '0.189' paramValues[5] = '0.221*' Пример 2: readStr = 'Paramname 1.691 1.764 1.829 2.007* 1.916' На выходе должно быть: paramValues[0] = 'Paramname' paramValues[1] = '1.691' paramValues[2] = '1.764' paramValues[3] = '1.829' paramValues[4] = '2.007*' paramValues[5] = '1.916' как вариант, самый простой, использовать TStringList Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. фсё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 22:07 |
|
||
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#18+
defecator, это да. Но ТС хочет иного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 22:13 |
|
||
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#18+
Котовасияdefecator, это да. Но ТС хочет иного. не увидел иного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 22:20 |
|
||
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#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. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 22:30 |
|
||
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#18+
Ну или так Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 22:33 |
|
||
|
Получение из строки имени и значений параметров
|
|||
|---|---|---|---|
|
#18+
defecator, Мне уже посоветовали этот вариант. Я сделал так: Код: 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. Задаем readStr = 'Cmax -0.033 0.021 0.084 0.189 0.204*'. В результате получилось: DelimStr = 'Cmax;;;;;;-0.033;;;;0.021;;;;0.084;;;;0.189;;;;0.204*' S[0] = 'Cmax'; S[1] - S[3] - пустые строки. Почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 17:20 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39710148&tid=2040330]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
5ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 364ms |

| 0 / 0 |
