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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2010, 11:42   #1
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию stream inifile

как получить stream, переменной класса Tinifile? Или есть другие классы? заранее благодарин.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 27.07.2010, 12:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А зачем? Если конечно не секрет. Что ты конкретно сделать хочешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.07.2010, 12:53   #3
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Я хочу за архивировать в один файл ini файл и картинки вот как я пробовал сделать собственный ini но както коряво
Код:

function Tform1.poisk(textpoiska,text:string):boolean;
var
s:string;
e,n:integer;
begin
if (text='') or (textpoiska='') then exit;
s:='';
e:=1;
n:=0;
for n:=1 to length(text) do begin
  if text[n]=textpoiska[e] then begin
  e:=e+1;
  s:=s+text[n];
  end;
if s=textpoiska then begin
result:=true;
exit;
end;
  end;
  result:=false;
end;

function Tform1.sobs_ini_format_read(inimemo:Tstringlist;Section,indent:string):string;
var
n,n2:integer;
s:string;
begin
for n:=0 to inimemo.Count-1 do begin
if poisk('['+Section+']',inimemo.Strings[n])=true then begin
n2:=n+1;
s:=inimemo.Strings[n+1];
while s[1]<>'[' do begin
s:=inimemo.Strings[n2];
if poisk(indent,inimemo.Strings[n2])=true then begin
result:=onposle(inimemo.Strings[n2],'=');
    end;
    inc(n2);
   end;
  end;
 end;
end;

function Tform1.sobs_ini_format_write(inimemo:Tstringlist;Section,indent,text:string):Tstringlist;
var
n,n2:integer;
s:string;
begin
for n:=0 to inimemo.Count-1 do begin
if poisk('['+Section+']',inimemo.Strings[n])=true then begin
n2:=n+1;
s:=inimemo.Strings[n+1];
while s[1]<>'[' do begin
s:=inimemo.Strings[n2];
if poisk(indent,inimemo.Strings[n2])=true then begin
inimemo.Strings[n2]:=indent+'='+text;
result:=inimemo;
exit;
    end;
 inc(n2);
   end;
  end;
 end;
 inimemo.Add('['+Section+']');
 inimemo.Add(indent+'='+text);
 result:=inimemo;
end;

function Tform1.sobs_ini_format_writeint(inimemo:Tstringlist;Section,indent:string;intte:integer):Tstringlist;
var
n,n2:integer;
s,text:string;
begin
text:=inttostr(intte);
for n:=0 to inimemo.Count-1 do begin
if poisk('['+Section+']',inimemo.Strings[n])=true then begin
n2:=n+1;
s:=inimemo.Strings[n+1];
while s[1]<>'[' do begin
s:=inimemo.Strings[n2];
if poisk(indent,inimemo.Strings[n2])=true then begin
inimemo.Strings[n2]:=indent+'='+text;
result:=inimemo;
exit;
    end;
    inc(n2);
   end;
  end;
 end;
 inimemo.Add('['+Section+']');
 inimemo.Add(indent+'='+text);
 result:=inimemo;
end;
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 27.07.2010, 13:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так. дай ка проясню - ты хочешь запихнуть картинки потоком в ИНИ файл? Или заархивировать кучу картинок и ини файл в некий архив аки winRAR делает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.07.2010, 13:19   #5
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Или заархивировать кучу картинок и ини файл в некий архив
Да, просто ini мне нужен как файлик где находяться координаты картинок на форме.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 27.07.2010, 13:52   #6
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

А кто тебе мешает открыть ini как TFileStream?
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 27.07.2010, 14:28   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
где находяться координаты картинок на форме.
Малоинформативная тема, но...
Предположим у тебя есть на форме куча Image. Тогда
Код:
var ini:TIniFile;i:integer;
begin
 ini:=TIniFile.Create('c:\temp\ini.ini');
 for i:=0 to ComponentCount-1 do
  if Components[i] is TImage then begin
    ini.WriteInteger(Components[i].Name,'x',TImage(Components[i]).Left);
    ini.WriteInteger(Components[i].Name,'y',TImage(Components[i]).Top);
  end;
ini:=nil;
end;
Это запись. Ну а считать соответственно методом Readinteger;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.07.2010, 19:59   #8
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Да это я сделал но нужен именно stream для того чтоб архивировать, или всё таки надо создавать Temp.ini файл?
Воображение важнее, чем знания. (Albert Einstein)

Последний раз редактировалось dmitriegorovih; 27.07.2010 в 20:04.
dmitriegorovih вне форума Ответить с цитированием
Старый 27.07.2010, 20:13   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

наследник Tinifile
и
ini.WriteImage('img',n, Tmage );
ini.readImage();

TImageIni=class(TIniFile)
public
procedure WriteImage(img: Timage);
procedure readImage(img: Timage);
end;

procedure TImageIni.WriteImage(img: Timage);
var
simage: string;
begin
self.writeinteger(img.name, 'left', img.left);
// и все что нужно
simage:=// преобразуем img в строку
//Tinifile это ТЕКСТОВЫЙ файл
self.writeStr(img.name, 'img',s);
end;

аналогично пишем ReadImage
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 27.07.2010 в 20:22.
evg_m вне форума Ответить с цитированием
Старый 27.07.2010, 23:14   #10
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

evg_m Мне нужно чучуть другое, мне нужен stream ini не создавая его на диске, но я так понял что это не возможно.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
какой stream у image(a) dmitriegorovih Общие вопросы Delphi 4 23.07.2010 21:47
работа с stream Wi1D Общие вопросы C/C++ 4 29.12.2009 21:13
Сохранение в iniFile-ах Altera Общие вопросы Delphi 6 31.08.2009 11:08
Variant to Stream & Variant from Stream Oreol Общие вопросы Delphi 1 24.03.2009 13:14
Socket vs Stream JoanM Работа с сетью в Delphi 1 01.04.2008 10:10