IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> работа с файлами и записями
Negor
сообщение 26.10.2006 23:52
Сообщение #1


Гость






Народ, дело такое:есть массив записей Sessija типа TSessija. И у него есть пускай пять полей. Так вот вопрос такой: как сделать так чтобы можно было этот массив записей записать в файл одной программой, а считывать данные и работать с ними в другой? И ещё, я выбрал для переменной файла тип File of TSessija, это правильно или не очень? Вобщем надеюсь на вашу поддержку.... буду благодарен за теорию подкреплённую участками кода
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.10.2006 0:00
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


не совсем поняла, в чем проблема с
Цитата
как сделать так чтобы можно было этот массив записей записать в файл одной программой, а считывать данные и работать с ними в другой?
. Оно само так получается... Записываешь и закрываешь файл, а потом из новой открываешь. Или тебе нужно, чтобы это программы работали одновременно?
Цитата
И ещё, я выбрал для переменной файла тип File of TSessija, это правильно или не очень?

Вполне логичный выбор. Я бы тоже так поступила.



--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Negor
сообщение 27.10.2006 0:23
Сообщение #3


Гость






Т. е. если я правильно понял, то после того как файл будет создан, и данные внесены, то при запросе можно будет написать чтонитьь типа Readln(log_f,Sessija.index) или как?
 К началу страницы 
+ Ответить 
volvo
сообщение 27.10.2006 0:30
Сообщение #4


Гость






Цитата
при запросе можно будет написать чтонитьь типа Readln(log_f,Sessija.index) или как?
Не совсем... Придется переместиться на нужную позицию в файле, и только потом читать:
Seek(f, index);
Read(f, Sessia[index]); { <--- именно Read, потому что ReadLn выдаст ошибку... }
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.10.2006 0:31
Сообщение #5


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


опоздала smile.gif

Сообщение отредактировано: мисс_граффити - 27.10.2006 0:33


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 27.10.2006 22:24
Сообщение #6


Гость






Итак на данный момент есть след. код
Код

program zad_1;
uses crt;
type TSessija=record
     index:byte;
     familija:string;
     ekzamen:array[1..5] of byte;
     zachet:array [1..5] of char;
     end;

var  sessija:array[1..25] of TSessija;
     Log_f:file of TSessija;
     i,j:byte;
begin
clrscr;
assign(log_f,'sessija.dat');
rewrite(log_f);
for i:=1 to 25 do
    with sessija[i] do
         begin
         write('----zapis #',i,'-----');
         write('Vvedite index gruppi-');readln(index);
         write('Vvedite familiju studenta-');readln(familija);
         for j:=1 to 5 do
             begin
             write('Vvedite otsenku po ',j,'-omu za4etu ');readln(ekzamen[j]);
             write('Vvedite rezultat ',j,'-go za4eta [Z/N] ');readln(zachet[j]);
             end;
         end;
for i:=1 to 25 do
    writeln(log_f,sessija[i]);
end.

Сдесь пока только запись значений в файл. Но имено при записи в файл выдаётся ошибка, что файл-инвалид
 К началу страницы 
+ Ответить 
volvo
сообщение 27.10.2006 22:28
Сообщение #7


Гость






Цитата
Но имено при записи в файл выдаётся ошибка, что файл-инвалид
Я ж написал, что ...Ln не использовать... Попробуй
write(log_f,sessija[i]);
 К началу страницы 
+ Ответить 
Гость
сообщение 27.10.2006 22:46
Сообщение #8


Гость






Цитата(volvo @ 27.10.2006 22:28)
Я ж написал, что ...Ln не использовать... Попробуй
write(log_f,sessija[i]);

сПАСИбО, помогло! Volvo, ТЫ святой!!!
 К началу страницы 
+ Ответить 
Гость
сообщение 29.10.2006 7:17
Сообщение #9


Гость






Написание программы подходит к своему логическому завершению...))) Осталось только организовать вывод информации на принтер. В справке я нашёл модуль Printer, и подключил его. Но после запуска вылетела ошибка что переменная Lst не открыта для вывода, хотя в справке написано что никакой инициализации для переменной не требуется.... Need help
 К началу страницы 
+ Ответить 
klem4
сообщение 29.10.2006 9:31
Сообщение #10


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Что-то очень странно, покажи свой код ...

ps Lst инициализируется в испольняемой части модуля, ничего больше делать с ней не надо ...

Unit Printer;
Interface
Var Lst: Text;
Implementation
Begin
Assign(Lst, 'LPT1'); <-----
Rewrite(Lst);
END.


uses Printer;
begin
Writeln(Lst, 'Hello, Printer !');
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 29.10.2006 9:41
Сообщение #11


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


а принтер вообще есть? физически...
и куда он подключен?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 30.10.2006 1:01
Сообщение #12


Гость






Цитата(мисс_граффити @ 29.10.2006 9:41) *

а принтер вообще есть? физически...
и куда он подключен?

Пробовал на старом принтере СМ(какоето число) ещё советский принтер переделанный, но не получилось. Подкл. к LPT1...
Тока шо в одной книге (неважно какой но учебник по Паскалю серьёзный это я вам точно говорю) вобщем там было сказано чтото типа
Цитата

Для распечатки некоего текста в Паскале, нужно присвоить строку в переменную, и эту переменную записать в "prn". Пример:
Код

var a:string;
...
a:="Text";
writeln(a,'prn');<--Типа распечатать


Вобщем кажется бред, а может я что-то не так понял или запомнил, но может кто-нить что-нить подскажет.
C принтером шото не клеится никак....

 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.08.2025 3:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"