Вверх ↑
Этот топик читают: Гость
Ответов: 3
Рейтинг: 0
#1: 2012-06-17 02:50:36 ЛС | профиль | цитата
Здравствуйте. Задача следующая, есть два списка. Первый позиция в файле, второй что нужно туда записать. Никак не получается разобраться с doposition в элементе Memorystream. В моей схеме он просто игнорируется, и запись всегда идет на первый байт.

code_28217.txt

карма: 1

0
файлы: 1code_28217.txt [1.1KB] [141]
Разработчик
Ответов: 26164
Рейтинг: 2127
#2: 2012-06-17 03:14:33 ЛС | профиль | цитата
Как-то так

code_28218.txt

Позиции пришлось изменить, тк Memo не читает нулевых байт, но принцип должен быть ясен
карма: 22

0
файлы: 1code_28218.txt [1.1KB] [171]
Ответов: 16884
Рейтинг: 1239
#3: 2012-06-17 09:09:16 ЛС | профиль | цитата
nesco, а если порядок позиций изменить ? (первый StrList)
Add(StrList,10478671,224,56)
{
Strings=#1:4|1:3|1:2|1:1|1:0|
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#4: 2012-06-17 12:53:58 ЛС | профиль | цитата
Tad писал(а):
а если порядок позиций изменить ?

А ведь точно, ANSI строка в данном компоненте содержит два байта минимум, ноль в конце. Происходит перекрытие позиций. Твои предложения какие
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#5: 2012-06-17 13:00:09 ЛС | профиль | цитата
nesco, если честно, то никаких.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#6: 2012-06-17 13:09:49 ЛС | профиль | цитата
Tad писал(а):
если честно, то никаких

Мдааа... У меня -- тоже, но надо подумать
карма: 22

0
Ответов: 3
Рейтинг: 0
#7: 2012-06-17 13:27:09 ЛС | профиль | цитата
Nesco, спасибо то что нужно. У меня только вопрос, почему не выходит без DataToFile?
У меня там в принципе нулей нет. Запись идет не в memo а в файл. Но там была точно такая же фигня, с doposition в элементе Memorystream.
карма: 1

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#8: 2012-06-17 13:29:30 ЛС | профиль | цитата
AUTO-NEK писал(а):
почему не выходит без DataToFile?

Потому, что ты просто перезаписываешь полностью предыдущий стрим по doCopy, а в него надо писать
карма: 22

0
Ответов: 1376
Рейтинг: 197
#9: 2012-06-17 13:31:52 ЛС | профиль | цитата
Почему, именно, строковые записывать? Можно и байтами
code_28225.txt
и вариант патчера выкладывал
code_28226.txt
карма: 1

1
файлы: 2code_28225.txt [1.3KB] [160], code_28226.txt [2KB] [150]
Голосовали:Tad
Разработчик
Ответов: 26164
Рейтинг: 2127
#10: 2012-06-17 13:38:26 ЛС | профиль | цитата
foksov, ты условие почитай и сравни со своей схемой. Позиции надо выбирать из списка, а не по индексу, и возможно не подряд
foksov писал(а):
Можно и байтами

А если там будет не символ в списке, а строка
Короче, по схеме -- незачет. Невнимательно читаем условия задачи
карма: 22

0
Ответов: 1376
Рейтинг: 197
#11: 2012-06-17 13:54:00 ЛС | профиль | цитата
и со строками можно
code_28227.txt
карма: 1

0
файлы: 1code_28227.txt [1.3KB] [172]
Разработчик
Ответов: 26164
Рейтинг: 2127
#12: 2012-06-17 14:06:03 ЛС | профиль | цитата
foksov, зачем ты применяешь расширенный конвертор, когда не используешь нижнюю точку К тому же, у новичка может не стоять последнее обновление, а в исходном инсталляторе этого компонента нет.
Но решение меня убило -- посимвольная запись строки, быстродействие тихо-тихо померло с легкой руки foksov-a
карма: 22

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)