-
Подскажите, какие есть способы поиска и дальнейшей работы в файле? Допустим мне нужно найти строку и поставить в её конец курсор, затем перевести его на пару строк ниже(просто изменение положения, а не вставка строки), а затем поставить курсор опять в конец строки и перевести её уже с добавкой новой строки.. Собственно здесь используются все методы..и считывание, и поиск, и запись...как это все реализовать?
-
Ещё добавлю, это делается для редактирования html страниц, но не во всех будет определенный кусок кода(то, что мы будем искать). Поэтому мне надо ещё делать и проверку, найдено или нет..А перечислить все файлы, в которых ведется поиск нельзя, т.к. будут постоянно добавляться новые
-
Описанное не имеет ничего общего с "работой в файле", хотя бы потому что в файле нет никакого "курсора".
-
> [2] Сергей М. © (29.03.08 19:10)
Ну, курсором можно считать переменную, в которой будет храниться указатель на текущую позицию, от начала файла.
-
> Andy BitOff © (29.03.08 19:19) [3]
Следует просто формализовать задачу, а не уподобляться чукче ("что вижу, то пою")
-
> Dark © (29.03.08 19:08) [1]
По-моему, стоит прочитать файл полностью в оперативную память (например в строку) и после всех правок перезаписать на диск.
-
> Сергей М.
Если ты сразу все понял, зачем разводить флуд?
> Andy BitOff ©
Ага, ты правильно выразился
-
> palva ©
Допустим, я его считываю в Мемо, в нем есть ф-ции поиска и работы с позицией курсора?
-
Как вариант используй TFileStream. С помощью его методов Seek, Write, Read и свойств Position, Size реализуй нужный тебе функционал.
-
> Dark © (29.03.08 19:37) [6]
>
>
Если тебе нужно найти строку N и вставить пустую строку в позицию N+2, то так и скажи)
-
> Допустим, я его считываю в Мемо, в нем есть ф-ции поиска и работы с позицией курсора?
А для чего читать в Мемо? Неужели вы хотите визуально наблюдать процесс обработки и вмешиваться в него с клавиатуры? Ну да дело ваше.
И вопрос какой-то странный. Несомненно, кто-то написал такие функции. Не думаю, что они представляют какую-то ценность, поскольку любой программист напишет их за 10 минут. Хотя наверняка есть программисты, которые с гордостью выложили такие функции в Интернет, не думаю, что их продукцию следует разыскивать и использовать. Самому надежнее написать.
-
> Подскажите, какие есть способы поиска и дальнейшей работы
> в файле? Допустим мне нужно найти строку и поставить в её
> конец курсор, затем перевести его на пару строк ниже(просто
> изменение положения, а не вставка строки), а затем поставить
> курсор опять в конец строки и перевести её уже с добавкой
> новой строки.. Собственно здесь используются все методы.
> .и считывание, и поиск, и запись...как это все реализовать?
>
Не совсем понял, "строка" в данном случае это последовательность допустимых символов заканчивающаяся символом возврата каретки?
Если да, то какое это отношение имеет непосредственно к парсингу html - файла, там во внимание следует принимать другие вещи - тэги например.
-
Парсинг html здесь нипричем, я его буду редактировать(html файл), как текстовый. В моем случае это удобнее. СОбственно пока со всем разобрался. Но вот возник вопрос, везде разные кодировки..как в делфи настроит ьу своей программы кодировку виндоуз? А то русские не ищет символы, только латинские и цифры. Походу у меня в файлах и в делфи разные кодировки
-
Неужели нету возможности настройки кодировки проекта?
-
кодировку нужно не у проекта менять, а у набора символов с которым работаешь.
-
Ладно, тогда как у RichEdit заменить кодировку? Облазил все параметры lines и text...не нашел..f1 не помагает
-
> Dark (29.03.2008 21:50:15) [15]
Свойство Font, но толку то менять кодировку?
Надо не кодировку менять, а приводить к понимаемой.
-
Понимаемую я знаю...на неё и хочу поменять.
-
Спасибо, оно!
-
TFontCharset - нашел по нему список кодировок в хелпе..возник вопрос, потому что ничего типа win1251 я там не нашел: что является прототипом win1251 кодировки? Да, и поддерживает RichEdit кодировки только с окончанием _CHARSET, а на остальные типа fcsUnicode ругается. Мои действия: гружу файл в ричэдит,добавляю строки,сохраняю, получаю абракадабру....хотя исходный файл выглядит нормально
-
Выяснил кое-что опытным путем: в блокноте и IE абракадабра, а в WordPad'е все отлично(
-
;-) Все, пора завязывать ночью программировать..richedit то в .rtf сохранял..а надо мемо юзать)
-
> а надо мемо юзать
Надо StringList юзать, если, как я понимаю, ты програмным путем все меняешь.
-
Да, меняю программным..а какое преимущество у СтрингЛист перед Мемо?
-
огромное! это разные вещи вообще!
-
O_o понятно что разные..но преимущество..?
-
Да собстно, можешь использовать что хочешь, хоть TWebBrowser. Тебе люди говорят, что было бы использовать лучше, а ты всё преимущества, преимущества. Просто поверь на слово ;)
-
> Dark © (29.03.08 22:44) [25]
TMemo это целый контрол. Его Lines:TStrings это объект, каждый чих с которым оборачивается отсылкой сообщения окну контрола. Что ты к этому TMemo прицепился? Это компонент визуализации и редактирования пользователем текста.
TStringList же, в свою очередь, сравнительно легковесный класс. И создан для хранения и обработки набора строк + еще немножко вкусностей. То бишь, как раз для того чего ты и пытаешься делать.
-
Хм..если так..а то у меня просто нету ни одной книжечки по Длефи на рукках...даже в pdf версии ни одной..точнее есть..Фленова..но..такое чтиво..ничего толком полезного..все нюансы обходит стороной
-
> Хм..если так..
нет, блин, я тут все на ходу насочинял :)
> нету ни одной книжечки по Длефи на рукках
За то у тебя есть справочка и исходнички. Можешь во очию во всем этом убедиться. Посмотри реализацию TCustomMemo и удивись сколько там всего происходит ненужного для задачи хранения и обработки строк.
> Фленова..но..такое чтиво..ничего толком полезного..все нюансы обходит стороной
да он их и сам не знает, о чем ты... выкинь ее ф топпку... там бреда немало...