Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2014, 17:31   #21
Ariomex
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
я ваще то даже не в курсе что такое отступ...

вы какую задачу решаете? у вас что структура меняется сама по себе или же несколько жесткая?
Отступ=таб(табуляция).
Я работаю с файлом конфигурации чужой программы, а она во время своей работы может менять некоторые записи в этом файле. Ну и иногда может добавлять отступ/пробел в строке до параметра...
Ariomex вне форума Ответить с цитированием
Старый 27.05.2014, 17:35   #22
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

что-то вы темните, не может программа менять
eval вне форума Ответить с цитированием
Старый 27.05.2014, 17:39   #23
Ariomex
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
что-то вы темните, не может программа менять
Что значит "не может" ? Есть программа и есть её же конфиг-файл. Так в чём проблема ?
Ariomex вне форума Ответить с цитированием
Старый 27.05.2014, 17:43   #24
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

с чего вы взяли что у меня проблема? нет их
eval вне форума Ответить с цитированием
Старый 27.05.2014, 19:35   #25
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ну и иногда может добавлять отступ/пробел в строке до параметра...
Чет я не понял а от чего это зависит? Само собой то он не добавляется, значит сторонняя программа делает это с каким то умыслом. Возможно сами данные не обрезаются, а это значит что они некорректно введены пользователем (это я к примеру если пользователь косячит). Понятное дело что я не утверждаю что тут человесческий фаткор, но я бы поинтересовался откуда такие неточности.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2014, 02:01   #26
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от Ariomex Посмотреть сообщение
Переделал полностью на TStringList, всё работает.
Обращаюсь к параметру, например, так:
Код:
Edit1.Text:=STR.Values['имя параметра'];
Но здесь важны пробелы и/или отступы в строке от её начала до имени параметра. Можно, конечно, писать [' имя параметра'], но если в исходном файле добавить/убрать пробел/отступ, то ничего работать не будет. Это можно как-нибудь решить ?
И ещё один момент - всё работает с текстом формата:
Код:
Параметр1=Значение1
Но не работает с:
Код:
Параметр1="Значение1"
Как быть с кавычками ?
И ты ещё утверждал, что если добавить в файл секцию и использовать TIniFile, то всё работает? Или я что-то путаю?
northener вне форума Ответить с цитированием
Старый 28.05.2014, 03:12   #27
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,866
По умолчанию

Что-то вы затролили человека.

Код:
  TCFGFile = class(TStringList)
  public
    constructor Create(const FileName: string);
    procedure LoadFromFile(const FileName: string);
  end;
...
constructor TCFGFile.Create(const FileName: string);
begin
  inherited Create;
  LoadFromFile(FileName);
end;

procedure TCFGFile.LoadFromFile(const FileName: string);
var
  i: Integer;
begin
  inherited LoadFromFile(FileName);
  for i := 0 to Count - 1 do
    Put(i, TrimLeft(Get(i)));
end;
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  cfg: TCFGFile;
  i: Integer;
begin
  cfg := TCFGFile.Create('1.cfg');
  ShowMessage(cfg.Values['par1']);
  cfg.Free;
end;
1.cfg:
Код:
	par1=val1
  Par2=val2
a=2014
Arigato вне форума Ответить с цитированием
Старый 28.05.2014, 07:43   #28
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а если справа начнут появляться, а потом и в середине? у него программа живет своей жизнью, не было "отступов", потом вдруг появились .. мистика
eval вне форума Ответить с цитированием
Старый 28.05.2014, 09:23   #29
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,866
По умолчанию

Ну пробелы справа уже относятся к самому значению параметра, а вот в районе "=" вполне могут быть пробелы, которые можно считать незначимыми. Но шаблон дан, так что при необходимости ТС может провести любую предварительную обработку.
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. TIniFile без перезаписи Человек_Борща Общие вопросы Delphi 12 02.01.2020 09:47
TMemo и TIniFile Volkogriz Общие вопросы Delphi 11 29.12.2012 08:29
TStringList и TIniFile -Jack- Общие вопросы Delphi 3 16.10.2012 09:56
Имена всех секций всех ini-файлов (DELPHI) Dj_SheLL Помощь студентам 7 10.10.2010 17:44
TIniFile matus Общие вопросы Delphi 6 21.02.2008 13:59