• Dark © (29.03.08 19:06) [0]
    Подскажите, какие есть способы поиска и дальнейшей работы в файле? Допустим мне нужно найти строку и поставить в её конец курсор, затем перевести его на пару строк ниже(просто изменение положения, а не вставка строки), а затем поставить курсор опять в конец строки и перевести её уже с добавкой новой строки.. Собственно здесь используются все методы..и считывание, и поиск, и запись...как это все реализовать?
  • Dark © (29.03.08 19:08) [1]
    Ещё добавлю, это делается для редактирования html страниц, но не во всех будет определенный кусок кода(то, что мы будем искать). Поэтому мне надо ещё делать и проверку, найдено или нет..А перечислить все файлы, в которых ведется поиск нельзя, т.к. будут постоянно добавляться новые
  • Сергей М. © (29.03.08 19:10) [2]
    Описанное не имеет ничего общего с "работой в файле", хотя бы потому что в файле нет никакого "курсора".
  • Andy BitOff © (29.03.08 19:19) [3]
    > [2] Сергей М. ©   (29.03.08 19:10)

    Ну, курсором можно считать переменную, в которой будет храниться указатель на текущую позицию, от начала файла.
  • Сергей М. © (29.03.08 19:30) [4]

    > Andy BitOff ©   (29.03.08 19:19) [3]


    Следует просто формализовать задачу, а не уподобляться чукче ("что вижу, то пою")
  • palva © (29.03.08 19:37) [5]

    > Dark ©   (29.03.08 19:08) [1]

    По-моему, стоит прочитать файл полностью в оперативную память (например в строку) и после всех правок перезаписать на диск.
  • Dark © (29.03.08 19:37) [6]

    > Сергей М.

    Если ты сразу все понял, зачем разводить флуд?

    > Andy BitOff ©

    Ага, ты правильно выразился
  • Dark © (29.03.08 19:39) [7]

    > palva ©

    Допустим, я его считываю в Мемо, в нем есть ф-ции поиска и работы с позицией курсора?
  • trubin © (29.03.08 19:55) [8]
    Как вариант используй TFileStream. С помощью его методов Seek, Write, Read и свойств Position, Size реализуй нужный тебе функционал.
  • Сергей М. © (29.03.08 19:59) [9]

    > Dark ©   (29.03.08 19:37) [6]
    >
    >


    Если тебе нужно найти строку N и вставить пустую строку в позицию N+2, то так и скажи)
  • palva © (29.03.08 20:30) [10]
    > Допустим, я его считываю в Мемо, в нем есть ф-ции поиска и работы с позицией курсора?
    А для чего читать в Мемо? Неужели вы хотите визуально наблюдать процесс обработки и вмешиваться в него с клавиатуры? Ну да дело ваше.
    И вопрос какой-то странный. Несомненно, кто-то написал такие функции. Не думаю, что они представляют какую-то ценность, поскольку любой программист напишет их за 10 минут. Хотя наверняка есть программисты, которые с гордостью выложили такие функции в Интернет, не думаю, что их продукцию следует разыскивать и использовать. Самому надежнее написать.
  • trubin © (29.03.08 20:48) [11]

    > Подскажите, какие есть способы поиска и дальнейшей работы
    > в файле? Допустим мне нужно найти строку и поставить в её
    > конец курсор, затем перевести его на пару строк ниже(просто
    > изменение положения, а не вставка строки), а затем поставить
    > курсор опять в конец строки и перевести её уже с добавкой
    > новой строки.. Собственно здесь используются все методы.
    > .и считывание, и поиск, и запись...как это все реализовать?
    >


    Не совсем понял, "строка" в данном случае это последовательность допустимых символов заканчивающаяся символом возврата каретки?

    Если да, то какое это отношение имеет непосредственно к парсингу html - файла, там во внимание следует принимать другие вещи - тэги например.
  • Dark © (29.03.08 21:10) [12]
    Парсинг html здесь нипричем, я его буду редактировать(html файл), как текстовый. В моем случае это удобнее. СОбственно пока со всем разобрался. Но вот возник вопрос, везде разные кодировки..как в делфи настроит ьу своей программы кодировку виндоуз? А то русские не ищет символы, только латинские и цифры. Походу у меня в файлах и в делфи разные кодировки
  • Dark © (29.03.08 21:23) [13]
    Неужели нету возможности настройки кодировки проекта?
  • Palladin © (29.03.08 21:41) [14]
    кодировку нужно не у проекта менять, а у набора символов с которым работаешь.
  • Dark © (29.03.08 21:50) [15]
    Ладно, тогда как у RichEdit заменить кодировку? Облазил все параметры lines и text...не нашел..f1 не помагает
  • Anatoly Podgoretsky © (29.03.08 21:53) [16]
    > Dark  (29.03.2008 21:50:15)  [15]

    Свойство Font, но толку то менять кодировку?
    Надо не кодировку менять, а приводить к понимаемой.
  • Dark © (29.03.08 21:55) [17]
    Понимаемую я знаю...на неё и хочу поменять.
  • Dark © (29.03.08 21:59) [18]
    Спасибо, оно!
  • Dark © (29.03.08 22:15) [19]
    TFontCharset - нашел по нему список кодировок в хелпе..возник вопрос, потому что ничего типа win1251 я там не нашел: что является прототипом win1251 кодировки? Да, и поддерживает RichEdit кодировки только с окончанием _CHARSET, а на остальные типа fcsUnicode ругается. Мои действия: гружу файл в ричэдит,добавляю строки,сохраняю, получаю абракадабру....хотя исходный файл выглядит нормально
  • Dark © (29.03.08 22:21) [20]
    Выяснил кое-что опытным путем: в блокноте и IE абракадабра, а в WordPad'е все отлично(
  • Dark © (29.03.08 22:24) [21]
    ;-) Все, пора завязывать ночью программировать..richedit то в .rtf сохранял..а надо мемо юзать)
  • Andy BitOff © (29.03.08 22:30) [22]
    > а надо мемо юзать

    Надо StringList юзать, если, как я понимаю, ты програмным путем все меняешь.
  • Dark © (29.03.08 22:34) [23]
    Да, меняю программным..а какое преимущество у СтрингЛист перед Мемо?
  • Palladin © (29.03.08 22:41) [24]
    огромное! это разные вещи вообще!
  • Dark © (29.03.08 22:44) [25]
    O_o понятно что разные..но преимущество..?
  • Andy BitOff © (29.03.08 22:59) [26]
    Да собстно, можешь использовать что хочешь, хоть TWebBrowser. Тебе люди говорят, что было бы использовать лучше, а ты всё преимущества, преимущества. Просто поверь на слово ;)
  • Palladin © (29.03.08 23:52) [27]

    > Dark ©   (29.03.08 22:44) [25]


    TMemo это целый контрол. Его Lines:TStrings это объект, каждый чих с которым оборачивается отсылкой  сообщения окну контрола. Что ты к этому TMemo прицепился? Это компонент визуализации и редактирования пользователем текста.

    TStringList же, в свою очередь, сравнительно легковесный класс. И создан для хранения и обработки набора строк + еще немножко вкусностей. То бишь, как раз для того чего ты и пытаешься делать.
  • Dark © (29.03.08 23:58) [28]
    Хм..если так..а то у меня просто нету ни одной книжечки по Длефи на рукках...даже в pdf версии ни одной..точнее есть..Фленова..но..такое чтиво..ничего толком полезного..все нюансы обходит стороной
  • Palladin © (30.03.08 00:06) [29]

    > Хм..если так..

    нет, блин, я тут все на ходу насочинял :)


    > нету ни одной книжечки по Длефи на рукках


    За то у тебя есть справочка и исходнички. Можешь во очию во всем этом убедиться. Посмотри реализацию TCustomMemo и удивись сколько там всего происходит ненужного для задачи хранения и обработки строк.


    > Фленова..но..такое чтиво..ничего толком полезного..все нюансы обходит стороной

    да он их и сам не знает, о чем ты... выкинь ее ф топпку... там бреда немало...
Есть новые Нет новых   [134433   +22][b:0][p:0.001]