Обработчик кнопки Открыть файл — КиберПедия 

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Обработчик кнопки Открыть файл

2021-04-18 43
Обработчик кнопки Открыть файл 0.00 из 5.00 0 оценок
Заказать работу

procedure TForm1.Button1Click(Sender: TObject);

begin

with OpenDialog1 do

begin

if not Execute then Exit; //размещение диалогового окна

//если окно открылось можно использовать переменную FileName

//в которую система поместила имя выбранного файла

Edit1.text:=FileName;

end

end;

При выполнении операции Открыть файл откроется диалоговое окно, вид которого представлен на рис.13, выбора файла.После выбора файла и щелчка по кнопке Open, окна выбора файла, имя файла запишется в переменную OpenDialog 1. filename и согласно алгоритма обработчика кнопки Открыть файл оно отобразится в элементе формы Edit 1.

 

Рис.13. Окно выбора файла

 

На рис.14. отображена форма после выполнения операции.

 

Рис.14. Отображение в форме имени открытого файла

 

Примеры подпрограмм по обработке файлов

Unit Unit1;

interface

const

line='-----------------------------------------------------------------------';

type

//струтура записи типизированного файла

tkassa=record

nomer:word;

FIO:string[20];

num:word;

sum:real;

data:string[10];

 end;

ttxt=textfile;                     //тип для текстового файла

ttype=file of tkassa; //тип для типизированного файла из записей

tf=file of integer;    //типизированный файл из целых значений

//создание типизированного из текстового

procedure create_tf(var f1:ttxt; var f2:ttype);     

//поиск в типизированном файле

procedure search(var f2:ttype;fam:string);         

//вставка записи в середину тип. ф.

procedure insert_mid(var f2:ttype; x:tkassa; s1:string);

//вставка перед первой записью procedure insert_first(var f2:ttype; x:tkassa; s1:string);

//вставка в конец файла

procedure insert_end(var f2:ttype; x:tkassa);      

//вывод файла

procedure out(var f2:ttype);                                 

//удаление из записи по указанной позиции

 procedure delete_pos (var f2:ttype; pos:integer); 

implementation

procedure create_tf(var f1:ttxt; var f2:ttype);

var

w: tkassa;

begin

reset(f1);

rewrite(f2);

while not eof(f1) do

begin

readln(f1,w.nomer);

readln(f1,w.FIO);

readln(f1,w.num);

readln(f1,w.sum);

readln(f1,w.data);

write(f2,w);

end;

closefile(f1);

closefile(f2);

end;

procedure insert_first(var f2:ttype; x:tkassa; s1:string);

var

 f3:ttype;

 i:integer;

 begin

assignfile(f3,'tmp.doc');

rewrite(f3);

write(f3,x);

reset(f2);

  for i:=1 to filesize(f2) do

begin

    read(f2,x);

   write(f3,x);

end;

closefile(f2);

closefile(f3);

erase(f2);

rename(f3, s1);

end;

procedure insert_mid(var f2:ttype; x:tkassa; s1:string);

var

f3:ttype;

i:integer;

x1:tkassa;

begin

assignfile(f3,'tmp.doc');

rewrite(f3);

reset(f2);

for i:=1 to filesize(f2)div 2 do

begin

  read(f2,x1);

  write(f3,x1);

end;

write(f3,x);

for i:=filesize(f2)div 2+1 to filesize(f2) do

  begin

     read(f2,x);

     write(f3,x);

end;

closefile(f2);

closefile(f3);

erase(f2);

rename(f3, s1);

end;

procedure insert_end(var f2:ttype; x:tkassa);

var

f3:ttype;

i:integer;

x1:tkassa;

 begin

reset (f2);

seek(f2, filesize(f2));

write(f2, x);

closefile(f2);

end;

 procedure out(var f2:ttype);

 var

x:tkassa;

i:integer;

 begin

reset(f2);

writeln;

shapka;

for i:=1 to filesize(f2) do

begin

   read(f2,x);

   writeln ('| ', x.nomer:6,' | ',x.FIO:7,' | ',x.num:16,' | ',x.sum:9,' |  

                 ',x.data:6,' |');

end;

closefile(f2);

end;

procedure delete_pos (var f2:ttype; pos:integer);

var

i:integer;

x:tkassa;

begin

reset(f2);

if pos<=filesize(f2) then

  begin

     for i:=pos to filesize (f2)-1 do

        begin

            seek (f2, i);

            read(f2,x);

            seek(f2, filepos (f2)-2);

          write(f2,x);

       end;

      seek(f2, filesize(f2)-1);

      truncate(f2);

     closefile(f2);

end;

end;

procedure writey(var x:tkassa);

var

y:real;

begin

writeln('Vvedite nomer kassi');

readln (x.nomer);

writeln('Vvedite FIO');

readln (x.FIO);

writeln('Vvedite kol-vo');

readln (x.num);

writeln('Vvedite stoimost bileta');

readln (y);

x.sum:=y*x.num;

writeln('Vvedite daty');

readln (x.data);

end;

procedure search(var f2:ttype;fam:string);

var

x:tkassa;

k,i:integer;

begin

reset(f2);

k:=0;

for i:=1 to filesize (f2) do

begin

read(f2, x);

if x.FIO=fam then

    begin

       if k=0 then

       shapka;

      k:=k+1;

      writeln ('| ', x.nomer:6,' | ',x.FIO:7,' | ',x.num:16,' | ',x.sum:9,' |

                    ',x.data:6,' |');

   end;

end;

  if k=0 then

writeln ('Takix kassirov net');

end;

procedure vivf(var f:tf);

var i,x:integer;

begin

writeln;

reset(f);

for i:=1 to filesize (f) do

  begin

    read(f,x);

    write(x,' ');

end;

closefile(f);

Reset(f);

end;

end.

Контрольные вопросы

1. Что такое файл? (определение файла на логическом и физическом уровнях)

2. Как устанавливается связь логического и физического файлов?

3. Какие вы знаете способы ввода в программу имени физического файла?

4. Что значит:– открыть файл: - закрыть файл?

5. Для чего используется директива {$I+/-}?

6. Что понимается под текстовым файлом на логическом уровне?

7. Как можно создать текстовый файл?

8. Что является компонентой текстового файла? Чем отделяется одна компонента от другой? Что можно сказать о длине компонент?

9. Какие процедуры осуществляют запись данных в текстовый файл и их особенности?

10. Какие процедуры читают данные из текстового файла и их особенности?

11. Как переопределить буфер обмена для текстового файла? На что влияет размер буфера?

12. Какие операции следует включить в программу для создания текстового файла А.txt на диске D:, в который записываются четыре значения: число, число, символ, строка (причем, три первых на одной строке файла, а третье на другой), предусмотрев все для последующего считывания этих значений. (разработайте программу и отладьте ее)

13. Каково назначение функций EOF, EOLN, SEEKEOF,SEEKEOLN? Процедуры FLUSH?

14. Как организовать добавление новых данных в уже существующий текстовый файл? (Приведите фрагмент программы)

15. Что объясняет эта программа?

Текстовый файл F.txt построчно содержит информацию:

 Этот файл содержит 3 строки.

С этой строки вы считали 22 символа. А что стало с остальными?

А это уже третья строка.

{ Это текст программы }

 Var f:Filetext;

A:string[22];

name_file: string;

Begin

Repeat

Writeln(‘ВВЕДИТЕ ИМЯ ФАЙЛА’); readln(name_file);         

AssignFile(f, name_file);

 {$I-}

Reset(f);

 {$I+}

if Ioresult<>0 then

begin

writeln(‘Ошибка открытия файла с именем ’, name_file);

writeln(‘Введете заново имя файла? Y/N’);

readln(OK);

if (OK=’N’) or (OK=’n’) then Halt(1);

end;               

until Ioresult=0;

Readln(f);

readln(f,a);

writeln(a);

readln(f,a);

write(a);

close(f);

 End.

16. Пусть существует файл c.txt, из М (1<=M<=10) строк. Каждая строка содержит данные: год рождения и Фамилию И.О.. Разработайте программу заполнения массива A, определенного следующим образом:

type rec=record уеаr:1800..5000; fio:string[40] end;

var A: array[1..N] of rec;

17. Как описать типизированный файл в программе?

18. Как можно создать типизированный файл? Что является значением компоненты типизированного файла? Что можно сказать о длине всех компонент типизированного файла? Имеются ли в типизированном файле символы разделители компонент?

19. Приведите описания типизированных файлов

· Из компонентов вещественные числа

· Из компонентов символьного типа

· Из записей со структурой rec из вопроса 15.

20. Как определить длину компоненты типизированного файла?

21. Что определяет указатель типизированного файла?

22. Если указатель равен 3, то над какой (по номеру) записью будет выполняться операция ввода – вывода? (при ответе на вопрос изобразите схемой файл из 7 компонент, длина компонента 2 байта)

23. Какие операции можно выполнять над компонентами типизированного файла, если он открыт

· процедурой Reset

·  процедурой Rewrite?

24. Какие операции выполняют процедуры SEEK, TRUNCATE? Что является значениями функций FILESIZE, FILEPOS? Что будет результатом выполнения процедур:

Seek(f,0); seek(f,filesize(f)); seek(f,filepos(f)-1); {считать, что filepos(f)>0)

25. Как вводиться в программу файл без типа? Что считается компонентой такого файла? Когда устанавливается размер компоненты для файла без типа?

 


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

 

1. Рапаков Г. Г., Ржеуцкая С. Ю "Turbo Pascal для студентов и школьников.". БХВ-Петербург, 2007. 300 с.

2. Кандзюба С.П. Delphi 7. Базы данных и приложения. Лекции и упражнения / С.П.Кандзюба, В.Н.Громов. – СПб.: ООО «ДиаСофтЮП», 2005. 570 с.

3. Бобровский С. И."Delphi 7. Учебный курс". - Питер, 2007.  735 с.

4. Фаронов В. В."Delphi: программирование на языке высокого уровня." - Питер, 2005.  639 с.

5. Фаронов В.В. Система программирования DELPHI. - Санкт-Петербург: БХВ, 2003. 640 с

6. Альфред В.Ахо и др. Структуры данных и алгоритмы: Пер.с англ.: “Издательский дом “Вильямс, 2001. 384 с.: ил.--Парал. Тит. Англ.

7. Кнут Д.              Искусство программирования для ЭВМ т.1 3, М.: Мир, 1976. – 384 с.

8. Криницкий А.Н. Алгоритмы вокруг нас.М.: Наука, 1977 г.

9. Вирт Алгритмы+структуры данных = программы, Пер. с английского - М.: Мир, 1985. 300 с.

10. Климова Л.М. PASCAL 7.0, Практическое программирование. Решение задач, Учебно методическое издание, М.: Кудиц-Образ, 2000 г.

11. В.Н.Пильщиков. Сборник упражнений по языку Паскаль.Учебное пособие для вузов, - М.: Наука, 1989. – 160 с.

 


 


[1] При вводе данных в строковые поля предусмотреть преобразование их к формату: первая буква большая, остальные маленькие)


Поделиться с друзьями:

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.032 с.