|
Вопрос # 5 339/ вопрос открыт / |
|
Здравствуйте!
Каким способом можно удобно считывать данные из TStrings по одному символу?
Я пробовал 2 метода:
1. Хранил текущую строку и позицию в строке в отдельных переменных и увеличивал постепенно. Обращался к символу так: s[x][y]
2. Хранил текущую позицию в переменной, обращался к символу так: s.getText()[x]
Может это можно упростить? Возвращаться назад не нужно.
 |
Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 29 мая 2011, 19:39
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 31 мая 2011, 01:12; участников в обсуждении: 3.
|
bugmenot (статус: 3-ий класс), 29 мая 2011, 20:30 [#1]:
Удобно - штаны одевать на ноги. Задача-то какая стоит?
(и перечисленные методы ни разу не равнозначны)
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Вадим К (статус: Академик), 29 мая 2011, 20:43 [#2]:
Я бы для начала перевел это в строку или stream, а потом оттуда читал и посимвольно, и не посимвольно.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
bugmenot (статус: 3-ий класс), 29 мая 2011, 21:14 [#3]:
я тут прикинул, если так к вопросу подходить - выжрет 2Гб памяти при объеме исходных данных - ~46,2Кб :-D
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Gooddy (статус: 3-ий класс), 30 мая 2011, 15:46 [#4]:
2bugmenot:
Локальная задача - чтение входного потока из TStrings (TStringList) посимвольно.
Мои методы конечно разные но выдают 100% идентичные символы.
Меня больше волнует то, что они работают несколько убого - один с постоянным переводом в строку (хотя можно и один раз), другой - с двумя переменными, хранящими позицию.
2Вадим К:
В строку я уже переводил, но не целиком а каждый раз, что заодно и на производительности плохо сказывалось), но переменную со строкой создать вроде ничего не мешает. Попробую с потоками пошуровать.
2bugmenot (на второй пост):
Это с чего это сожрётся 2 гига?
Чисти код! Чисти код! Чисти код!
|
|
bugmenot (статус: 3-ий класс), 30 мая 2011, 19:28 [#5]:
Цитата (Gooddy):
Локальная задача - чтение входного потока из TStrings (TStringList) посимвольно
Это ты перефразировал. Хотя добавилось слово "поток", который и надо использовать для решения.
http://docwiki.embarcadero.com/VCL/2010/en/Classes.TStringStream
Цитата (Gooddy):
но выдают 100% идентичные символы
ну неправда же, конец строки - тоже символ
Цитата (Gooddy):
Это с чего это сожрётся 2 гига?
ссылка
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Gooddy (статус: 3-ий класс), 31 мая 2011, 00:42 [#6]:
Спасибо, а какие ещё классы потоков есть в дельфи?
Чисти код! Чисти код! Чисти код!
|
|
bugmenot (статус: 3-ий класс), 31 мая 2011, 01:12 [#7]:
Цитата (Gooddy):
какие ещё классы потоков есть
их туева хуча на все случаи жизни блочного ввода-вывода
часть перечислена здесь
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|