Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
2 / 2 / 0
Регистрация: 03.02.2013
Сообщений: 126
1

Создание текстового файла и чтение данных из файла

02.04.2013, 07:37. Просмотров 2081. Ответов 5
Метки нет (Все метки)

Здравствуйте. Дана задача : Создать файл, содержащий сведения о сдаче студентами первого курса сессии. Структура записи – Индекс группы, фамилия студента, оценки по пяти экзаменам, признак участия в общественной работе: «1»- активное участие, «0»- не участие. Количество записей -30, из них три группы по 10 человек.

Реализовал запись в файл следующим образом:

Pascal
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
program vtorai_chast;
uses crt;
type
 wed=record
  index: string[10];
  fio: string[30];
  exz1: byte;
  exz2: byte;
  exz3: byte;
  exz4: byte;
  exz5: byte;
  rab: byte;
 end;
const
 kg=3;
 ks=10;
var
 fstud: File of wed;
 s: wed;
 i,j: integer;
 fillname: string[20];
begin
clrscr;
 write('Vvedite Imi faila (obrazec: stud.txt): ');
  readln(fillname);
 assign(fstud,fillname);
 rewrite(fstud);
 for i:=1 to kg do
  begin
   write('Vvedite index ',i,' gruppi: ');
    readln(s.index);
   for j:=1 to ks do
    begin
     writeln(' Vvedite dannie o ',j,' studente');
     write('F.I.O.: ');
      readln(s.fio);
     write('vvedite ocenky za 1 exzamen: ');
      readln(s.exz1);
     write('vvedite ocenky za 2 exzamen: ');
      readln(s.exz2);
     write('vvedite ocenky za 3 exzamen: ');
      readln(s.exz3);
     write('vvedite ocenky za 4 exzamen: ');
      readln(s.exz4);
     write('vvedite ocenky za 5 exzamen: ');
      readln(s.exz5);
     write(' Vvedite priznak ychastii v obhestvennoi rabote: ');
      readln(s.rab);
     write(fstud,s);
    end;
  end;
writeln('formirovanie faila zakoncheno');
close(fstud);
readkey;
end.

Вторую программу в которой происходит чтение данных реализовать не могу как реализовать ??

Пробовал так не работает :

Pascal
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
59
60
program vtorai_chast;
uses crt;
type
 wed=record
  index: string[10];
  fio: string[30];
  exz1: byte;
  exz2: byte;
  exz3: byte;
  exz4: byte;
  exz5: byte;
  rab: byte;
  step: integer;
 end;
const
 kg=3;
 ks=10;
var
 fstud: File of wed;
 s: wed;
 i,j: integer;
 fillname: string[20];
begin
clrscr;
 write('Vvedite Imi faila (obrazec: stud.txt): ');
  readln(fillname);
 assign(fstud,fillname);
 reset(fstud);
clrscr;
while not eof(fstud) do
begin
 read(fstud,s);
 writeln('ctudent: ',s.fio);
end;
 {
 while not eof(fstud) do
 begin
      writeln(' Student: ',j);
      write('F.I.O.: ');
      readln(s.fio);
      write('Ocenka za 1 exzamen: ');
      readln(s.exz1);
      write('Ocenka za 2 exzamen: ');
      readln(s.exz2);
      write('Ocenka za 3 exzamen: ');
      readln(s.exz3);
      write('Ocenka za 4 exzamen: ');
      readln(s.exz4);
      write('Ocenka za 5 exzamen: ');
      readln(s.exz5);
      write('Ychastii v obhestvennoi rabote: ');
      readln(s.rab);
 
end;
}
 writeln('formirovanie faila zakoncheno');
 
close(fstud);
readkey;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2013, 07:37
Ответы с готовыми решениями:

Чтение текстового файла. Парсинг его данных. Создание исключений для данных. Запись свойств объектов в файл
Проблема такая. Есть файл data.txt. В нем например какие-то данные. Landon Donovan, 150, A...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include <cstdlib>...

Создание/Запись/чтение текстового файла
Вообщем мне нужно... чтобы при нажатии на кнопку создавался текстовый файл и чтобы в него...

Создание, чтение и запись текстового файла
Всем доброго время суток, нужно написать программу, которая получает из командной строки аргументы,...

5
232 / 214 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
02.04.2013, 18:54 2
точно все работает
Pascal
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
uses crt;
type
 student = record
    name : string[10];                  // имя
    patronymic : string[15];            // отчество
    last_name : string [20];            // фамилия
    date : string[10];                  // дата пождения
    summa : word;                       // размер стипендии
 end;
 Tfile = file of student;
 
procedure open_file(var f:Tfile);       // чтение из  файла
var
  dan : student;
  err,c : integer;
 
 name : string;
  begin
    repeat
      clrscr;
      textcolor(15);
      writeln('укажите полное имя файла');
      readln(name);
      {$I-}
         assign(f,name);
      {$I+}
      {$I-}
        reset(f);
      {$I+}
      err:=ioresult;
      if err<>0 then
        begin
          writeln('файл с именем ',name, 'не найден');
          writeln('Вы хотите продолжить? 1 - да (повторный ввод имени файла), 2 - нет(возврат в главное меню)');
          readln(c);
        end
      else
        begin
         writeln('файл  ',name,' открыт успешно ');
        end;
    until (err=0) or (c = 2);
 
   while (not Eof(f)) do
     begin
       read(f,dan);
 
       writeln ('Имя: ',dan.name);
       writeln ('Отчество: ',dan.patronymic);
       writeln ('Фамилия: ',dan.last_name);
       writeln ('Дата рождения: ',dan.date);
       writeln ('Размер стипендии: ',dan.summa);
       writeln;
     end;
     readkey;
     close(f);
  end;
//********************************************************************
procedure save_file(var f:Tfile); //сохранение в файл
var
t:char;
dan :student;
name:string;
begin
  writeln('Укажите полное имя файла  ');
  readln(name);
  assign(f,name);
  rewrite(f);
  repeat
      Writeln ('Введите данные о студенте:');
      write ('Имя: ');
      readln(dan.name);
      write ('Отчество: ');
      readln(dan.patronymic);
      write ('Фамилия: ');
      readln(dan.last_name);
      write ('Дата рождения:  ');
      readln (dan.date);
      write ('Размер стипендии: ');
      readln (dan.summa);
      Writeln;
      write(f,dan);
      writeln ('Добавить ещё запись D-ДА / N-Нет ?');
      readln (t);
  until (t='N') or (t='n') or (t='Н') or (t='н') ;
end;
1
2 / 2 / 0
Регистрация: 03.02.2013
Сообщений: 126
02.04.2013, 19:00  [ТС] 3
Огромное спасибо Ded_Vasilij . У меня вопрос а если стипендия должна вводится не в сохранение файла. а в другой программе открытия файла где происходит чтение файла и добавление стипендии. то есть перезапись файла уже с новым полем. Здесь надо seek использовать?
0
232 / 214 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
02.04.2013, 19:49 4
можно использовать seek только у него ограничения - нельзя применять к текстовым файлам, и файл должен быть открыт. Можно попробовать Append использовать, но с ним тоже надо разбираться, почитайте справку по паскалю, и поэксперементируйте. Я с такой задачей не сталкивался, а разбираться сейчас времени нет. Просто код готовый был, я его и выложил. ReWrite тоже можно поюзать.

Добавлено через 2 минуты
а еще можно сделать двунаправленный или однонаправленный список структур и тогда вообще проблем не будет, но это уже другая история. Если надо, у меня L1 список есть, могу выложить

Добавлено через 5 минут
так список нужен или нет?
1
2 / 2 / 0
Регистрация: 03.02.2013
Сообщений: 126
05.04.2013, 08:44  [ТС] 5
Да выложите пожалуйста .

сообщение не видел, поэтому сразу не ответил
0
232 / 214 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
05.04.2013, 11:41 6
держи
1
Вложения
Тип файла: zip L1.zip (2.7 Кб, 30 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2013, 11:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Чтение данных из текстового файла
Считываение данные из текстового файла: типы считываемых данных; команды для считывания данных из...

Чтение данных из текстового файла
Как считать данные (текст) из текстового файла в переменную String до символа {, затем до символа...

Чтение данных из текстового файла
здравствуйте. программа считывает координаты, но как мне считать строки, которые чередуются с...

Чтение данных из текстового файла
Помогите пожалуйста! Питаюсь создать консольную програму и никак не пойму как прочесть из файла, ну...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.