Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Save As....


Автор: Pariah 30.4.2006, 16:22
Дарова народ!
Надо тут инфу сохранить по нажатию на кнопку Save as.
Накидал код вроде правильно(при компиляции багов невылетает,но и понажатию на кнопку сохранить ничего несохраняется и багов невылетает!?!)  но чего-то нехватает а вот чего незнаю!
Прозьба исправить чо нетак в моём коде! 
Код

procedure TForm1.Button5Click(Sender: TObject);
const
FNAA = 'C:\Data.txt';
var
  F: TextFile;
  S : string;
  ListItem: TListItem;
  I : Integer;
begin
  AssignFile(F,FNAA);
Rewrite(F);
for i := 0 to listview1.Items.Count -1 do
begin
ListItem := listview1.Items[i];
s := '<YouText >' + listitem.Caption + '</ YouText >';
s := s + '<Password>' + listitem.SubItems.Strings[0] + '</ YouText >';
s := s + '<YouText >' + listitem.SubItems.Strings[1] + '</ YouText >';
s := s + '<YouText >' + listitem.SubItems.Strings[2] + '</YouText >';
Writeln(F, s);
end;
begin
SaveDialog1.Execute;  //нет здесь я неошибся, еслиб я хотел просто сохранить то написалбы CloseFile(f);  
   end;
 end;


 

Автор: Yanis 30.4.2006, 16:37
Pariah
Всё сохраняется. 

Автор: DigitalDummy 30.4.2006, 16:42
Лучше такого больше не пишите!!!
Народ умрёт от осознания Вашей новой логики программирования... Полягут лучшие умы бездыханно...

Ой... Стоит ли Вам объяснять, что такое программирование и логика в общем??? Ужас...  smile  smile  smile 

Вот вам, чтоб Вас!:
Код

...
var
  F: TextFile;
  S : String;
  ListItem: TListItem;
  I : Integer;

begin
  // Открываем диалог сохранения ДЛЯ ВЫБОРА ИМЕНИ ФАЙЛА (в который будут сохранены данные)
  if SaveDialog1.Execute() then begin

    // После того, как файл был выбран (и если был выбран), записываем данные в него.

    AssignFile(F, SaveDialog1.FileName);  // SaveDialog1.FileName - имя выбранного файла.
    Rewrite(F);

    for i := 0 to listview1.Items.Count -1 do
    begin
      ListItem := listview1.Items[i];
      s := '<YouText >' + listitem.Caption + '</ YouText >';
      s := s + '<Password>' + listitem.SubItems.Strings[0] + '</ YouText >';
      s := s + '<YouText >' + listitem.SubItems.Strings[1] + '</ YouText >';
      s := s + '<YouText >' + listitem.SubItems.Strings[2] + '</YouText >';
      Writeln(F, s);
    end;

    CloseFile(F);    // После операций чтения \ записи всегда надо закрывать файл!

  end;
...
end;
...
 

Автор: Демо 30.4.2006, 17:30
DigitalDummy, 

Логика присутствует, но не в полной мере.

"Не лечите, и не лечимы будете". 

Автор: DigitalDummy 30.4.2006, 20:33
Демо, 
А я и говорю Логика Нового Поколения!   smile 
Просто человек запрограммировался... Бывает... smile  

Автор: Sunvas 1.5.2006, 00:23
Цитата(DigitalDummy @  30.4.2006,  16:42 Найти цитируемый пост)
SaveDialog1.Execute()

А зачем две скобки?? smile  

Автор: Yanis 1.5.2006, 00:45
Цитата(Sunvas @  1.5.2006,  00:23 Найти цитируемый пост)
А зачем две скобки?? 

Просто так. Ни на что не влияет. 

Автор: Poseidon 1.5.2006, 01:26
Цитата(Демо @  30.4.2006,  17:30 Найти цитируемый пост)
DigitalDummy, 

Логика присутствует, но не в полной мере.

"Не лечите, и не лечимы будете".  
 Никакой логики не вижу! Зачем вызывать диалог, если сохраняем в путь, каторый в константе?

DigitalDummy, правильно все предложил! 

Автор: Pariah 1.5.2006, 10:22
Пасиб всем!
а насчёт присутствия логики постараюсь исправиться по запросу пишуших(они же coder'ы) smile  

Автор: DigitalDummy 2.5.2006, 18:21
Цитата(Sunvas @  1.5.2006,  00:23 Найти цитируемый пост)
А зачем две скобки??  

Две скобки, в принципе, надо всегда указывать при вызове функции или процедуры.
Но в современном Паскале это уже не обязательно из-за расширений языка. 

Автор: Демо 2.5.2006, 18:28
Цитата(Poseidon @  1.5.2006,  01:26 Найти цитируемый пост)
Никакой логики не вижу!


Не там смотришь;) 

Автор: DigitalDummy 4.5.2006, 02:35
Цитата(Демо @  30.4.2006,  17:30 Найти цитируемый пост)
Логика присутствует, но не в полной мере.


Если говорить полностью, конечно же, доля логики в указанном примере есть. Но, в данной ситуации, эта логика не решает поставленной задачи. И, главное, она определена тут слишком образно (взять хотя бы то, что для указания операции используется объект, который предназначен для своей собственной цели, а функции операций с файлом никак не связаны с этим объектом)!
В результате, эта логика теряет всю свою верность из-за ужасной попытки её реализации. 

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