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

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

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

 
 Ответить  Открыть новую тему 
> Запись (Record), Ошибка при выводе.
Tan
сообщение 16.03.2007 19:10
Сообщение #1


Профи
****

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

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


Написал процедурку, которая из файла переписывает в файл чётные записи, спецификация :

type STR = strin[40];
type MyRec= record
field1 : STR;
field2 : STR;
end;
type Myfiletype = file of MyRec;


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

procedure Pair  ( var fff : MyFiletype; var NewFile : MyFiletype  ;var Fileopen: boolean);
var
i : integer;
NewFileName : String;
rec : MyRec;
begin
if (FileOpen=False) then
begin
WriteLntext(' Файл не открыт ; Действие нельзя выполнить');
exit;
end;
writeln ('Введите название файда в который пишем чётные записи ');
readln (NewFileName);
i:=-1;
{I-}
assign (NewFile,NewFileName + '.txt');
reset (fff);
rewrite (NewFile);
{$I+}
If IOResult = 0 then writeln ('файл ',NewFileName, ' успешно создан');
seek (fff,i);
while (eof(fff) <> True) do
begin
inc (i);
read (fff,rec);
if i mod 2 = 0 then
begin
write (NewFile,rec);
writeln (rec.field1[i],' ',rec.field2[i]);
end;
end;
seek(fff,0);
{$I-}
close (fff);
close (NewFile);
{$I+}
end;


Сообщение отредактировано: Tan - 16.03.2007 19:14


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.03.2007 19:17
Сообщение #2


Гость






Цитата
   seek (fff,i);
При i = -1 ??? Убери это, тогда должно заработать...
 К началу страницы 
+ Ответить 
Tan
сообщение 16.03.2007 19:47
Сообщение #3


Профи
****

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

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


Очень странно, вроде всё перебробывал, что-то выводит и даже в нужном количестве (сужу по пробелам). Но, что мне не видно.


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.03.2007 20:02
Сообщение #4


Гость






Цитата
Но, что мне не видно.
То есть? Пробелы тебе видно, а остальное - нет? Вопросы что-ли отображаются?
 К началу страницы 
+ Ответить 
Tan
сообщение 16.03.2007 20:13
Сообщение #5


Профи
****

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

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


В самой программе после того как выводит необходимый результат вышеуказанной процедуры идёт текст, поэтому я увидел, что этот текст расположен на экране на расстоянии n пробелов. То есть вместо того чтобы вывести записи на экран, как будто writeln писали. Надеюсь понятно выразился, ситуация простая для описания, но что-то я страдаю формулировкой


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.03.2007 20:16
Сообщение #6


Гость






Запакуй исходник своей программы и файл данных, и прикрепи архив сюда, тогда можно будет сказать что-то, не прибегая к гаданиям ...
 К началу страницы 
+ Ответить 
Tan
сообщение 16.03.2007 20:26
Сообщение #7


Профи
****

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

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


всё понял

Сообщение отредактировано: Tan - 17.03.2007 0:37


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.03.2007 20:35
Сообщение #8


Гость






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

Поэтому пока ты не присоединишь свой файл, я ничего больше не буду говорить...
 К началу страницы 
+ Ответить 
Tan
сообщение 16.03.2007 20:39
Сообщение #9


Профи
****

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

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


програма сама создаёт и заполняет, погляди =) Только введи название; то есть нет смысла скидывать файл.

Сообщение отредактировано: Tan - 16.03.2007 21:32


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 16.03.2007 21:39
Сообщение #10


Профи
****

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

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


Всё, решил проблему, в процедуре я выводил поля записи как элементы массива, которого нет, просто убрал [i] и всё выдаёт.

Сообщение отредактировано: Tan - 16.03.2007 21:40


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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