![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| -----DelphiMan |
|
|||
|
Unregistered |
Меня интересует как имея текстовый фаил
найти внём нужную ЛИНИЮ по 10-ти начальным символам строки и совершить над этой линией следующие действия: 1) Заменить 2) Переименовать 4) Сместить позицию (Вверх /Вниз) Конечно это можно былобы сделать открыв фаил в Какомнить Memo или RichEdite но поскольку размер файла очень большой то на его загрузку и сохранение уйдёт куча времени. |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
FileSeek, BlockRead, BlockWrite.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| -----DelphiMan |
|
|||
|
Unregistered |
Ну и как задать для FileSeek нужную строку ?
|
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
а что, размер линий разный?
тогда for i := 1 to 10 do ReadLn (f, s); после окончания цикла в s будет десятая строка. меняем её как нам надо. потом: for i := 1 to 9 do ReadLn (f, s); WriteLn (f, s); -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
а, торможу. тебе ж надо не десятую, а по первым символам.
читай строки, для каждой делай Pos. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| -----DelphiMan |
|
|||
|
Unregistered |
Ну и как используя WriteLn сделать запись скажем
в серидине файла? |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
делаешь в цикле ReadLn (f, s), пока не выполнится какое-то условие (не наступит "середина файла", к примеру), а потом делаешь WriteLn.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
А можно узнать, что вы называете большим файлом?
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| RA |
|
||||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Ошибка будет. Добавлено @ 21:02
Как я понял это когда размер файла больше Оперативной памяти |
||||
|
|||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
RAdmin, ты имеешь в виду Reset/Rewrite? не будет ;)
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 4 Всего: 110 |
открываем два файла (один из них исходный, другой - для результата)
читаем один по кусочкам вносим изменения пишем резуьтат во второй файл Добавлено @ 15:48 кстати, в виду больших объемов информации не помешало бы пользоваться системными функциями работы с файлами (я тестов не проводил, но по идее они должны быть быстрее) -------------------- qqq |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Нет ну всетаки какой файл по размеру?
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
alex-co, действительно
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| RA |
|
||||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Ага, ибо либо одно либо другое. Если Rewrite то придётся весь фаил перезаписывать, а прикинь он весить будет около гига, ну а ресет сам знаешь что даёт Как вот такой вариант ?
|
||||
|
|||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
RAdmin, ты считаешь, что твой вариант будет нормально себя чувствовать при весе файла около гига?
нет, народ, для действительно больших файлов надо либо делать файл-маппинг, либо вообще читать напрямую диск. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |