На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> чтение из файла .reg
    Здавствуйте, есть файл.reg, следующего содержания:
    ExpandedWrap disabled
      Windows Registry Editor Version 5.00
       
      [HKEY_CURRENT_USER\Software\Akelsoft]
       
      [HKEY_CURRENT_USER\Software\Akelsoft\AkelPad]
       
      [HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Options]
      "ReadOnly"=dword:00000000
      "MarginsPrint"=hex:e8,03,00,00,e8,03,00,00,e8,03,00,00,e8,03,00,00
      "LanguageModule"="Russian.dll"
    Как его сохранить в текстовый файл, в следующем виде:
    ExpandedWrap disabled
      Root: HKCU; SubKey: Software\Akelsoft\AkelPad\Options; ValueType: dword; ValueName: ReadOnly; ValueData: $00000000
      Root: HKCU; SubKey: Software\Akelsoft\AkelPad\Options; ValueType: binary; ValueName: MarginsPrint; ValueData: e8 03 00 00 e8 03 00 00 e8 03 00 00 e8 03 00 00
      Root: HKCU; SubKey: Software\Akelsoft\AkelPad\Options; ValueType: string; ValueName: LanguageModule; ValueData: Russian.dll
    Если не сложно, можете накидать пример или где об этом прочитать?
      Цитата Serega_ @
      Как его сохранить в текстовый файл, в следующем виде:

      Загнать файл в StringList, в цикле просматривать каждую строку и составлять свою, которую можно затем писать в Мемо (для наглядности). По окончании цикла - сохранять данные из Мемо в файл в новом виде. :D
        Цитата
        Загнать файл в StringList, в цикле просматривать каждую строку и составлять свою
        Если не сложно, можете показать пример как это сделать?
        Сообщение отредактировано: Serega_ -
          Цитата Serega_ @
          Если не сложно, можете показать пример как это сделать?

          А в чем проблема? Не получается загнать в список? Не получается распарсить строку и привести ее к виду, представленному тобой? Не получается сохранить новый файл? Или что то другое? :wacko:
            medved_68, дело в том, что только учусь и не знаю как
            Цитата
            Не получается загнать в список? Не получается распарсить строку и привести ее к виду, представленному тобой?

            Т.е. я сделал на форме mmo1: TMemo и пытаюсь загрузить в него файд.reg
            ExpandedWrap disabled
              mmo1.Lines.LoadFromFile(dlgOpen1.FileName);

            Получаю три корявых символа... Ну, а как распарсить строку и привести ее к виду представленному выше, я вообще не знаю...
              Цитата Serega_ @
              Получаю три корявых символа...

              Правильно получаешь. В каком формате у тебя *.reg файлы? У меня, например, Windows Registry Editor Version 5.00 сохраняет в юникоде. Подозреваю, что и у тебя тоже. Поэтому есть варианты:
              1. Использовать TntMemo - тогда сие:
              Цитата Serega_ @
              ExpandedWrap disabled
                mmo1.Lines.LoadFromFile(dlgOpen1.FileName);
              получится без проблем и ты увидишь в Мемо (ТНТ компонент) свой файл.
              2. Открыть файл в блокноте и сохранить как ANSII - тогда ты и в обычном Мемо увидишь.
              3. Сделать лишние телодвижения перед загрузкой файла - преобразовать его, выкинув байты $FF,$FE,$00 из файла - тогда он станет ANSII формата и спокойно загрузится в обычный Мемо или список.
              Выбор за тобой. :D

              Добавлено
              Цитата Serega_ @
              Ну, а как распарсить строку и привести ее к виду представленному выше, я вообще не знаю...

              При помощи Pos , т.е. получаешь строку из списка - проверяешь на вхождение символов '[',']' - есть значит проверяем что там и заменяем на Root: HKCU или Root: что то еще, выдергиваем путь, пишем SubKey + путь. Далее - параметры. Если параметров нет - можно сразу пропускать (зависит от задания). :D
                medved_68, а где можно почитать про TntMemo и где можно его скачать?
                  Цитата Serega_ @
                  medved_68, а где можно почитать про TntMemo и где можно его скачать?

                  Могу выслать установочный пакет - 594К. У тебя какая Дельфи? У меня в 7 нормально встал и работоспособен, про другие не скажу - не знаю. :D
                    medved_68, у меня тоже семёрка... Ну если не сложно, то буду благодарен...
                      Цитата Serega_ @
                      Ну если не сложно, то буду благодарен...

                      Куда? Или на файлообмен? :D
                        на файлообмен или на serg_0675@mail.ru ;)
                          Цитата Serega_ @
                          на файлообмен или на serg_0675@mail.ru

                          Сбросил на мыло. :D
                            medved_68, спасибо, буду пока разбираться...
                              Цитата Serega_ @
                              medved_68, спасибо, буду пока разбираться...

                              Как скажешь. :D Я бы выбрал 3 вариант - преобразовал файл примерно так:
                              ExpandedWrap disabled
                                procedure TForm1.Button1Click(Sender: TObject);
                                var
                                  Files:TFileStream;Memos:TMemoryStream;
                                  Data:Byte;
                                begin
                                  if OpenDialog1.Execute then
                                    begin
                                      Files:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
                                      Memos:=TMemoryStream.Create;
                                      repeat
                                        Files.ReadBuffer(Data,1);
                                        if (Data=$FF) or (Data=$FE) or (Data=$00) then
                                          Data:=$00
                                            else
                                              Memos.WriteBuffer(Data,1);
                                      until Files.Position = Files.Size;
                                      Files.Free;
                                      Memos.Position:=0;
                                      Memo1.Lines.LoadFromStream(Memos);
                                      Memos.Free;
                                    end;
                                end;
                              - вариантов много, можно выбрать и оптимальный и не заморачивался с юникодом. :D
                                medved_68, спасибо за пример и за компонент, загружается и в том и в другом случае нормально.
                                Но дальше, чего-то я совсем запутался, т.е я хотел сделать, в Memo1 загружать файл .reg, а в Memo2 загружать уже конвертированный вариант, чтоб было их оба видно и можно было бы их сравнить... Каким образом пользоваться Pos? Как проверить на вхождение символов '[',']'?
                                Из тех примеров, которые нашёл, я ничего не понял...
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0625 ]   [ 16 queries used ]   [ Generated: 20.05.24, 01:35 GMT ]