|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.02.2022, 03:39 | #261 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
11.02.2022, 04:14 | #262 |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 376
|
Не допонял этот момент ?
Куда прописывать ? Понятно одно, что строчка - Inc(addr, ranges[j, 2]); не удлиняет файл под размер и всё тут. Тут хоть так, хоть этак, некорректно записывает на новые адреса . Последний раз редактировалось sergey.serg-72; 11.02.2022 в 04:19. |
11.02.2022, 04:36 | #263 |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 376
|
Сделал так чтоб отследить понятней было :
Код:
Второй кусок ($0000, $090, $A0F0), не считывает и не записывает на заданный адрес и это факт ! |
11.02.2022, 05:47 | #264 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
If'ы, которые проверяют, что диапазон входит в файл, можно убрать, а вот выставление позиции в файле надо было оставить.
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
11.02.2022, 06:49 | #265 |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 376
|
|
11.02.2022, 08:07 | #266 | |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 376
|
Цитата:
И ограничивать не хочется размер и чтоб не висла так. Сильно виснет .... |
|
11.02.2022, 08:23 | #267 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Так не получится. Или нужно проверять диапазоны старыми условиями на то, что они находятся в файле. Или добавить проверку количества считанных из файла байтов (но тогда частично имеющийся в файле диапазон тоже будет напечатан). Или задавать изначально только такие диапазоны, которые точно будут в файле. Раз ничего из вышеперечисленного нет, то чтение уходит в бесконечный цикл со считыванием нулевого количества байтов и записью одинаковых строк в выходной файл.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
12.02.2022, 05:59 | #268 | |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 376
|
Цитата:
Мне прислал батан вопрос и озадачил меня, я в ступоре чуток, он сказал что реально, я ответил что нет. Поспорили с ним. Суть вопроса в том, чтоб добавить на один из считанных адресов заполнение FF, или 00. Скажем считали мы диапазон записали на другое место, а старое место заполнили 00 скажем. Вот я озадачился возможное такое, в одном цикле, или нет? батан утверждает что можно. Я кроме такого варианта не вижу, но он плохой вариант надо вводить Stream: TMemoryStream; Будет ошибка. Вот скажем диапазон :0000, $090, $A0F0), мы считали с него данные и записали на другой адрес, а вот его место там байт 100 получится ну , или больше заполнить 00 и так сохранить уже. begin p := Stream.Memory; inc(p, $0); for i := 1 to 100 do begin p^ := $00; inc(p); end; наверное до записи где то так перед кодом этих строк чтения и записи addr := fbin.Position; read_count := fbin.Read (b[0], min(BYTES_IN_LINE, ranges1[j, 1]-addr )); Но что то не получается, не нравится компилятору p := Stream.Memory;, мне она тоже не нравится, а есть ещё простой вариант, или утопия ? |
|
12.02.2022, 09:04 | #269 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Цитата:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
12.02.2022, 23:55 | #270 |
Форумчанин
Регистрация: 12.03.2019
Сообщений: 376
|
BDA, это не совсем то , скажем что заполнения не всего файла, а определённого адреса, который задан как тут например :i nc(p, $10);
for i := 1 to 100 do begin p^ := $00; inc(p); end Только по одному адресу , остальные игнорятся. И вообще , есть что то подобное, адресное для TFileStream; ? Бывает что только один адрес нужно затереть, а не всё. И как я понял это пишет только для FF, а если для 00 нужно? Что то универсальное бы и простое типа как выше в примере. Только для TFileStream? Последний раз редактировалось sergey.serg-72; 13.02.2022 в 00:10. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно создать "батник", вырезать из "2.txt" первых n строк и вставить их в "1.txt" | temphard | Помощь студентам | 2 | 03.09.2013 16:03 |
Удаление первых n-строк из txt-файла | Neksion | Помощь студентам | 2 | 10.07.2013 18:12 |
Создать чтение из файла и запись в файл txt на С++ | skifre | Фриланс | 0 | 01.06.2012 16:16 |
поиск и выципление строк из txt файла | D_e_n_n | Помощь студентам | 7 | 04.02.2011 05:39 |
C# Представление txt файла как массива строк | asheb | Помощь студентам | 7 | 20.04.2010 12:51 |