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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2008, 06:48   #1
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
Восклицание Как записывать и считывать Ini File с набором строк (#10#13) в одном параметре?)

Доброе утро!

Как записать в Ini File, а затем загрузить из него текстовый файл, содержащий #10#13, т.е. имеющий набор строк.

Например,

есть текст:

Первая строчка
Вторая строчка
Третья строчка


необходимо этот текст записать в один параметр, например,
0000=Первая строчка#10#13Вторая строчка#10#13Третья строчка

Сейчас запись неверная, при считывании получается одна строка:
Первая строчка#10#13Вторая строчка#10#13Третья строчка,

а нужен текст:
Первая строчка
Вторая строчка
Третья строчка


Или есть иной путь, например так можно записать в реестр?

Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 14.11.2008, 12:23   #2
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Скажите, а зачем в ini. файл записывать тестовый файл? Не проще ли записать текстовый файл с любым расширением на диск, а в ini. файл записать в качестве параметра путь к этому файлу.
Например:
[TEXTFILE]
TextFile1=C:\MyFile\Text1.ptr
MalexG вне форума Ответить с цитированием
Старый 14.11.2008, 13:15   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

При загрузки обрабатывать всю строчку на поиск #10#13 и если найден, остальной текст переносим на другую строчку и так до конца
FaTaL вне форума Ответить с цитированием
Старый 14.11.2008, 13:22   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Вариант 1.
Пропускать через эти две функции при чтении-записи в/из ini-файл
ЧТЕНИЕ:
Код:
function IniStrToStr(const Str: string): string;
var
  Buffer: array[0..4095] of Char;
  B, S: PChar;
begin
  if Length(Str) > SizeOf(Buffer) then
    raise Exception.Create('Строка для чтения из INI файла');
  S := PChar(Str);
  B := Buffer;
  while S^ <> #0 do
    if (S[0] = '\') and (S[1] = 'n') then
    begin
      B^ := #13;
      Inc(B);
      B^ := #10;
      Inc(B);
      Inc(S);
      Inc(S);
    end
    else
    begin
      B^ := S^;
      Inc(B);
      Inc(S);
    end;
  B^ := #0;
  Result := Buffer;
end;
ЗАПИСЬ:
Код:
function StrToIniStr(const Str: string): string;
var
  Buffer: array[0..4095] of Char;
  B, S: PChar;
begin
  if Length(Str) > SizeOf(Buffer) then
    raise Exception.Create('Текст слишком большой для добавления в INI файл');
  S := PChar(Str);
  B := Buffer;
  while S^ <> #0 do
    case S^ of
      #13, #10:
        begin
          if (S^ = #13) and (S[1] = #10) then Inc(S)
          else if (S^ = #10) and (S[1] = #13) then Inc(S);
          B^ := '\';
          Inc(B);
          B^ := 'n';
          Inc(B);
          Inc(S);
        end;
    else
      B^ := S^;
      Inc(B);
      Inc(S);
    end;
  B^ := #0;
  Result := Buffer;
end;
Вариант 2.
Вместо ini-файла использовать бесплатный модуль TDataFile.
Там есть функции ReadStrings и WriteStrings.
_SERGEYX_ вне форума Ответить с цитированием
Старый 15.11.2008, 00:02   #5
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Спасибо всем
SkAndrew вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как считывать данные с COM,LPT порта и нарисовать график Sergiu Фриланс 2 22.12.2007 11:53
Как записывать в файл Rain Общие вопросы Delphi 5 15.09.2007 18:56
Как записывать CD-R, CD-RW??? UnD)eaD)Snake Общие вопросы Delphi 6 19.07.2007 09:50
как считывать информацию с doc файла ar4i Общие вопросы Delphi 2 11.12.2006 12:52