Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > OpenDialog, SaveDialog и Edit


Автор: RomaWise 4.12.2014, 14:32
Как вывести в едиты содержимое txt файла построчно с помощью компонента OpenDialog? Т.е. первая строка документа в едит1, вторая строка в едит2 и т.д. И соответственно обратное действие - сохранение (Через SaveDialog). Мемо не предлагать, мне нужны именно едиты.

Заранее огромное спасибо.

Автор: Poseidon 4.12.2014, 16:15
Считать файл в TStringList.
Заполнять Edit в соответствии с индексами TStringList.

Наглядно как-то так:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
begin
  if OpenDialog1.Execute then
    begin
      SL := TStringList.Create;
      try
        SL.LoadFromFile(OpenDialog1.FileName);
        if SL.Count <> 2 then
          Exit;

        Edit1.Text := SL[0];
        Edit2.Text := SL[1];
      finally
        SL.Free;
      end;
    end;
end;


Для универсальности стоило бы тут циклом присвоение делать, но в общем картина должна быть понятна.

Автор: drdead84 6.12.2014, 14:05
а если кол-во едитов неизвестно - можно их создавать на ходу.

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
ed:Array[0..500] of TEdit;
ind,i,c:integer;
begin
 if OpenDialog1.Execute then
    begin
      SL := TStringList.Create;
  ed:=TEdit.Create(self);
 ed.Parent:=  form1;
      try
        SL.LoadFromFile(OpenDialog1.FileName);
c:=sl.count;
for i:=1 to c+1 do
begin
 with ed[i] do //размещаем едиты
   begin
   Width := 100;
      Height := 30;
    Left := 3;
      Top := i*(height+3); //прикинем высоту едита и добавим еще 3 для отступа
   end;
// заполняем
for i:=1 to c+1 do
begin
ind:=i-1;
ed[i].caption:= SL[ind];
end;
finally
        SL.Free;
      end;


немного сумбурно - пишу на коленке  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)