206 / 13 / 2
Регистрация: 10.10.2009
Сообщений: 154
|
|
1 | |
Разбить строку на числа, разделенные пробелами02.10.2011, 22:47. Показов 4535. Ответов 7
Метки нет Все метки)
(
Всем доброго времени суток!
Переменные типа String в виде строк состоят из десяти чисел. Числа в строке разделены одним пробелом. 1 41 42 44 84 85 87 985 987 989 1 41 43 44 84 86 87 986 987 990 1 42 43 44 85 86 87 988 989 990 2 3 4 5 88 89 90 130 131 171 2 3 4 6 88 89 91 130 132 172 2 3 4 7 88 89 92 130 133 173 Вопрос, – какой должен быть код (необходим наиболее производительный) для определения каждого числа в строке и перевода его в числовой тип, например Integer?
0
|
|
02.10.2011, 22:47 | |
Ответы с готовыми решениями:
7
Записать в одну строку конкатенацию (соединение) всех строк из файла, разделенные пробелами
|
15131 / 6405 / 1730
Регистрация: 24.09.2011
Сообщений: 9,999
|
||||||
02.10.2011, 22:56 | 2 | |||||
Не знаю насчет скорости, но наиболее удобно через Split
0
|
206 / 13 / 2
Регистрация: 10.10.2009
Сообщений: 154
|
|
02.10.2011, 23:04 [ТС] | 3 |
Спасибо за отзыв. Кода не много, возможно будет быстро.
0
|
15131 / 6405 / 1730
Регистрация: 24.09.2011
Сообщений: 9,999
|
|||||||||||
02.10.2011, 23:45 | 4 | ||||||||||
Так еще быстрее на несколько %
Все-таки Split - медленная функция. Так почти в 2 раза быстрее (bb - 13,8 мкс, bb1 - 13,0 мкс, bb2 - 7,1 мкс)
1
|
206 / 13 / 2
Регистрация: 10.10.2009
Сообщений: 154
|
||||||
03.10.2011, 00:12 [ТС] | 5 | |||||
Есть ещё вариант без цикла. Для Split:
0
|
11464 / 3757 / 675
Регистрация: 13.02.2009
Сообщений: 11,097
|
|
03.10.2011, 08:52 | 6 |
Всё зависит от обёма информации, которую надо обработать. Сколько строк всего? миллион? Два? Кстати никто не спросил откуда берётся массив. Надо ли его разбить сначала на строки или будет считываться построчно
0
|
206 / 13 / 2
Регистрация: 10.10.2009
Сообщений: 154
|
||||||||||||||||
03.10.2011, 11:43 [ТС] | 7 | |||||||||||||||
В текстовом файле записанный двумерный массив, имеющий более миллиона строк.
1 2 3 4 45 46 47 88 89 130 1 2 3 5 45 46 48 88 90 131 1 2 3 6 45 46 49 88 91 132 1 2 3 7 45 46 50 88 92 133 1 2 3 8 45 46 51 88 93 134 1 2 3 9 45 46 52 88 94 135 1 2 3 10 45 46 53 88 95 136 1 2 3 11 45 46 54 88 96 137 1 2 3 12 45 46 55 88 97 138 1 2 3 13 45 46 56 88 98 139 1 2 3 14 45 46 57 88 99 140 1 2 3 15 45 46 58 88 100 141 1 2 3 16 45 46 59 88 101 142 1 2 3 17 45 46 60 88 102 143 1 2 3 18 45 46 61 88 103 144 1 2 3 19 45 46 62 88 104 145 Код для VB 2008
В VB 2008 такое чтение можно ускорить. Код
Код
0
|
11464 / 3757 / 675
Регистрация: 13.02.2009
Сообщений: 11,097
|
|
03.10.2011, 19:23 | 8 |
Для таких размерчиков где-то был пример считывания блоками.
Вот там, действительно, скорость была впечатляющая! Где-то сохранял не могу найти.
0
|
03.10.2011, 19:23 | |
Помогаю со студенческими работами здесь
8
Два числа, разделенные пробелами, записать в две целочисленные переменные
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |