На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Replace text in file.
    Приветствую!
    Пишу для себя класс, что-то типа работы с INI файлами. Но есть одна загвоздка.
    При StreamWriter и его Write метода, указываю позицию куда писАть, буфер и все такое, а он текст в конец пихает. Вопрос заключается в следующем:
    Есть ли какая функция Replace'мента. Тоесть если в файле
    куку=1
    меняю=2
    нет=5
    как поменять меняю=2 на неменяю=3.
    Есть какие идеи? Или я что-то пропустил?Implementation of INI files нету в .НЕТе :( а жаль.
      Господи, ну конечно же пропустил. Вещь под названием XML. Про ini нужно забыть и как можно быстрее. В противном случае можно заюзать регулярные выражения и соорудить поддержку ini, но кто бы мне объяснил зачем?
      Сообщение отредактировано: kl -
        Нужда такая:) Для себя... вещь то удобная, ничем не хуже для зранения настроек.
          Намного проще (особенно если для себя) работать со стандартным XML а не с старинным INI. Например я храню настройки в таком фийле:
          ExpandedWrap disabled
            <br><?xml version="1.0" encoding="windows-1251"?><Configuration><br><Set name="SearchColumns.ProductionInfo" value="System.Collections.ArrayList" type="string[]" array="Наименовение продукции      Торговая марка      Модели      Изготовитель" /><br><Set name="SearchColumns.Contacts" value="System.Collections.ArrayList" type="string[]" array="Должность      Имя      Примечания" /><br><Set name="ConnectString" value="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=OTP;Data Source=ANDREYA;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ANDREYA;Use Encryption for Data=False;Tag with column collation when possible=False;App=PClient v0.70;" type="string" /><br><Set name="SavePath" value="" type="string" /><br><Set name="InitializeCulture" value="False" type="bool" /><br></Configuration><br>

          и это НАМНОГО удобнее и быстрее в реализации чем INI
            Уговорили:) Счас нарою в МСДНе инфу о XMLWrite и Read... буду в XML пихать настройки программы...просто наверное год сидел на Дельфи, а потом год на Билдере, там все время с ИНИ файлами игрался, потом на Студию перебрался и влюбился в С# 8-)
            Может есть где доки почитать на русском как с XML работать в С#?
              Да нафиг на русском, глянь на XMLNodeReader класс (например метод Read) там будет пример.
                kl, если можно обьясни на пальцах как это все делается. Мне нужно записывать в файл настройки и считывать настройки.Я понял нужно создать XmlTextReader r=new XmlTextReader(...) XmlTextWriter w = new XmlTextWriter(...);
                дфльше если я пишу w.WriteString("blabla"); то документ всеравно не изменяется.
                Пример документа, который нужно получить:
                ExpandedWrap disabled
                  <br><sklad><br>  <pivo proizvoditel="baltika" sorta="10"><br>    <nazvanija><br>      <ap1>Vkusnoje</ap1><br>      <ap2>Gorkoje</ap2><br>    </nazvanija><br>   </pivo><br>  <vodka proizvoditel="alyta" sorta="4"><br>    <nazvanija><br>      <ap1>Anisovaja</ap1><br>      <ap2>S percem</ap2><br>    </nazvanija><br>   </pivo><br> </sklad><br>

                И как запихать array strings и считать их, допустим если я хочу, чтобы для каждого сорта была определена цена и год выпуска?
                  С write'om вроде разобрался 8-) Не могу понять как поменять в существующем ХМЛ какиенить атрибуты... Кто в этом разбирается, обьясните плиз:) Ато я уже закопался:) Голова кипит...
                    Ну вот, покапался. Сделал вывод, что ХМЛ не очень подходят для хранения малых настроек, которые постоянно могут меняться
                    Насколько я понял, чтобы изменит чтото в ХМЛ, нужно закидывать настройки в буффер, изменить и заного закинуть в ХМЛ(или я что-то недосмотрел?).
                    Чтобы получить стринг из середины ХМЛ, нужно пройти readом до него 8-\
                    Блин, или я настолько запарился, что не вижу элементарных вещей, или и вправду все так тяжко с ХМЛом.
                      Цитата Technos, 18.07.03, 17:46:28
                      Ну вот, покапался. Сделал вывод, что ХМЛ не очень подходят для хранения малых настроек, которые постоянно могут меняться

                      Подходит не менее чем ini.
                      Цитата

                      Насколько я понял, чтобы изменит чтото в ХМЛ, нужно закидывать настройки в буффер, изменить и заного закинуть в ХМЛ(или я что-то недосмотрел?).

                      Вовсе нет. Смотри метод что-то типа SelectNodes (сейчас не могу точно сказать, извиняй). В качестве параметра передается XPath-expression. Если с XPath не знаком - ознакомься, без этого никуда. Здесь есть доки на русском.
                      Цитата

                      Чтобы получить стринг из середины ХМЛ, нужно пройти readом до него 8-\

                      Аналогично
                      Цитата

                      Блин, или я настолько запарился, что не вижу элементарных вещей, или и вправду все так тяжко с ХМЛом.

                      Запарился. Такие вещи за день не делаются ;)
                        Спасибо за линк:) ХМЛ такой огромный:) МОГУЧ!:) Буду копаться. Еще раз большое спасибо за хелп!
                          А как насчет безопасности? ;D
                            Цитата BeginningAlex, 08.08.03, 13:45:38
                            А как насчет безопасности? ;D

                            Какой безопасности? Ты о чем?
                              Извините, может вопрос мой дурной (ведь я зеленый новичек), но разве не может пользователь в том же блокноте взять и изменить хмл файл с вашими настройками, испортив выполнение программы и уничтожив информацию. ???
                                Если он хочет что-то испортить, в программе, которую сам же купил - это его дело. С таким же успехом, он может испохабить реестр или вовсе стереть ехе с диска
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0415 ]   [ 16 queries used ]   [ Generated: 27.04.24, 23:40 GMT ]