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

> Правила раздела!

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

 
 Ответить  Открыть новую тему 
> формирование файла
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Женский

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


почему у меня вот эта программа работает:
type tz=record
fio: string[10];
tn:integer;
zp:real
end;
var zap:tz;
fout: file of tz;
fl:boolean;
name:string;
begin
repeat
writeLN('imy faila');
readLN(name);
assign (fout,name);
{$i-} reset(fout); {$i+}
if ioresult=0 then
begin
writeLN('fail uge est');
close(fout);
fl:=false
end
else
begin
rewrite(fout);
fl:=true
end
until fl;
writeLN('vvod');
with zap do
repeat
readLN(input,fio,tn,zp);
write(fout,zap);
until eof(input);
close(fout);
reset(fout);
with zap do
repeat
read(fout,zap);
writeLN(fio:15,tn:9,zp:8:2);
until eof (fout);
close(fout)
end.

т.е. я ввожу по задумке буквенную часть, потом 2 цифровые, потом опять буквы и т.д. в итоге формируется табличка со строками:бквы, цифры, цифры.
а вот эта программа:
type tz=record
fio: string[10];
tn:integer;
zp:string;
end;
var zap:tz;
fout: file of tz;
fl:boolean;
name:string;
begin
repeat
writeLN('imy faila');
readLN(name);
assign (fout,name);
{$i-} reset(fout); {$i+}
if ioresult=0 then
begin
writeLN('fail uge est');
close(fout);
fl:=false
end
else
begin
rewrite(fout);
fl:=true
end
until fl;
writeLN('vvod');
with zap do
repeat
readLN(input,tn,zp,fio);
write(fout,zap);
until eof(input);
close(fout);
reset(fout);
with zap do
repeat
read(fout,zap);
writeLN(tn:5,zp:8,fio:15);
until eof (fout);
close(fout)
end.

не работает, т.е. не получается сделать табличку из 1й цифровой и 2х буквеных частей...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

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


Программу я просмотрю, но может ты опишешь условие задачи?
Так будет немного легче


--------------------
Чтоб мудро жизнь прожить
Знать надобно не мало,
Ты лучше голодай,
Чем что попало есть
И лучше будь один,
Чем вместе с кем попало

О.Хаям
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


nasekomaya, что вы этим хотели сказать?

writeLN('vvod');
with zap do
repeat
readLN(input,fio,tn,zp);
write(fout,zap);
until eof(input);



Когда будет завершен ввод?
я думаю первая программа не работает тоже.


input-стандартная файловая переменная, по умолчанию связанна с консолью, EOF к ней не применим...


продолжим...

repeat
writeLN('imy faila');
readLN(name);
assign (fout,name);
{$i-} reset(fout); {$i+}
if ioresult=0 then begin
writeLN('fail uge est');
close(fout);
fl:=false
end else begin
rewrite(fout);
fl:=true
end
until fl;



Зачем здесь цикл?
Тем более раз вы ве равно файл переписываете в любом случае, достаочносразу его создать по новой,
rewrite(fout);
без всяких циклов..


Смотри... первую программу, я изменил тебе так.
type
tz=record
fio: string[10];
tn:integer;
zp:real
end;

var
zap:tz;
fout: file of tz;
fl:boolean;
name:string;

begin
writeLN('imy faila');
readLN(name);
assign (fout,name);
{$I-} reset(fout);{$I+}
if ioresult<>0 then begin
writeLN('faila net!');
rewrite(Fout);
end;
writeLN('vvod');
repeat
with zap do begin
readln(fio);
if fio<>'' then begin
readln(tn,zp);
write(fout,zap);
end
end
until zap.fio='';
{close(fout);} {<-- !!!}
reset(fout);
repeat
with zap do begin
read(fout,zap);
writeLN(fio:15,tn:9,zp:8:2);
end
until eof (fout);
close(fout)
end.

1. убрал лишние циклы.
2. сделал правильные ввод (ввод заершается когдаFIO вводитсяпустым (то естьпросто нажимаем ENTER)
...
разницы между первой и второй программами я не увидел!
Попробуйте тот код что я дал, и если на нем неполучится ваша задумка, скажите какие входные данные были и какие выхотели плучить...

Цитата
Программу я просмотрю, но может ты опишешь условие задачи?
Так будет немного легче

вот:
Цитата

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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

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


Oleg_Z
Цитата
nput-стандартная файловая переменная, по умолчанию связанна с консолью, EOF к ней не применим...

Не совсем. Вот тестовая программка, когда надоест вводить строки, нажми Ctrl-Z под Win или Ctrl-D под Lin +)

var s : string;
begin
repeat
readLn(s);
until eof(input);
end.



--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


не везде прокатывает такое! в BPW не останавливается вводю (использую wincrt)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





Группа: Пользователи
Сообщений: 4
Пол: Женский

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


Цитата(VBproffi @ 22.06.05 9:07)
Программу я просмотрю, но может ты опишешь условие задачи?
Так будет немного легче

ну условием было введение с клавиатуры информации: табельные номера, фамилии и з\п, в итоге вводимая инфа должна записаться в файл, ну и вывестись на экран ввиде такой вот таблички. Инфа вводится НЕ беспорядочно, т.е. по-очереди для каждого работника вводим фамилию, таб. номар и з\п.

Ну а вообще я уже разобралась - если писать не
readLN(input,fio,tn,zp);
а по очереди
readLN(input,fio);
readLN(input,tn);
readLN(input,tn);


то все получается... не знаю правда почему так...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 4
Пол: Женский

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


Цитата(Oleg_Z @ 22.06.05 9:26)
nasekomaya, что вы этим хотели сказать?

writeLN('vvod');
with zap do
repeat
readLN(input,fio,tn,zp);
write(fout,zap);
until eof(input);

Когда будет завершен ввод?
я думаю первая программа не работает тоже.
input-стандартная файловая переменная, по умолчанию связанна с консолью, EOF к ней не применим...
продолжим...

repeat
  writeLN('imy faila');
  readLN(name);
  assign (fout,name);
  {$i-} reset(fout); {$i+}
  if ioresult=0 then  begin
  writeLN('fail uge est');
  close(fout);
  fl:=false
  end else begin
  rewrite(fout);
  fl:=true
  end
until fl;

Зачем здесь цикл?
Тем более раз вы ве равно файл переписываете в любом случае, достаочносразу его создать по новой,
rewrite(fout);
без всяких циклов..
.........................

про коф инпут: ввод завершается как только я нажимаю контрл+зэт.
про цикл: с помошью этого цикла достигается НЕ записывание чего-либо в уже существующий файл.
Вообще я уже разобралась с этим. (См. ответ выше).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


Цитата
про коф инпут: ввод завершается как только я нажимаю контрл+зэт.

как я уже сказал сработает не везде!
Цитата
про цикл: с помошью этого цикла достигается НЕ записывание чего-либо в уже существующий файл.

да действительно я этот кусок кода не читал особо..


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 9.06.2024 20:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name