Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 12.11.2014
Сообщений: 26
1

Open Dialog

24.03.2015, 20:16. Показов 2827. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!Просьба исправить код где используется OpenDialog,с Save Dialog всё получилось.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
procedure TForm1.Button3Click(Sender: TObject);
var
  f: TStringlist;
  i, j:Integer;
  Str: string;
begin
  with TSaveDialog.Create(Owner) do
  begin
    DefaultExt := 'pas,txt';
      Filter := 'Текстовые файлы|*.txt|'+'Файлы Паскаля|*.pas|';
        if not Execute then exit;
          f := TStringList.Create;
        f.Add('Rows - '+IntToStr(StringGrid2.RowCount)+#32+'Columns - '+
      IntToStr(StringGrid2.ColCount));
        for i:=0 to StringGrid2.RowCount-1 do
        begin
          Str := '' ;
       for j:=0 to StringGrid2.ColCount-1 do
     Str := Str+StringGrid2.Cells[j, i]+#32;
       f.Add(Str);
        end;
     f.SaveToFile(FileName);
  end;
    f.Free;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Rows, Cols: Integer;
  i, j: Integer;
  f: TextFile;
  s: string;
    begin
       with TOpenDialog.Create(Owner) do
         begin
            Filter := 'Текстовые файлы|*.txt|'+'Файлы Паскаля|*.pas|';
              if TOpenDialog.Execute and FileExist(TOpenDialog.FileName) then
            AssignFile(f, TOpenDialog.ClassName);
          Reset(f);
        Read(f, s);
        Cols := StrToInt(s);
      Read(f, s);
        Rows := StrToInt(s);
          for i := 0 to Cols - 1 do
          begin
            for j := 0 to Rows - 1 do
          begin
        Read(f, s);
      StringGrid2.Cells[i,j] := s;
              end;
            Readln(f);
          end;
      CloseFile(f);
end;
 
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2015, 20:16
Ответы с готовыми решениями:

Open Dialog
Доброго времени суток всем! Нужно при первом запуске указать путь к папке,который потому будет...

Open,Save Dialog
Сап работяги. Не могу понять почему не работает код, в частности сохраняет пустые файлы в формате...

idSMTP + open dialog
здравствуйте перерыл 2 дня интернет но не как не могу найти как можно реализовать передачу...

Открытие файла через open dialog
Что нужно прописать в кнопке, чтобы вывести информацию из файла в label?

3
Заблокирован
24.03.2015, 20:19 2
Найди 100500 отличий между строками 11 и 37.
0
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
24.03.2015, 23:23 3
Лучший ответ Сообщение было отмечено Evgeniy24 как решение

Решение

Цитата Сообщение от Evgeniy24 Посмотреть сообщение
AssignFile(f, TOpenDialog.ClassName);
Что это?
Говно-код (я устал просто...), но все же рабочий:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
procedure TForm1.Button1Click(Sender: TObject);
var
  Text: TextFile;
  OpenDialog: TOpenDialog;
  i, j: Integer;
  tmp: string;
begin
  OpenDialog := TOpenDialog.Create(nil);
  try
    OpenDialog.Filter := 'Текстовые файлы|*.txt|' + 'Файлы Паскаля|*.pas|';
    OpenDialog.DefaultExt := 'pas,txt';
    OpenDialog.Options := [ofFileMustExist];
    if OpenDialog.Execute then
    begin
      AssignFile(Text, OpenDialog.FileName);
      Reset(Text);
      ReadLn(Text, tmp);
      StringGrid2.RowCount := StrToInt(tmp);
      ReadLn(Text, tmp);
      StringGrid2.ColCount := StrToInt(tmp);
      for i := 0 to StringGrid2.RowCount - 1 do
        for j := 0 to StringGrid2.ColCount - 1 do
        begin
          ReadLn(Text, tmp);
          StringGrid2.Cells[i, j] := tmp;
        end;
      CloseFile(Text);
    end;
  finally
    FreeAndNil(OpenDialog);
  end;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
  Text: TextFile;
  SaveDialog: TSaveDialog;
  i, j: Integer;
begin
  SaveDialog := TSaveDialog.Create(nil);
  try
    SaveDialog.DefaultExt := 'pas,txt';
    SaveDialog.Filter := 'Текстовые файлы|*.txt|' + 'Файлы Паскаля|*.pas|';
    if SaveDialog.Execute then
    begin
      AssignFile(Text, SaveDialog.FileName);
      ReWrite(Text);
      WriteLn(Text, IntToStr(StringGrid2.RowCount));
      WriteLn(Text, IntToStr(StringGrid2.ColCount));
      for i := 0 to StringGrid2.RowCount - 1 do
        for j := 0 to StringGrid2.ColCount - 1 do
          WriteLn(Text, StringGrid2.Cells[i, j]);
      CloseFile(Text);
    end;
  finally
    FreeAndNil(SaveDialog);
  end;
end;
1
0 / 0 / 1
Регистрация: 12.11.2014
Сообщений: 26
25.03.2015, 13:32  [ТС] 4
Спасибо!
0
25.03.2015, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2015, 13:32
Помогаю со студенческими работами здесь

Open/Save Dialog. Сериализация данных. Запись/чтение данных объектов в/из потока.
Описана файловая переменная FileOfFilms: file of TFilmArr и переменная, содержащая имя файла...

"Универсальный" Open File/Folder Dialog
Всем доброго дня. Существует ли компонент типа Open File/Folder Dialog , который может открыть...

Open Dialog и др. (точнее проложить путь)
Всем добрый день...Обращаюсь к вам,т.к. оказалось что не к кому обратиться. Объясните,подскажите......

Dialog
Доброго времени сток! Подскажите, пожалуйста, как запретить диалогу предлагать варианты выбора?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru